Class: AWSCDK::CloudFront::SourceConfiguration
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::CloudFront::SourceConfiguration
- 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
-
#behaviors ⇒ Array<AWSCDK::CloudFront::Behavior>
readonly
The behaviors associated with this source.
-
#connection_attempts ⇒ Numeric?
readonly
The number of times that CloudFront attempts to connect to the origin.
-
#connection_timeout ⇒ AWSCDK::Duration?
readonly
The number of seconds that CloudFront waits when trying to establish a connection to the origin.
-
#custom_origin_source ⇒ AWSCDK::CloudFront::CustomOriginConfig?
readonly
A custom origin source - for all non-s3 sources.
-
#failover_criteria_status_codes ⇒ Array<AWSCDK::CloudFront::FailoverStatusCode>?
readonly
HTTP status code to failover to second origin.
-
#failover_custom_origin_source ⇒ AWSCDK::CloudFront::CustomOriginConfig?
readonly
A custom origin source for failover in case the s3OriginSource returns invalid status code.
-
#failover_s3_origin_source ⇒ AWSCDK::CloudFront::S3OriginConfig?
readonly
An s3 origin source for failover in case the s3OriginSource returns invalid status code.
-
#origin_shield_region ⇒ String?
readonly
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?
readonly
An s3 origin source - if you're using s3 for your assets.
Class Method Summary collapse
Instance Method Summary collapse
-
#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
constructor
A new instance of SourceConfiguration.
- #to_jsii ⇒ Object
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.
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
#behaviors ⇒ Array<AWSCDK::CloudFront::Behavior> (readonly)
The behaviors associated with this source.
At least one (default) behavior must be included.
48 49 50 |
# File 'cloud_front/source_configuration.rb', line 48 def behaviors @behaviors end |
#connection_attempts ⇒ Numeric? (readonly)
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.
55 56 57 |
# File 'cloud_front/source_configuration.rb', line 55 def connection_attempts @connection_attempts end |
#connection_timeout ⇒ AWSCDK::Duration? (readonly)
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).
62 63 64 |
# File 'cloud_front/source_configuration.rb', line 62 def connection_timeout @connection_timeout end |
#custom_origin_source ⇒ AWSCDK::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_codes ⇒ Array<AWSCDK::CloudFront::FailoverStatusCode>? (readonly)
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_source ⇒ AWSCDK::CloudFront::CustomOriginConfig? (readonly)
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_source ⇒ AWSCDK::CloudFront::S3OriginConfig? (readonly)
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_region ⇒ String? (readonly)
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_source ⇒ AWSCDK::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_properties ⇒ Object
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_jsii ⇒ Object
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 |