ResponseHeadersPolicyArgs

data class ResponseHeadersPolicyArgs(val comment: Output<String>? = null, val corsConfig: Output<ResponseHeadersPolicyCorsConfigArgs>? = null, val customHeadersConfig: Output<ResponseHeadersPolicyCustomHeadersConfigArgs>? = null, val etag: Output<String>? = null, val name: Output<String>? = null, val removeHeadersConfig: Output<ResponseHeadersPolicyRemoveHeadersConfigArgs>? = null, val securityHeadersConfig: Output<ResponseHeadersPolicySecurityHeadersConfigArgs>? = null, val serverTimingHeadersConfig: Output<ResponseHeadersPolicyServerTimingHeadersConfigArgs>? = null) : ConvertibleToJava<ResponseHeadersPolicyArgs>

Provides a CloudFront response headers policy resource. A response headers policy contains information about a set of HTTP response headers and their values. After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it’s attached to a cache behavior, CloudFront adds the headers in the policy to every response that it sends for requests that match the cache behavior.

Example Usage

The example below creates a CloudFront response headers policy.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloudfront.ResponseHeadersPolicy("example", {
name: "example-policy",
comment: "test comment",
corsConfig: {
accessControlAllowCredentials: true,
accessControlAllowHeaders: {
items: ["test"],
},
accessControlAllowMethods: {
items: ["GET"],
},
accessControlAllowOrigins: {
items: ["test&#46;example&#46;comtest"],
},
originOverride: true,
},
});
import pulumi
import pulumi_aws as aws
example = aws.cloudfront.ResponseHeadersPolicy("example",
name="example-policy",
comment="test comment",
cors_config={
"access_control_allow_credentials": True,
"access_control_allow_headers": {
"items": ["test"],
},
"access_control_allow_methods": {
"items": ["GET"],
},
"access_control_allow_origins": {
"items": ["test&#46;example&#46;comtest"],
},
"origin_override": True,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.CloudFront.ResponseHeadersPolicy("example", new()
{
Name = "example-policy",
Comment = "test comment",
CorsConfig = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCorsConfigArgs
{
AccessControlAllowCredentials = true,
AccessControlAllowHeaders = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs
{
Items = new[]
{
"test",
},
},
AccessControlAllowMethods = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs
{
Items = new[]
{
"GET",
},
},
AccessControlAllowOrigins = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs
{
Items = new[]
{
"test.example.comtest",
},
},
OriginOverride = true,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloudfront.NewResponseHeadersPolicy(ctx, "example", &cloudfront.ResponseHeadersPolicyArgs{
Name: pulumi.String("example-policy"),
Comment: pulumi.String("test comment"),
CorsConfig: &cloudfront.ResponseHeadersPolicyCorsConfigArgs{
AccessControlAllowCredentials: pulumi.Bool(true),
AccessControlAllowHeaders: &cloudfront.ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs{
Items: pulumi.StringArray{
pulumi.String("test"),
},
},
AccessControlAllowMethods: &cloudfront.ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs{
Items: pulumi.StringArray{
pulumi.String("GET"),
},
},
AccessControlAllowOrigins: &cloudfront.ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs{
Items: pulumi.StringArray{
pulumi.String("test.example.comtest"),
},
},
OriginOverride: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicy;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicyArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCorsConfigArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResponseHeadersPolicy("example", ResponseHeadersPolicyArgs.builder()
.name("example-policy")
.comment("test comment")
.corsConfig(ResponseHeadersPolicyCorsConfigArgs.builder()
.accessControlAllowCredentials(true)
.accessControlAllowHeaders(ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs.builder()
.items("test")
.build())
.accessControlAllowMethods(ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs.builder()
.items("GET")
.build())
.accessControlAllowOrigins(ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs.builder()
.items("test.example.comtest")
.build())
.originOverride(true)
.build())
.build());
}
}
resources:
example:
type: aws:cloudfront:ResponseHeadersPolicy
properties:
name: example-policy
comment: test comment
corsConfig:
accessControlAllowCredentials: true
accessControlAllowHeaders:
items:
- test
accessControlAllowMethods:
items:
- GET
accessControlAllowOrigins:
items:
- test.example.comtest
originOverride: true

The example below creates a CloudFront response headers policy with a custom headers config.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloudfront.ResponseHeadersPolicy("example", {
name: "example-headers-policy",
customHeadersConfig: {
items: [
{
header: "X-Permitted-Cross-Domain-Policies",
override: true,
value: "none",
},
{
header: "X-Test",
override: true,
value: "none",
},
],
},
});
import pulumi
import pulumi_aws as aws
example = aws.cloudfront.ResponseHeadersPolicy("example",
name="example-headers-policy",
custom_headers_config={
"items": [
{
"header": "X-Permitted-Cross-Domain-Policies",
"override": True,
"value": "none",
},
{
"header": "X-Test",
"override": True,
"value": "none",
},
],
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.CloudFront.ResponseHeadersPolicy("example", new()
{
Name = "example-headers-policy",
CustomHeadersConfig = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCustomHeadersConfigArgs
{
Items = new[]
{
new Aws.CloudFront.Inputs.ResponseHeadersPolicyCustomHeadersConfigItemArgs
{
Header = "X-Permitted-Cross-Domain-Policies",
Override = true,
Value = "none",
},
new Aws.CloudFront.Inputs.ResponseHeadersPolicyCustomHeadersConfigItemArgs
{
Header = "X-Test",
Override = true,
Value = "none",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloudfront.NewResponseHeadersPolicy(ctx, "example", &cloudfront.ResponseHeadersPolicyArgs{
Name: pulumi.String("example-headers-policy"),
CustomHeadersConfig: &cloudfront.ResponseHeadersPolicyCustomHeadersConfigArgs{
Items: cloudfront.ResponseHeadersPolicyCustomHeadersConfigItemArray{
&cloudfront.ResponseHeadersPolicyCustomHeadersConfigItemArgs{
Header: pulumi.String("X-Permitted-Cross-Domain-Policies"),
Override: pulumi.Bool(true),
Value: pulumi.String("none"),
},
&cloudfront.ResponseHeadersPolicyCustomHeadersConfigItemArgs{
Header: pulumi.String("X-Test"),
Override: pulumi.Bool(true),
Value: pulumi.String("none"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicy;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicyArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCustomHeadersConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResponseHeadersPolicy("example", ResponseHeadersPolicyArgs.builder()
.name("example-headers-policy")
.customHeadersConfig(ResponseHeadersPolicyCustomHeadersConfigArgs.builder()
.items(
ResponseHeadersPolicyCustomHeadersConfigItemArgs.builder()
.header("X-Permitted-Cross-Domain-Policies")
.override(true)
.value("none")
.build(),
ResponseHeadersPolicyCustomHeadersConfigItemArgs.builder()
.header("X-Test")
.override(true)
.value("none")
.build())
.build())
.build());
}
}
resources:
example:
type: aws:cloudfront:ResponseHeadersPolicy
properties:
name: example-headers-policy
customHeadersConfig:
items:
- header: X-Permitted-Cross-Domain-Policies
override: true
value: none
- header: X-Test
override: true
value: none

The example below creates a CloudFront response headers policy with a custom headers config, remove headers config and server timing headers config.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloudfront.ResponseHeadersPolicy("example", {
name: "example-headers-policy",
customHeadersConfig: {
items: [{
header: "X-Permitted-Cross-Domain-Policies",
override: true,
value: "none",
}],
},
removeHeadersConfig: {
items: [{
header: "Set-Cookie",
}],
},
serverTimingHeadersConfig: {
enabled: true,
samplingRate: 50,
},
});
import pulumi
import pulumi_aws as aws
example = aws.cloudfront.ResponseHeadersPolicy("example",
name="example-headers-policy",
custom_headers_config={
"items": [{
"header": "X-Permitted-Cross-Domain-Policies",
"override": True,
"value": "none",
}],
},
remove_headers_config={
"items": [{
"header": "Set-Cookie",
}],
},
server_timing_headers_config={
"enabled": True,
"sampling_rate": 50,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.CloudFront.ResponseHeadersPolicy("example", new()
{
Name = "example-headers-policy",
CustomHeadersConfig = new Aws.CloudFront.Inputs.ResponseHeadersPolicyCustomHeadersConfigArgs
{
Items = new[]
{
new Aws.CloudFront.Inputs.ResponseHeadersPolicyCustomHeadersConfigItemArgs
{
Header = "X-Permitted-Cross-Domain-Policies",
Override = true,
Value = "none",
},
},
},
RemoveHeadersConfig = new Aws.CloudFront.Inputs.ResponseHeadersPolicyRemoveHeadersConfigArgs
{
Items = new[]
{
new Aws.CloudFront.Inputs.ResponseHeadersPolicyRemoveHeadersConfigItemArgs
{
Header = "Set-Cookie",
},
},
},
ServerTimingHeadersConfig = new Aws.CloudFront.Inputs.ResponseHeadersPolicyServerTimingHeadersConfigArgs
{
Enabled = true,
SamplingRate = 50,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloudfront.NewResponseHeadersPolicy(ctx, "example", &cloudfront.ResponseHeadersPolicyArgs{
Name: pulumi.String("example-headers-policy"),
CustomHeadersConfig: &cloudfront.ResponseHeadersPolicyCustomHeadersConfigArgs{
Items: cloudfront.ResponseHeadersPolicyCustomHeadersConfigItemArray{
&cloudfront.ResponseHeadersPolicyCustomHeadersConfigItemArgs{
Header: pulumi.String("X-Permitted-Cross-Domain-Policies"),
Override: pulumi.Bool(true),
Value: pulumi.String("none"),
},
},
},
RemoveHeadersConfig: &cloudfront.ResponseHeadersPolicyRemoveHeadersConfigArgs{
Items: cloudfront.ResponseHeadersPolicyRemoveHeadersConfigItemArray{
&cloudfront.ResponseHeadersPolicyRemoveHeadersConfigItemArgs{
Header: pulumi.String("Set-Cookie"),
},
},
},
ServerTimingHeadersConfig: &cloudfront.ResponseHeadersPolicyServerTimingHeadersConfigArgs{
Enabled: pulumi.Bool(true),
SamplingRate: pulumi.Float64(50),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicy;
import com.pulumi.aws.cloudfront.ResponseHeadersPolicyArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyCustomHeadersConfigArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyRemoveHeadersConfigArgs;
import com.pulumi.aws.cloudfront.inputs.ResponseHeadersPolicyServerTimingHeadersConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResponseHeadersPolicy("example", ResponseHeadersPolicyArgs.builder()
.name("example-headers-policy")
.customHeadersConfig(ResponseHeadersPolicyCustomHeadersConfigArgs.builder()
.items(ResponseHeadersPolicyCustomHeadersConfigItemArgs.builder()
.header("X-Permitted-Cross-Domain-Policies")
.override(true)
.value("none")
.build())
.build())
.removeHeadersConfig(ResponseHeadersPolicyRemoveHeadersConfigArgs.builder()
.items(ResponseHeadersPolicyRemoveHeadersConfigItemArgs.builder()
.header("Set-Cookie")
.build())
.build())
.serverTimingHeadersConfig(ResponseHeadersPolicyServerTimingHeadersConfigArgs.builder()
.enabled(true)
.samplingRate(50.0)
.build())
.build());
}
}
resources:
example:
type: aws:cloudfront:ResponseHeadersPolicy
properties:
name: example-headers-policy
customHeadersConfig:
items:
- header: X-Permitted-Cross-Domain-Policies
override: true
value: none
removeHeadersConfig:
items:
- header: Set-Cookie
serverTimingHeadersConfig:
enabled: true
samplingRate: 50

Import

Using pulumi import, import Cloudfront Response Headers Policies using the id. For example:

$ pulumi import aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy policy 658327ea-f89d-4fab-a63d-7e88639e58f9

Constructors

Link copied to clipboard
constructor(comment: Output<String>? = null, corsConfig: Output<ResponseHeadersPolicyCorsConfigArgs>? = null, customHeadersConfig: Output<ResponseHeadersPolicyCustomHeadersConfigArgs>? = null, etag: Output<String>? = null, name: Output<String>? = null, removeHeadersConfig: Output<ResponseHeadersPolicyRemoveHeadersConfigArgs>? = null, securityHeadersConfig: Output<ResponseHeadersPolicySecurityHeadersConfigArgs>? = null, serverTimingHeadersConfig: Output<ResponseHeadersPolicyServerTimingHeadersConfigArgs>? = null)

Properties

Link copied to clipboard
val comment: Output<String>? = null

A comment to describe the response headers policy. The comment cannot be longer than 128 characters.

Link copied to clipboard

A configuration for a set of HTTP response headers that are used for Cross-Origin Resource Sharing (CORS). See Cors Config for more information.

Link copied to clipboard

Object that contains an attribute items that contains a list of custom headers. See Custom Header for more information.

Link copied to clipboard
val etag: Output<String>? = null

The current version of the response headers policy.

Link copied to clipboard
val name: Output<String>? = null

A unique name to identify the response headers policy.

Link copied to clipboard

A configuration for a set of HTTP headers to remove from the HTTP response. Object that contains an attribute items that contains a list of headers. See Remove Header for more information.

Link copied to clipboard

A configuration for a set of security-related HTTP response headers. See Security Headers Config for more information.

Link copied to clipboard

A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront. See Server Timing Headers Config for more information.

Functions

Link copied to clipboard
open override fun toJava(): ResponseHeadersPolicyArgs