Class: AWSCDK::CloudFront::CfnDistribution::CustomOriginConfigProperty

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

Overview

A custom origin.

A custom origin is any origin that is not an Amazon S3 bucket, with one exception. An Amazon S3 bucket that is configured with static website hosting is a custom origin.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(origin_protocol_policy:, http_port: nil, https_port: nil, ip_address_type: nil, origin_keepalive_timeout: nil, origin_mtls_config: nil, origin_read_timeout: nil, origin_ssl_protocols: nil) ⇒ CustomOriginConfigProperty

Returns a new instance of CustomOriginConfigProperty.

Parameters:

  • origin_protocol_policy (String)

    Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are:.

  • 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 (String, nil) (defaults to: nil)

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

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

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

  • origin_mtls_config (AWSCDK::IResolvable, AWSCDK::CloudFront::CfnDistribution::OriginMtlsConfigProperty, nil) (defaults to: nil)

    Configures mutual TLS authentication between CloudFront and your origin server.

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

    Specifies how long, in seconds, CloudFront waits for a response from the origin.

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

    Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS.



1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
# File 'cloud_front/cfn_distribution.rb', line 1132

def initialize(origin_protocol_policy:, http_port: nil, https_port: nil, ip_address_type: nil, origin_keepalive_timeout: nil, origin_mtls_config: nil, origin_read_timeout: nil, origin_ssl_protocols: nil)
  @origin_protocol_policy = origin_protocol_policy
  Jsii::Type.check_type(@origin_protocol_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "originProtocolPolicy")
  @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("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ipAddressType") unless @ip_address_type.nil?
  @origin_keepalive_timeout = origin_keepalive_timeout
  Jsii::Type.check_type(@origin_keepalive_timeout, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "originKeepaliveTimeout") unless @origin_keepalive_timeout.nil?
  @origin_mtls_config = origin_mtls_config.is_a?(Hash) ? ::AWSCDK::CloudFront::CfnDistribution::OriginMtlsConfigProperty.new(**origin_mtls_config.transform_keys(&:to_sym)) : origin_mtls_config
  Jsii::Type.check_type(@origin_mtls_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250LkNmbkRpc3RyaWJ1dGlvbi5PcmlnaW5NdGxzQ29uZmlnUHJvcGVydHkifV19fQ==")), "originMtlsConfig") unless @origin_mtls_config.nil?
  @origin_read_timeout = origin_read_timeout
  Jsii::Type.check_type(@origin_read_timeout, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "originReadTimeout") unless @origin_read_timeout.nil?
  @origin_ssl_protocols = origin_ssl_protocols
  Jsii::Type.check_type(@origin_ssl_protocols, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "originSslProtocols") unless @origin_ssl_protocols.nil?
end

Instance Attribute Details

#http_portNumeric? (readonly)

Note:

Default: - 80

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

Specify the HTTP port that the origin listens on.



1167
1168
1169
# File 'cloud_front/cfn_distribution.rb', line 1167

def http_port
  @http_port
end

#https_portNumeric? (readonly)

Note:

Default: - 443

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

Specify the HTTPS port that the origin listens on.



1175
1176
1177
# File 'cloud_front/cfn_distribution.rb', line 1175

def https_port
  @https_port
end

#ip_address_typeString? (readonly)

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.



1182
1183
1184
# File 'cloud_front/cfn_distribution.rb', line 1182

def ip_address_type
  @ip_address_type
end

#origin_keepalive_timeoutNumeric? (readonly)

Note:

Default: - 5

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

The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 5 seconds.

For more information, see Keep-alive timeout (custom origins only) in the Amazon CloudFront Developer Guide .



1192
1193
1194
# File 'cloud_front/cfn_distribution.rb', line 1192

def origin_keepalive_timeout
  @origin_keepalive_timeout
end

#origin_mtls_configAWSCDK::IResolvable, ... (readonly)

Configures mutual TLS authentication between CloudFront and your origin server.



1197
1198
1199
# File 'cloud_front/cfn_distribution.rb', line 1197

def origin_mtls_config
  @origin_mtls_config
end

#origin_protocol_policyString (readonly)

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are:.

  • http-only – CloudFront always uses HTTP to connect to the origin.
  • match-viewer – CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront.
  • https-only – CloudFront always uses HTTPS to connect to the origin.


1159
1160
1161
# File 'cloud_front/cfn_distribution.rb', line 1159

def origin_protocol_policy
  @origin_protocol_policy
end

#origin_read_timeoutNumeric? (readonly)

Note:

Default: - 30

Specifies how long, in seconds, CloudFront waits for a response from the origin.

This is also known as the origin response timeout . The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.

For more information, see Response timeout in the Amazon CloudFront Developer Guide .



1207
1208
1209
# File 'cloud_front/cfn_distribution.rb', line 1207

def origin_read_timeout
  @origin_read_timeout
end

#origin_ssl_protocolsArray<String>? (readonly)

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS.

Valid values include SSLv3 , TLSv1 , TLSv1.1 , and TLSv1.2 .

For more information, see Minimum Origin SSL Protocol in the Amazon CloudFront Developer Guide .



1216
1217
1218
# File 'cloud_front/cfn_distribution.rb', line 1216

def origin_ssl_protocols
  @origin_ssl_protocols
end

Class Method Details

.jsii_propertiesObject



1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
# File 'cloud_front/cfn_distribution.rb', line 1218

def self.jsii_properties
  {
    :origin_protocol_policy => "originProtocolPolicy",
    :http_port => "httpPort",
    :https_port => "httpsPort",
    :ip_address_type => "ipAddressType",
    :origin_keepalive_timeout => "originKeepaliveTimeout",
    :origin_mtls_config => "originMtlsConfig",
    :origin_read_timeout => "originReadTimeout",
    :origin_ssl_protocols => "originSslProtocols",
  }
end

Instance Method Details

#to_jsiiObject



1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
# File 'cloud_front/cfn_distribution.rb', line 1231

def to_jsii
  result = {}
  result.merge!({
    "originProtocolPolicy" => @origin_protocol_policy,
    "httpPort" => @http_port,
    "httpsPort" => @https_port,
    "ipAddressType" => @ip_address_type,
    "originKeepaliveTimeout" => @origin_keepalive_timeout,
    "originMtlsConfig" => @origin_mtls_config,
    "originReadTimeout" => @origin_read_timeout,
    "originSslProtocols" => @origin_ssl_protocols,
  })
  result.compact
end