Class: AWSCDK::CloudFront::CfnDistribution::OriginGroupProperty

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

Overview

An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify.

You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen.

Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(failover_criteria:, id:, members:, selection_criteria: nil) ⇒ OriginGroupProperty

Returns a new instance of OriginGroupProperty.

Parameters:



2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
# File 'cloud_front/cfn_distribution.rb', line 2660

def initialize(failover_criteria:, id:, members:, selection_criteria: nil)
  @failover_criteria = failover_criteria.is_a?(Hash) ? ::AWSCDK::CloudFront::CfnDistribution::OriginGroupFailoverCriteriaProperty.new(**failover_criteria.transform_keys(&:to_sym)) : failover_criteria
  Jsii::Type.check_type(@failover_criteria, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250LkNmbkRpc3RyaWJ1dGlvbi5PcmlnaW5Hcm91cEZhaWxvdmVyQ3JpdGVyaWFQcm9wZXJ0eSJ9XX19")), "failoverCriteria")
  @id = id
  Jsii::Type.check_type(@id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  @members = members.is_a?(Hash) ? ::AWSCDK::CloudFront::CfnDistribution::OriginGroupMembersProperty.new(**members.transform_keys(&:to_sym)) : members
  Jsii::Type.check_type(@members, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19jbG91ZGZyb250LkNmbkRpc3RyaWJ1dGlvbi5PcmlnaW5Hcm91cE1lbWJlcnNQcm9wZXJ0eSJ9XX19")), "members")
  @selection_criteria = selection_criteria
  Jsii::Type.check_type(@selection_criteria, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "selectionCriteria") unless @selection_criteria.nil?
end

Instance Attribute Details

#failover_criteriaAWSCDK::IResolvable, AWSCDK::CloudFront::CfnDistribution::OriginGroupFailoverCriteriaProperty (readonly)

A complex type that contains information about the failover criteria for an origin group.



2675
2676
2677
# File 'cloud_front/cfn_distribution.rb', line 2675

def failover_criteria
  @failover_criteria
end

#idString (readonly)

The origin group's ID.



2680
2681
2682
# File 'cloud_front/cfn_distribution.rb', line 2680

def id
  @id
end

#membersAWSCDK::IResolvable, AWSCDK::CloudFront::CfnDistribution::OriginGroupMembersProperty (readonly)

A complex type that contains information about the origins in an origin group.



2685
2686
2687
# File 'cloud_front/cfn_distribution.rb', line 2685

def members
  @members
end

#selection_criteriaString? (readonly)

The selection criteria for the origin group.

For more information, see Create an origin group in the Amazon CloudFront Developer Guide .



2692
2693
2694
# File 'cloud_front/cfn_distribution.rb', line 2692

def selection_criteria
  @selection_criteria
end

Class Method Details

.jsii_propertiesObject



2694
2695
2696
2697
2698
2699
2700
2701
# File 'cloud_front/cfn_distribution.rb', line 2694

def self.jsii_properties
  {
    :failover_criteria => "failoverCriteria",
    :id => "id",
    :members => "members",
    :selection_criteria => "selectionCriteria",
  }
end

Instance Method Details

#to_jsiiObject



2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
# File 'cloud_front/cfn_distribution.rb', line 2703

def to_jsii
  result = {}
  result.merge!({
    "failoverCriteria" => @failover_criteria,
    "id" => @id,
    "members" => @members,
    "selectionCriteria" => @selection_criteria,
  })
  result.compact
end