Class: AWSCDK::EC2::CfnTransitGatewayProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ec2/cfn_transit_gateway_props.rb

Overview

Properties for defining a CfnTransitGateway.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(amazon_side_asn: nil, association_default_route_table_id: nil, auto_accept_shared_attachments: nil, default_route_table_association: nil, default_route_table_propagation: nil, description: nil, dns_support: nil, encryption_support: nil, multicast_support: nil, propagation_default_route_table_id: nil, security_group_referencing_support: nil, tags: nil, transit_gateway_cidr_blocks: nil, vpn_ecmp_support: nil) ⇒ CfnTransitGatewayProps

Returns a new instance of CfnTransitGatewayProps.

Parameters:

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

    A private Autonomous System Number (ASN) for the Amazon side of a BGP session.

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

    The ID of the default association route table.

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

    Enable or disable automatic acceptance of attachment requests.

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

    Enable or disable automatic association with the default association route table.

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

    Enable or disable automatic propagation of routes to the default propagation route table.

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

    The description of the transit gateway.

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

    Enable or disable DNS support.

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

    Enable or disable encryption support.

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

    Indicates whether multicast is enabled on the transit gateway.

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

    The ID of the default propagation route table.

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

    Enables you to reference a security group across VPCs attached to a transit gateway (TGW).

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    The tags for the transit gateway.

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

    The transit gateway CIDR blocks.

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

    Enable or disable Equal Cost Multipath Protocol support.



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
# File 'ec2/cfn_transit_gateway_props.rb', line 23

def initialize(amazon_side_asn: nil, association_default_route_table_id: nil, auto_accept_shared_attachments: nil, default_route_table_association: nil, default_route_table_propagation: nil, description: nil, dns_support: nil, encryption_support: nil, multicast_support: nil, propagation_default_route_table_id: nil, security_group_referencing_support: nil, tags: nil, transit_gateway_cidr_blocks: nil, vpn_ecmp_support: nil)
  @amazon_side_asn = amazon_side_asn
  Jsii::Type.check_type(@amazon_side_asn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "amazonSideAsn") unless @amazon_side_asn.nil?
  @association_default_route_table_id = association_default_route_table_id
  Jsii::Type.check_type(@association_default_route_table_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "associationDefaultRouteTableId") unless @association_default_route_table_id.nil?
  @auto_accept_shared_attachments = auto_accept_shared_attachments
  Jsii::Type.check_type(@auto_accept_shared_attachments, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "autoAcceptSharedAttachments") unless @auto_accept_shared_attachments.nil?
  @default_route_table_association = default_route_table_association
  Jsii::Type.check_type(@default_route_table_association, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "defaultRouteTableAssociation") unless @default_route_table_association.nil?
  @default_route_table_propagation = default_route_table_propagation
  Jsii::Type.check_type(@default_route_table_propagation, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "defaultRouteTablePropagation") unless @default_route_table_propagation.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @dns_support = dns_support
  Jsii::Type.check_type(@dns_support, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dnsSupport") unless @dns_support.nil?
  @encryption_support = encryption_support
  Jsii::Type.check_type(@encryption_support, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "encryptionSupport") unless @encryption_support.nil?
  @multicast_support = multicast_support
  Jsii::Type.check_type(@multicast_support, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "multicastSupport") unless @multicast_support.nil?
  @propagation_default_route_table_id = propagation_default_route_table_id
  Jsii::Type.check_type(@propagation_default_route_table_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "propagationDefaultRouteTableId") unless @propagation_default_route_table_id.nil?
  @security_group_referencing_support = security_group_referencing_support
  Jsii::Type.check_type(@security_group_referencing_support, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "securityGroupReferencingSupport") unless @security_group_referencing_support.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @transit_gateway_cidr_blocks = transit_gateway_cidr_blocks
  Jsii::Type.check_type(@transit_gateway_cidr_blocks, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "transitGatewayCidrBlocks") unless @transit_gateway_cidr_blocks.nil?
  @vpn_ecmp_support = vpn_ecmp_support
  Jsii::Type.check_type(@vpn_ecmp_support, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "vpnEcmpSupport") unless @vpn_ecmp_support.nil?
end

Instance Attribute Details

#amazon_side_asnNumeric? (readonly)

A private Autonomous System Number (ASN) for the Amazon side of a BGP session.

The range is 64512 to 65534 for 16-bit ASNs. The default is 64512.



60
61
62
# File 'ec2/cfn_transit_gateway_props.rb', line 60

def amazon_side_asn
  @amazon_side_asn
end

#association_default_route_table_idString? (readonly)

The ID of the default association route table.



65
66
67
# File 'ec2/cfn_transit_gateway_props.rb', line 65

def association_default_route_table_id
  @association_default_route_table_id
end

#auto_accept_shared_attachmentsString? (readonly)

Enable or disable automatic acceptance of attachment requests.

Disabled by default.



72
73
74
# File 'ec2/cfn_transit_gateway_props.rb', line 72

def auto_accept_shared_attachments
  @auto_accept_shared_attachments
end

#default_route_table_associationString? (readonly)

Enable or disable automatic association with the default association route table.

Enabled by default. If DefaultRouteTableAssociation is set to enable, AWS Transit Gateway will create the default transit gateway route table.



79
80
81
# File 'ec2/cfn_transit_gateway_props.rb', line 79

def default_route_table_association
  @default_route_table_association
end

#default_route_table_propagationString? (readonly)

Enable or disable automatic propagation of routes to the default propagation route table.

Enabled by default. If DefaultRouteTablePropagation is set to enable, AWS Transit Gateway will create the default transit gateway route table.



86
87
88
# File 'ec2/cfn_transit_gateway_props.rb', line 86

def default_route_table_propagation
  @default_route_table_propagation
end

#descriptionString? (readonly)

The description of the transit gateway.



91
92
93
# File 'ec2/cfn_transit_gateway_props.rb', line 91

def description
  @description
end

#dns_supportString? (readonly)

Enable or disable DNS support.

Enabled by default.



98
99
100
# File 'ec2/cfn_transit_gateway_props.rb', line 98

def dns_support
  @dns_support
end

#encryption_supportString? (readonly)

Enable or disable encryption support.

Disabled by default.



105
106
107
# File 'ec2/cfn_transit_gateway_props.rb', line 105

def encryption_support
  @encryption_support
end

#multicast_supportString? (readonly)

Indicates whether multicast is enabled on the transit gateway.



110
111
112
# File 'ec2/cfn_transit_gateway_props.rb', line 110

def multicast_support
  @multicast_support
end

#propagation_default_route_table_idString? (readonly)

The ID of the default propagation route table.



115
116
117
# File 'ec2/cfn_transit_gateway_props.rb', line 115

def propagation_default_route_table_id
  @propagation_default_route_table_id
end

#security_group_referencing_supportString? (readonly)

Enables you to reference a security group across VPCs attached to a transit gateway (TGW).

Use this option to simplify security group management and control of instance-to-instance traffic across VPCs that are connected by transit gateway. You can also use this option to migrate from VPC peering (which was the only option that supported security group referencing) to transit gateways (which now also support security group referencing). This option is disabled by default and there are no additional costs to use this feature.

For important information about this feature, see Create a transit gateway in the AWS Transit Gateway Guide .



124
125
126
# File 'ec2/cfn_transit_gateway_props.rb', line 124

def security_group_referencing_support
  @security_group_referencing_support
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

The tags for the transit gateway.



129
130
131
# File 'ec2/cfn_transit_gateway_props.rb', line 129

def tags
  @tags
end

#transit_gateway_cidr_blocksArray<String>? (readonly)

The transit gateway CIDR blocks.



134
135
136
# File 'ec2/cfn_transit_gateway_props.rb', line 134

def transit_gateway_cidr_blocks
  @transit_gateway_cidr_blocks
end

#vpn_ecmp_supportString? (readonly)

Enable or disable Equal Cost Multipath Protocol support.

Enabled by default.



141
142
143
# File 'ec2/cfn_transit_gateway_props.rb', line 141

def vpn_ecmp_support
  @vpn_ecmp_support
end

Class Method Details

.jsii_propertiesObject



143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'ec2/cfn_transit_gateway_props.rb', line 143

def self.jsii_properties
  {
    :amazon_side_asn => "amazonSideAsn",
    :association_default_route_table_id => "associationDefaultRouteTableId",
    :auto_accept_shared_attachments => "autoAcceptSharedAttachments",
    :default_route_table_association => "defaultRouteTableAssociation",
    :default_route_table_propagation => "defaultRouteTablePropagation",
    :description => "description",
    :dns_support => "dnsSupport",
    :encryption_support => "encryptionSupport",
    :multicast_support => "multicastSupport",
    :propagation_default_route_table_id => "propagationDefaultRouteTableId",
    :security_group_referencing_support => "securityGroupReferencingSupport",
    :tags => "tags",
    :transit_gateway_cidr_blocks => "transitGatewayCidrBlocks",
    :vpn_ecmp_support => "vpnEcmpSupport",
  }
end

Instance Method Details

#to_jsiiObject



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'ec2/cfn_transit_gateway_props.rb', line 162

def to_jsii
  result = {}
  result.merge!({
    "amazonSideAsn" => @amazon_side_asn,
    "associationDefaultRouteTableId" => @association_default_route_table_id,
    "autoAcceptSharedAttachments" => @auto_accept_shared_attachments,
    "defaultRouteTableAssociation" => @default_route_table_association,
    "defaultRouteTablePropagation" => @default_route_table_propagation,
    "description" => @description,
    "dnsSupport" => @dns_support,
    "encryptionSupport" => @encryption_support,
    "multicastSupport" => @multicast_support,
    "propagationDefaultRouteTableId" => @propagation_default_route_table_id,
    "securityGroupReferencingSupport" => @security_group_referencing_support,
    "tags" => @tags,
    "transitGatewayCidrBlocks" => @transit_gateway_cidr_blocks,
    "vpnEcmpSupport" => @vpn_ecmp_support,
  })
  result.compact
end