Class: AWSCDK::CloudFront::SourceConfiguration

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

Overview

A source configuration is a wrapper for CloudFront origins and behaviors.

An origin is what CloudFront will "be in front of" - that is, CloudFront will pull its assets from an origin.

If you're using s3 as a source - pass the s3_origin property, otherwise, pass the custom_origin_source property.

One or the other must be passed, and it is invalid to pass both in the same SourceConfiguration.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(behaviors:, connection_attempts: nil, connection_timeout: nil, custom_origin_source: nil, failover_criteria_status_codes: nil, failover_custom_origin_source: nil, failover_s3_origin_source: nil, origin_shield_region: nil, s3_origin_source: nil) ⇒ SourceConfiguration

Returns a new instance of SourceConfiguration.

Parameters:

  • behaviors (Array<AWSCDK::CloudFront::Behavior>)

    The behaviors associated with this source.

  • 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_origin_source (AWSCDK::CloudFront::CustomOriginConfig, nil) (defaults to: nil)

    A custom origin source - for all non-s3 sources.

  • failover_criteria_status_codes (Array<AWSCDK::CloudFront::FailoverStatusCode>, nil) (defaults to: nil)

    HTTP status code to failover to second origin.

  • failover_custom_origin_source (AWSCDK::CloudFront::CustomOriginConfig, nil) (defaults to: nil)

    A custom origin source for failover in case the s3OriginSource returns invalid status code.

  • failover_s3_origin_source (AWSCDK::CloudFront::S3OriginConfig, nil) (defaults to: nil)

    An s3 origin source for failover in case the s3OriginSource returns invalid status code.

  • 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.

  • s3_origin_source (AWSCDK::CloudFront::S3OriginConfig, nil) (defaults to: nil)

    An s3 origin source - if you're using s3 for your assets.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'cloud_front/source_configuration.rb', line 22

def initialize(behaviors:, connection_attempts: nil, connection_timeout: nil, custom_origin_source: nil, failover_criteria_status_codes: nil, failover_custom_origin_source: nil, failover_s3_origin_source: nil, origin_shield_region: nil, s3_origin_source: nil)
  @behaviors = behaviors.is_a?(Array) ? behaviors.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CloudFront::Behavior.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : behaviors
  Jsii::Type.check_type(@behaviors, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250LkJlaGF2aW9yIn0sImtpbmQiOiJhcnJheSJ9fQ==")), "behaviors")
  @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_origin_source = custom_origin_source.is_a?(Hash) ? ::AWSCDK::CloudFront::CustomOriginConfig.new(**custom_origin_source.transform_keys(&:to_sym)) : custom_origin_source
  Jsii::Type.check_type(@custom_origin_source, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5DdXN0b21PcmlnaW5Db25maWcifQ==")), "customOriginSource") unless @custom_origin_source.nil?
  @failover_criteria_status_codes = failover_criteria_status_codes
  Jsii::Type.check_type(@failover_criteria_status_codes, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250LkZhaWxvdmVyU3RhdHVzQ29kZSJ9LCJraW5kIjoiYXJyYXkifX0=")), "failoverCriteriaStatusCodes") unless @failover_criteria_status_codes.nil?
  @failover_custom_origin_source = failover_custom_origin_source.is_a?(Hash) ? ::AWSCDK::CloudFront::CustomOriginConfig.new(**failover_custom_origin_source.transform_keys(&:to_sym)) : failover_custom_origin_source
  Jsii::Type.check_type(@failover_custom_origin_source, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5DdXN0b21PcmlnaW5Db25maWcifQ==")), "failoverCustomOriginSource") unless @failover_custom_origin_source.nil?
  @failover_s3_origin_source = failover_s3_origin_source.is_a?(Hash) ? ::AWSCDK::CloudFront::S3OriginConfig.new(**failover_s3_origin_source.transform_keys(&:to_sym)) : failover_s3_origin_source
  Jsii::Type.check_type(@failover_s3_origin_source, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5TM09yaWdpbkNvbmZpZyJ9")), "failoverS3OriginSource") unless @failover_s3_origin_source.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?
  @s3_origin_source = s3_origin_source.is_a?(Hash) ? ::AWSCDK::CloudFront::S3OriginConfig.new(**s3_origin_source.transform_keys(&:to_sym)) : s3_origin_source
  Jsii::Type.check_type(@s3_origin_source, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWRmcm9udC5TM09yaWdpbkNvbmZpZyJ9")), "s3OriginSource") unless @s3_origin_source.nil?
end

Instance Attribute Details

#behaviorsArray<AWSCDK::CloudFront::Behavior> (readonly)

The behaviors associated with this source.

At least one (default) behavior must be included.

Returns:



48
49
50
# File 'cloud_front/source_configuration.rb', line 48

def behaviors
  @behaviors
end

#connection_attemptsNumeric? (readonly)

Note:

Default: 3

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

You can specify 1, 2, or 3 as the number of attempts.

Returns:

  • (Numeric, nil)


55
56
57
# File 'cloud_front/source_configuration.rb', line 55

def connection_attempts
  @connection_attempts
end

#connection_timeoutAWSCDK::Duration? (readonly)

Note:

Default: cdk.Duration.seconds(10)

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

You can specify a number of seconds between 1 and 10 (inclusive).

Returns:



62
63
64
# File 'cloud_front/source_configuration.rb', line 62

def connection_timeout
  @connection_timeout
end

#custom_origin_sourceAWSCDK::CloudFront::CustomOriginConfig? (readonly)

A custom origin source - for all non-s3 sources.



66
67
68
# File 'cloud_front/source_configuration.rb', line 66

def custom_origin_source
  @custom_origin_source
end

#failover_criteria_status_codesArray<AWSCDK::CloudFront::FailoverStatusCode>? (readonly)

Note:

Default: [500, 502, 503, 504]

HTTP status code to failover to second origin.



71
72
73
# File 'cloud_front/source_configuration.rb', line 71

def failover_criteria_status_codes
  @failover_criteria_status_codes
end

#failover_custom_origin_sourceAWSCDK::CloudFront::CustomOriginConfig? (readonly)

Note:

Default: - no failover configuration

A custom origin source for failover in case the s3OriginSource returns invalid status code.



76
77
78
# File 'cloud_front/source_configuration.rb', line 76

def failover_custom_origin_source
  @failover_custom_origin_source
end

#failover_s3_origin_sourceAWSCDK::CloudFront::S3OriginConfig? (readonly)

Note:

Default: - no failover configuration

An s3 origin source for failover in case the s3OriginSource returns invalid status code.



81
82
83
# File 'cloud_front/source_configuration.rb', line 81

def failover_s3_origin_source
  @failover_s3_origin_source
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.



87
88
89
# File 'cloud_front/source_configuration.rb', line 87

def origin_shield_region
  @origin_shield_region
end

#s3_origin_sourceAWSCDK::CloudFront::S3OriginConfig? (readonly)

An s3 origin source - if you're using s3 for your assets.



91
92
93
# File 'cloud_front/source_configuration.rb', line 91

def s3_origin_source
  @s3_origin_source
end

Class Method Details

.jsii_propertiesObject



93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'cloud_front/source_configuration.rb', line 93

def self.jsii_properties
  {
    :behaviors => "behaviors",
    :connection_attempts => "connectionAttempts",
    :connection_timeout => "connectionTimeout",
    :custom_origin_source => "customOriginSource",
    :failover_criteria_status_codes => "failoverCriteriaStatusCodes",
    :failover_custom_origin_source => "failoverCustomOriginSource",
    :failover_s3_origin_source => "failoverS3OriginSource",
    :origin_shield_region => "originShieldRegion",
    :s3_origin_source => "s3OriginSource",
  }
end

Instance Method Details

#to_jsiiObject



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'cloud_front/source_configuration.rb', line 107

def to_jsii
  result = {}
  result.merge!({
    "behaviors" => @behaviors,
    "connectionAttempts" => @connection_attempts,
    "connectionTimeout" => @connection_timeout,
    "customOriginSource" => @custom_origin_source,
    "failoverCriteriaStatusCodes" => @failover_criteria_status_codes,
    "failoverCustomOriginSource" => @failover_custom_origin_source,
    "failoverS3OriginSource" => @failover_s3_origin_source,
    "originShieldRegion" => @origin_shield_region,
    "s3OriginSource" => @s3_origin_source,
  })
  result.compact
end