Class: AWSCDK::CloudFrontOrigins::HttpOriginProps

Inherits:
AWSCDK::CloudFront::OriginProps
  • Object
show all
Defined in:
cloud_front_origins/http_origin_props.rb

Overview

Properties for an Origin backed by an S3 website-configured bucket, load balancer, or custom HTTP server.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection_attempts: nil, connection_timeout: nil, custom_headers: nil, origin_access_control_id: nil, origin_id: nil, origin_shield_enabled: nil, origin_shield_region: nil, response_completion_timeout: nil, origin_path: nil, http_port: nil, https_port: nil, ip_address_type: nil, keepalive_timeout: nil, origin_ssl_protocols: nil, protocol_policy: nil, read_timeout: nil) ⇒ HttpOriginProps

Returns a new instance of HttpOriginProps.

Parameters:

  • connection_attempts (Numeric, nil) (defaults to: nil)

    The number of times that CloudFront attempts to connect to the origin;

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

    The number of seconds that CloudFront waits when trying to establish a connection to the origin.

  • custom_headers (Hash{String => String}, nil) (defaults to: nil)

    A list of HTTP header names and values that CloudFront adds to requests it sends to the origin.

  • origin_access_control_id (String, nil) (defaults to: nil)

    The unique identifier of an origin access control for this origin.

  • origin_id (String, nil) (defaults to: nil)

    A unique identifier for the origin.

  • origin_shield_enabled (Boolean, nil) (defaults to: nil)

    Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false.

  • origin_shield_region (String, nil) (defaults to: nil)

    When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.

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

    The time that a request from CloudFront to the origin can stay open and wait for a response.

  • origin_path (String, nil) (defaults to: nil)

    An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.

  • http_port (Numeric, nil) (defaults to: nil)

    The HTTP port that CloudFront uses to connect to the origin.

  • https_port (Numeric, nil) (defaults to: nil)

    The HTTPS port that CloudFront uses to connect to the origin.

  • ip_address_type (AWSCDK::CloudFront::OriginIPAddressType, nil) (defaults to: nil)

    Specifies which IP protocol CloudFront uses when connecting to your origin.

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

    Specifies how long, in seconds, CloudFront persists its connection to the origin.

  • origin_ssl_protocols (Array<AWSCDK::CloudFront::OriginSSLPolicy>, nil) (defaults to: nil)

    The SSL versions to use when interacting with the origin.

  • protocol_policy (AWSCDK::CloudFront::OriginProtocolPolicy, nil) (defaults to: nil)

    Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin.

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

    Specifies how long, in seconds, CloudFront waits for a response from the origin, also known as the origin response timeout.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'cloud_front_origins/http_origin_props.rb', line 23

def initialize(connection_attempts: nil, connection_timeout: nil, custom_headers: nil, origin_access_control_id: nil, origin_id: nil, origin_shield_enabled: nil, origin_shield_region: nil, response_completion_timeout: nil, origin_path: nil, http_port: nil, https_port: nil, ip_address_type: nil, keepalive_timeout: nil, origin_ssl_protocols: nil, protocol_policy: nil, read_timeout: nil)
  @connection_attempts = connection_attempts
  Jsii::Type.check_type(@connection_attempts, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "connectionAttempts") unless @connection_attempts.nil?
  @connection_timeout = connection_timeout
  Jsii::Type.check_type(@connection_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "connectionTimeout") unless @connection_timeout.nil?
  @custom_headers = custom_headers
  Jsii::Type.check_type(@custom_headers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "customHeaders") unless @custom_headers.nil?
  @origin_access_control_id = origin_access_control_id
  Jsii::Type.check_type(@origin_access_control_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "originAccessControlId") unless @origin_access_control_id.nil?
  @origin_id = origin_id
  Jsii::Type.check_type(@origin_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "originId") unless @origin_id.nil?
  @origin_shield_enabled = origin_shield_enabled
  Jsii::Type.check_type(@origin_shield_enabled, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "originShieldEnabled") unless @origin_shield_enabled.nil?
  @origin_shield_region = origin_shield_region
  Jsii::Type.check_type(@origin_shield_region, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "originShieldRegion") unless @origin_shield_region.nil?
  @response_completion_timeout = response_completion_timeout
  Jsii::Type.check_type(@response_completion_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "responseCompletionTimeout") unless @response_completion_timeout.nil?
  @origin_path = origin_path
  Jsii::Type.check_type(@origin_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "originPath") unless @origin_path.nil?
  @http_port = http_port
  Jsii::Type.check_type(@http_port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "httpPort") unless @http_port.nil?
  @https_port = https_port
  Jsii::Type.check_type(@https_port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "httpsPort") unless @https_port.nil?
  @ip_address_type = ip_address_type
  Jsii::Type.check_type(@ip_address_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5PcmlnaW5JcEFkZHJlc3NUeXBlIn0=")), "ipAddressType") unless @ip_address_type.nil?
  @keepalive_timeout = keepalive_timeout
  Jsii::Type.check_type(@keepalive_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "keepaliveTimeout") unless @keepalive_timeout.nil?
  @origin_ssl_protocols = origin_ssl_protocols
  Jsii::Type.check_type(@origin_ssl_protocols, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250Lk9yaWdpblNzbFBvbGljeSJ9LCJraW5kIjoiYXJyYXkifX0=")), "originSslProtocols") unless @origin_ssl_protocols.nil?
  @protocol_policy = protocol_policy
  Jsii::Type.check_type(@protocol_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5PcmlnaW5Qcm90b2NvbFBvbGljeSJ9")), "protocolPolicy") unless @protocol_policy.nil?
  @read_timeout = read_timeout
  Jsii::Type.check_type(@read_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "readTimeout") unless @read_timeout.nil?
end

Instance Attribute Details

#connection_attemptsNumeric? (readonly)

Note:

Default: 3

The number of times that CloudFront attempts to connect to the origin;

valid values are 1, 2, or 3 attempts.

Returns:

  • (Numeric, nil)


64
65
66
# File 'cloud_front_origins/http_origin_props.rb', line 64

def connection_attempts
  @connection_attempts
end

#connection_timeoutAWSCDK::Duration? (readonly)

Note:

Default: Duration.seconds(10)

The number of seconds that CloudFront waits when trying to establish a connection to the origin.

Valid values are 1-10 seconds, inclusive.

Returns:



71
72
73
# File 'cloud_front_origins/http_origin_props.rb', line 71

def connection_timeout
  @connection_timeout
end

#custom_headersHash{String => String}? (readonly)

Note:

Default: {}

A list of HTTP header names and values that CloudFront adds to requests it sends to the origin.

Returns:

  • (Hash{String => String}, nil)


76
77
78
# File 'cloud_front_origins/http_origin_props.rb', line 76

def custom_headers
  @custom_headers
end

#http_portNumeric? (readonly)

Note:

Default: 80

The HTTP port that CloudFront uses to connect to the origin.

Returns:

  • (Numeric, nil)


121
122
123
# File 'cloud_front_origins/http_origin_props.rb', line 121

def http_port
  @http_port
end

#https_portNumeric? (readonly)

Note:

Default: 443

The HTTPS port that CloudFront uses to connect to the origin.

Returns:

  • (Numeric, nil)


126
127
128
# File 'cloud_front_origins/http_origin_props.rb', line 126

def https_port
  @https_port
end

#ip_address_typeAWSCDK::CloudFront::OriginIPAddressType? (readonly)

Note:

Default: undefined - AWS Cloudfront default is IPv4

Specifies which IP protocol CloudFront uses when connecting to your origin.

If your origin uses both IPv4 and IPv6 protocols, you can choose dualstack to help optimize reliability.



133
134
135
# File 'cloud_front_origins/http_origin_props.rb', line 133

def ip_address_type
  @ip_address_type
end

#keepalive_timeoutAWSCDK::Duration? (readonly)

Note:

Default: Duration.seconds(5)

Specifies how long, in seconds, CloudFront persists its connection to the origin.

The valid range is from 1 to 180 seconds, inclusive.

Note that values over 60 seconds are possible only after a limit increase request for the origin response timeout quota has been approved in the target account; otherwise, values over 60 seconds will produce an error at deploy time.

Returns:



143
144
145
# File 'cloud_front_origins/http_origin_props.rb', line 143

def keepalive_timeout
  @keepalive_timeout
end

#origin_access_control_idString? (readonly)

Note:

Default: - no origin access control

The unique identifier of an origin access control for this origin.

Returns:

  • (String, nil)


81
82
83
# File 'cloud_front_origins/http_origin_props.rb', line 81

def origin_access_control_id
  @origin_access_control_id
end

#origin_idString? (readonly)

Note:

Default: - an originid will be generated for you

A unique identifier for the origin.

This value must be unique within the distribution.

Returns:

  • (String, nil)


88
89
90
# File 'cloud_front_origins/http_origin_props.rb', line 88

def origin_id
  @origin_id
end

#origin_pathString? (readonly)

Note:

Default: '/'

An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.

Must begin, but not end, with '/' (e.g., '/production/images').

Returns:

  • (String, nil)


116
117
118
# File 'cloud_front_origins/http_origin_props.rb', line 116

def origin_path
  @origin_path
end

#origin_shield_enabledBoolean? (readonly)

Note:

Default: - true

Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false.

Returns:

  • (Boolean, nil)


93
94
95
# File 'cloud_front_origins/http_origin_props.rb', line 93

def origin_shield_enabled
  @origin_shield_enabled
end

#origin_shield_regionString? (readonly)

Note:

Default: - origin shield not enabled

When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.



99
100
101
# File 'cloud_front_origins/http_origin_props.rb', line 99

def origin_shield_region
  @origin_shield_region
end

#origin_ssl_protocolsArray<AWSCDK::CloudFront::OriginSSLPolicy>? (readonly)

Note:

Default: OriginSslPolicy.TLS_V1_2

The SSL versions to use when interacting with the origin.

Returns:



148
149
150
# File 'cloud_front_origins/http_origin_props.rb', line 148

def origin_ssl_protocols
  @origin_ssl_protocols
end

#protocol_policyAWSCDK::CloudFront::OriginProtocolPolicy? (readonly)

Note:

Default: OriginProtocolPolicy.HTTPS_ONLY

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin.



153
154
155
# File 'cloud_front_origins/http_origin_props.rb', line 153

def protocol_policy
  @protocol_policy
end

#read_timeoutAWSCDK::Duration? (readonly)

Note:

Default: Duration.seconds(30)

Specifies how long, in seconds, CloudFront waits for a response from the origin, also known as the origin response timeout.

The valid range is from 1 to 180 seconds, inclusive.

Note that values over 60 seconds are possible only after a limit increase request for the origin response timeout quota has been approved in the target account; otherwise, values over 60 seconds will produce an error at deploy time.

Returns:



163
164
165
# File 'cloud_front_origins/http_origin_props.rb', line 163

def read_timeout
  @read_timeout
end

#response_completion_timeoutAWSCDK::Duration? (readonly)

Note:

Default: undefined - AWS CloudFront default is not enforcing a maximum value

The time that a request from CloudFront to the origin can stay open and wait for a response.

If the complete response isn't received from the origin by this time, CloudFront ends the connection.

Valid values are 1-3600 seconds, inclusive.



109
110
111
# File 'cloud_front_origins/http_origin_props.rb', line 109

def response_completion_timeout
  @response_completion_timeout
end

Class Method Details

.jsii_propertiesObject



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'cloud_front_origins/http_origin_props.rb', line 165

def self.jsii_properties
  {
    :connection_attempts => "connectionAttempts",
    :connection_timeout => "connectionTimeout",
    :custom_headers => "customHeaders",
    :origin_access_control_id => "originAccessControlId",
    :origin_id => "originId",
    :origin_shield_enabled => "originShieldEnabled",
    :origin_shield_region => "originShieldRegion",
    :response_completion_timeout => "responseCompletionTimeout",
    :origin_path => "originPath",
    :http_port => "httpPort",
    :https_port => "httpsPort",
    :ip_address_type => "ipAddressType",
    :keepalive_timeout => "keepaliveTimeout",
    :origin_ssl_protocols => "originSslProtocols",
    :protocol_policy => "protocolPolicy",
    :read_timeout => "readTimeout",
  }
end

Instance Method Details

#to_jsiiObject



186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'cloud_front_origins/http_origin_props.rb', line 186

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "connectionAttempts" => @connection_attempts,
    "connectionTimeout" => @connection_timeout,
    "customHeaders" => @custom_headers,
    "originAccessControlId" => @origin_access_control_id,
    "originId" => @origin_id,
    "originShieldEnabled" => @origin_shield_enabled,
    "originShieldRegion" => @origin_shield_region,
    "responseCompletionTimeout" => @response_completion_timeout,
    "originPath" => @origin_path,
    "httpPort" => @http_port,
    "httpsPort" => @https_port,
    "ipAddressType" => @ip_address_type,
    "keepaliveTimeout" => @keepalive_timeout,
    "originSslProtocols" => @origin_ssl_protocols,
    "protocolPolicy" => @protocol_policy,
    "readTimeout" => @read_timeout,
  })
  result.compact
end