Class: AWSCDK::CloudFront::ResponseHeadersCorsBehavior

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
cloud_front/response_headers_cors_behavior.rb

Overview

Configuration for a set of HTTP response headers that are used for cross-origin resource sharing (CORS).

CloudFront adds these headers to HTTP responses that it sends for CORS requests that match a cache behavior associated with this response headers policy.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_control_allow_credentials:, access_control_allow_headers:, access_control_allow_methods:, access_control_allow_origins:, origin_override:, access_control_expose_headers: nil, access_control_max_age: nil) ⇒ ResponseHeadersCorsBehavior

Returns a new instance of ResponseHeadersCorsBehavior.

Parameters:

  • access_control_allow_credentials (Boolean)

    A Boolean that CloudFront uses as the value for the Access-Control-Allow-Credentials HTTP response header.

  • access_control_allow_headers (Array<String>)

    A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header.

  • access_control_allow_methods (Array<String>)

    A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.

  • access_control_allow_origins (Array<String>)

    A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header.

  • origin_override (Boolean)

    A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy.

  • access_control_expose_headers (Array<String>, nil) (defaults to: nil)

    A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header.

  • access_control_max_age (AWSCDK::Duration, nil) (defaults to: nil)

    A number that CloudFront uses as the value for the Access-Control-Max-Age HTTP response header.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'cloud_front/response_headers_cors_behavior.rb', line 17

def initialize(access_control_allow_credentials:, access_control_allow_headers:, access_control_allow_methods:, access_control_allow_origins:, origin_override:, access_control_expose_headers: nil, access_control_max_age: nil)
  @access_control_allow_credentials = access_control_allow_credentials
  Jsii::Type.check_type(@access_control_allow_credentials, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "accessControlAllowCredentials")
  @access_control_allow_headers = access_control_allow_headers
  Jsii::Type.check_type(@access_control_allow_headers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "accessControlAllowHeaders")
  @access_control_allow_methods = access_control_allow_methods
  Jsii::Type.check_type(@access_control_allow_methods, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "accessControlAllowMethods")
  @access_control_allow_origins = access_control_allow_origins
  Jsii::Type.check_type(@access_control_allow_origins, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "accessControlAllowOrigins")
  @origin_override = origin_override
  Jsii::Type.check_type(@origin_override, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "originOverride")
  @access_control_expose_headers = access_control_expose_headers
  Jsii::Type.check_type(@access_control_expose_headers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "accessControlExposeHeaders") unless @access_control_expose_headers.nil?
  @access_control_max_age = access_control_max_age
  Jsii::Type.check_type(@access_control_max_age, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "accessControlMaxAge") unless @access_control_max_age.nil?
end

Instance Attribute Details

#access_control_allow_credentialsBoolean (readonly)

A Boolean that CloudFront uses as the value for the Access-Control-Allow-Credentials HTTP response header.

Returns:

  • (Boolean)


37
38
39
# File 'cloud_front/response_headers_cors_behavior.rb', line 37

def access_control_allow_credentials
  @access_control_allow_credentials
end

#access_control_allow_headersArray<String> (readonly)

A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header.

You can specify ['*'] to allow all headers.

Returns:

  • (Array<String>)


43
44
45
# File 'cloud_front/response_headers_cors_behavior.rb', line 43

def access_control_allow_headers
  @access_control_allow_headers
end

#access_control_allow_methodsArray<String> (readonly)

A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.

Allowed methods: 'GET', 'DELETE', 'HEAD', 'OPTIONS', 'PATCH', 'POST', and 'PUT'. You can specify ['ALL'] to allow all methods.

Returns:

  • (Array<String>)


50
51
52
# File 'cloud_front/response_headers_cors_behavior.rb', line 50

def access_control_allow_methods
  @access_control_allow_methods
end

#access_control_allow_originsArray<String> (readonly)

A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header.

You can specify ['*'] to allow all origins.

Returns:

  • (Array<String>)


56
57
58
# File 'cloud_front/response_headers_cors_behavior.rb', line 56

def access_control_allow_origins
  @access_control_allow_origins
end

#access_control_expose_headersArray<String>? (readonly)

Note:

Default: - no headers exposed

A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header.

You can specify ['*'] to expose all headers.

Returns:

  • (Array<String>, nil)


67
68
69
# File 'cloud_front/response_headers_cors_behavior.rb', line 67

def access_control_expose_headers
  @access_control_expose_headers
end

#access_control_max_ageAWSCDK::Duration? (readonly)

Note:

Default: - no max age

A number that CloudFront uses as the value for the Access-Control-Max-Age HTTP response header.

Returns:



72
73
74
# File 'cloud_front/response_headers_cors_behavior.rb', line 72

def access_control_max_age
  @access_control_max_age
end

#origin_overrideBoolean (readonly)

A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy.

Returns:

  • (Boolean)


60
61
62
# File 'cloud_front/response_headers_cors_behavior.rb', line 60

def origin_override
  @origin_override
end

Class Method Details

.jsii_propertiesObject



74
75
76
77
78
79
80
81
82
83
84
# File 'cloud_front/response_headers_cors_behavior.rb', line 74

def self.jsii_properties
  {
    :access_control_allow_credentials => "accessControlAllowCredentials",
    :access_control_allow_headers => "accessControlAllowHeaders",
    :access_control_allow_methods => "accessControlAllowMethods",
    :access_control_allow_origins => "accessControlAllowOrigins",
    :origin_override => "originOverride",
    :access_control_expose_headers => "accessControlExposeHeaders",
    :access_control_max_age => "accessControlMaxAge",
  }
end

Instance Method Details

#to_jsiiObject



86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'cloud_front/response_headers_cors_behavior.rb', line 86

def to_jsii
  result = {}
  result.merge!({
    "accessControlAllowCredentials" => @access_control_allow_credentials,
    "accessControlAllowHeaders" => @access_control_allow_headers,
    "accessControlAllowMethods" => @access_control_allow_methods,
    "accessControlAllowOrigins" => @access_control_allow_origins,
    "originOverride" => @origin_override,
    "accessControlExposeHeaders" => @access_control_expose_headers,
    "accessControlMaxAge" => @access_control_max_age,
  })
  result.compact
end