Class: AWSCDK::EC2::PublicSubnet
- Inherits:
-
Subnet
- Object
- Subnet
- AWSCDK::EC2::PublicSubnet
- Includes:
- IPublicSubnet
- Defined in:
- ec2/public_subnet.rb
Overview
Represents a public VPC subnet resource.
Class Method Summary collapse
- .from_public_subnet_attributes(scope, id, attrs) ⇒ AWSCDK::EC2::IPublicSubnet
- .jsii_overridable_methods ⇒ Object
-
.PROPERTY_INJECTION_ID ⇒ String
Uniquely identifies this class.
Instance Method Summary collapse
-
#add_default_internet_route(gateway_id, gateway_attachment) ⇒ void
Create a default route that points to a passed IGW, with a dependency on the IGW's attachment to the VPC.
-
#add_default_nat_route(nat_gateway_id) ⇒ void
Adds an entry to this subnets route table that points to the passed NATGatewayId.
-
#add_ipv6_default_egress_only_internet_route(gateway_id) ⇒ void
Create a default IPv6 route that points to a passed EIGW.
-
#add_ipv6_default_internet_route(gateway_id) ⇒ void
Create a default IPv6 route that points to a passed IGW.
-
#add_ipv6_nat64_route(nat_gateway_id) ⇒ void
Adds an entry to this subnets route table that points to the passed NATGatewayId.
-
#add_nat_gateway(eip_allocation_id = nil) ⇒ AWSCDK::EC2::CfnNatGateway
Creates a new managed NAT gateway attached to this public subnet.
-
#add_route(id, options) ⇒ void
Adds an entry to this subnets route table.
-
#apply_cross_stack_reference_strength(strength) ⇒ void
Override the cross-stack reference strength for this resource.
-
#apply_removal_policy(policy) ⇒ void
Apply the given removal policy to this resource.
-
#associate_network_acl(id, network_acl) ⇒ void
Associate a Network ACL with this subnet.
-
#availability_zone ⇒ String
The Availability Zone the subnet is located in.
-
#dependency_elements ⇒ Array<Constructs::IDependable>
Parts of this VPC subnet.
-
#env ⇒ AWSCDK::Interfaces::ResourceEnvironment
The environment this resource belongs to.
- #generate_physical_name ⇒ String
-
#get_resource_arn_attribute(arn_attr, arn_components) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g.
bucket.bucketArn). -
#get_resource_name_attribute(name_attr) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g.
bucket.bucketName). -
#initialize(scope, id, props) ⇒ PublicSubnet
constructor
A new instance of PublicSubnet.
-
#internet_connectivity_established ⇒ Constructs::IDependable
Dependable that can be depended upon to force internet connectivity established on the VPC.
-
#ipv4_cidr_block ⇒ String
The IPv4 CIDR block for this subnet.
-
#network_acl ⇒ AWSCDK::EC2::INetworkAcl
Network ACL associated with this Subnet.
-
#node ⇒ Constructs::Node
The tree node.
-
#physical_name ⇒ String
Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
-
#route_table ⇒ AWSCDK::EC2::IRouteTable
The routeTableId attached to this subnet.
-
#stack ⇒ AWSCDK::Stack
The stack in which this resource is defined.
- #subnet_availability_zone ⇒ String
-
#subnet_id ⇒ String
The subnetId for this particular subnet.
- #subnet_ipv6_cidr_blocks ⇒ Array<String>
- #subnet_network_acl_association_id ⇒ String
-
#subnet_outpost_arn ⇒ String
The Amazon Resource Name (ARN) of the Outpost for this subnet (if one exists).
-
#subnet_ref ⇒ AWSCDK::Interfaces::AWSEC2::SubnetReference
A reference to a Subnet resource.
- #subnet_vpc_id ⇒ String
-
#to_string ⇒ String
Returns a string representation of this construct.
-
#with(*mixins) ⇒ Constructs::IConstruct
Applies one or more mixins to this construct.
Constructor Details
#initialize(scope, id, props) ⇒ PublicSubnet
Returns a new instance of PublicSubnet.
12 13 14 15 16 17 18 |
# File 'ec2/public_subnet.rb', line 12 def initialize(scope, id, props) props = props.is_a?(Hash) ? ::AWSCDK::EC2::PublicSubnetProps.new(**props.transform_keys(&:to_sym)) : props Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope") Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLlB1YmxpY1N1Ym5ldFByb3BzIn0=")), "props") Jsii::Object.instance_method(:initialize).bind(self).call(scope, id, props) end |
Class Method Details
.from_public_subnet_attributes(scope, id, attrs) ⇒ AWSCDK::EC2::IPublicSubnet
61 62 63 64 65 66 67 |
# File 'ec2/public_subnet.rb', line 61 def self.from_public_subnet_attributes(scope, id, attrs) Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope") Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") attrs = attrs.is_a?(Hash) ? ::AWSCDK::EC2::PublicSubnetAttributes.new(**attrs.transform_keys(&:to_sym)) : attrs Jsii::Type.check_type(attrs, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLlB1YmxpY1N1Ym5ldEF0dHJpYnV0ZXMifQ==")), "attrs") Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_ec2.PublicSubnet", "fromPublicSubnetAttributes", [scope, id, attrs]) end |
.jsii_overridable_methods ⇒ Object
20 21 22 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 53 54 55 |
# File 'ec2/public_subnet.rb', line 20 def self.jsii_overridable_methods { :node => { kind: :property, name: "node", is_optional: false }, :env => { kind: :property, name: "env", is_optional: false }, :physical_name => { kind: :property, name: "physicalName", is_optional: false }, :stack => { kind: :property, name: "stack", is_optional: false }, :availability_zone => { kind: :property, name: "availabilityZone", is_optional: false }, :dependency_elements => { kind: :property, name: "dependencyElements", is_optional: false }, :internet_connectivity_established => { kind: :property, name: "internetConnectivityEstablished", is_optional: false }, :ipv4_cidr_block => { kind: :property, name: "ipv4CidrBlock", is_optional: false }, :network_acl => { kind: :property, name: "networkAcl", is_optional: false }, :route_table => { kind: :property, name: "routeTable", is_optional: false }, :subnet_availability_zone => { kind: :property, name: "subnetAvailabilityZone", is_optional: false }, :subnet_id => { kind: :property, name: "subnetId", is_optional: false }, :subnet_ipv6_cidr_blocks => { kind: :property, name: "subnetIpv6CidrBlocks", is_optional: false }, :subnet_network_acl_association_id => { kind: :property, name: "subnetNetworkAclAssociationId", is_optional: false }, :subnet_outpost_arn => { kind: :property, name: "subnetOutpostArn", is_optional: false }, :subnet_ref => { kind: :property, name: "subnetRef", is_optional: false }, :subnet_vpc_id => { kind: :property, name: "subnetVpcId", is_optional: false }, :to_string => { kind: :method, name: "toString", is_optional: false }, :with => { kind: :method, name: "with", is_optional: false }, :apply_cross_stack_reference_strength => { kind: :method, name: "applyCrossStackReferenceStrength", is_optional: false }, :apply_removal_policy => { kind: :method, name: "applyRemovalPolicy", is_optional: false }, :generate_physical_name => { kind: :method, name: "generatePhysicalName", is_optional: false }, :get_resource_arn_attribute => { kind: :method, name: "getResourceArnAttribute", is_optional: false }, :get_resource_name_attribute => { kind: :method, name: "getResourceNameAttribute", is_optional: false }, :add_default_internet_route => { kind: :method, name: "addDefaultInternetRoute", is_optional: false }, :add_default_nat_route => { kind: :method, name: "addDefaultNatRoute", is_optional: false }, :add_ipv6_default_egress_only_internet_route => { kind: :method, name: "addIpv6DefaultEgressOnlyInternetRoute", is_optional: false }, :add_ipv6_default_internet_route => { kind: :method, name: "addIpv6DefaultInternetRoute", is_optional: false }, :add_ipv6_nat64_route => { kind: :method, name: "addIpv6Nat64Route", is_optional: false }, :add_route => { kind: :method, name: "addRoute", is_optional: false }, :associate_network_acl => { kind: :method, name: "associateNetworkAcl", is_optional: false }, :add_nat_gateway => { kind: :method, name: "addNatGateway", is_optional: false }, } end |
.PROPERTY_INJECTION_ID ⇒ String
Uniquely identifies this class.
115 116 117 |
# File 'ec2/public_subnet.rb', line 115 def self.PROPERTY_INJECTION_ID() Jsii::Kernel.instance.get_static("aws-cdk-lib.aws_ec2.PublicSubnet", "PROPERTY_INJECTION_ID") end |
Instance Method Details
#add_default_internet_route(gateway_id, gateway_attachment) ⇒ void
This method returns an undefined value.
Create a default route that points to a passed IGW, with a dependency on the IGW's attachment to the VPC.
304 305 306 307 308 |
# File 'ec2/public_subnet.rb', line 304 def add_default_internet_route(gateway_id, ) Jsii::Type.check_type(gateway_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "gatewayId") Jsii::Type.check_type(, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklEZXBlbmRhYmxlIn0=")), "gatewayAttachment") jsii_call_method("addDefaultInternetRoute", [gateway_id, ]) end |
#add_default_nat_route(nat_gateway_id) ⇒ void
This method returns an undefined value.
Adds an entry to this subnets route table that points to the passed NATGatewayId.
314 315 316 317 |
# File 'ec2/public_subnet.rb', line 314 def add_default_nat_route(nat_gateway_id) Jsii::Type.check_type(nat_gateway_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "natGatewayId") jsii_call_method("addDefaultNatRoute", [nat_gateway_id]) end |
#add_ipv6_default_egress_only_internet_route(gateway_id) ⇒ void
This method returns an undefined value.
Create a default IPv6 route that points to a passed EIGW.
323 324 325 326 |
# File 'ec2/public_subnet.rb', line 323 def add_ipv6_default_egress_only_internet_route(gateway_id) Jsii::Type.check_type(gateway_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "gatewayId") jsii_call_method("addIpv6DefaultEgressOnlyInternetRoute", [gateway_id]) end |
#add_ipv6_default_internet_route(gateway_id) ⇒ void
This method returns an undefined value.
Create a default IPv6 route that points to a passed IGW.
332 333 334 335 |
# File 'ec2/public_subnet.rb', line 332 def add_ipv6_default_internet_route(gateway_id) Jsii::Type.check_type(gateway_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "gatewayId") jsii_call_method("addIpv6DefaultInternetRoute", [gateway_id]) end |
#add_ipv6_nat64_route(nat_gateway_id) ⇒ void
This method returns an undefined value.
Adds an entry to this subnets route table that points to the passed NATGatewayId.
Uses the known 64:ff9b::/96 prefix.
343 344 345 346 |
# File 'ec2/public_subnet.rb', line 343 def add_ipv6_nat64_route(nat_gateway_id) Jsii::Type.check_type(nat_gateway_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "natGatewayId") jsii_call_method("addIpv6Nat64Route", [nat_gateway_id]) end |
#add_nat_gateway(eip_allocation_id = nil) ⇒ AWSCDK::EC2::CfnNatGateway
Creates a new managed NAT gateway attached to this public subnet.
Also adds the EIP for the managed NAT.
377 378 379 380 |
# File 'ec2/public_subnet.rb', line 377 def add_nat_gateway(eip_allocation_id = nil) Jsii::Type.check_type(eip_allocation_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "eipAllocationId") unless eip_allocation_id.nil? jsii_call_method("addNatGateway", [eip_allocation_id]) end |
#add_route(id, options) ⇒ void
This method returns an undefined value.
Adds an entry to this subnets route table.
353 354 355 356 357 358 |
# File 'ec2/public_subnet.rb', line 353 def add_route(id, ) Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") = .is_a?(Hash) ? ::AWSCDK::EC2::AddRouteOptions.new(**.transform_keys(&:to_sym)) : Jsii::Type.check_type(, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkFkZFJvdXRlT3B0aW9ucyJ9")), "options") jsii_call_method("addRoute", [id, ]) end |
#apply_cross_stack_reference_strength(strength) ⇒ void
This method returns an undefined value.
Override the cross-stack reference strength for this resource.
When set, any cross-stack reference to this resource will use the specified
mechanism instead of the global default determined by the
@aws-cdk/core:defaultCrossStackReferences context key. This is useful for
selectively weakening specific references to avoid the "deadly embrace" problem
without changing the app-wide default.
242 243 244 245 |
# File 'ec2/public_subnet.rb', line 242 def apply_cross_stack_reference_strength(strength) Jsii::Type.check_type(strength, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZWZlcmVuY2VTdHJlbmd0aCJ9")), "strength") jsii_call_method("applyCrossStackReferenceStrength", [strength]) end |
#apply_removal_policy(policy) ⇒ void
This method returns an undefined value.
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN).
259 260 261 262 |
# File 'ec2/public_subnet.rb', line 259 def apply_removal_policy(policy) Jsii::Type.check_type(policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5In0=")), "policy") jsii_call_method("applyRemovalPolicy", [policy]) end |
#associate_network_acl(id, network_acl) ⇒ void
This method returns an undefined value.
Associate a Network ACL with this subnet.
365 366 367 368 369 |
# File 'ec2/public_subnet.rb', line 365 def associate_network_acl(id, network_acl) Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") Jsii::Type.check_type(network_acl, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLklOZXR3b3JrQWNsIn0=")), "networkAcl") jsii_call_method("associateNetworkAcl", [id, network_acl]) end |
#availability_zone ⇒ String
The Availability Zone the subnet is located in.
122 123 124 |
# File 'ec2/public_subnet.rb', line 122 def availability_zone() jsii_get_property("availabilityZone") end |
#dependency_elements ⇒ Array<Constructs::IDependable>
Parts of this VPC subnet.
129 130 131 |
# File 'ec2/public_subnet.rb', line 129 def dependency_elements() jsii_get_property("dependencyElements") end |
#env ⇒ AWSCDK::Interfaces::ResourceEnvironment
The environment this resource belongs to.
For resources that are created and managed in a Stack (those created by
creating new class instances like new Role(), new Bucket(), etc.), this
is always the same as the environment of the stack they belong to.
For referenced resources (those obtained from referencing methods like
Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they might be
different than the stack they were imported into.
87 88 89 |
# File 'ec2/public_subnet.rb', line 87 def env() jsii_get_property("env") end |
#generate_physical_name ⇒ String
265 266 267 |
# File 'ec2/public_subnet.rb', line 265 def generate_physical_name() jsii_call_method("generatePhysicalName", []) end |
#get_resource_arn_attribute(arn_attr, arn_components) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. bucket.bucketArn).
Normally, this token will resolve to arn_attr, but if the resource is
referenced across environments, arn_components will be used to synthesize
a concrete ARN with the resource's physical name. Make sure to reference
this.physicalName in arn_components.
279 280 281 282 283 284 |
# File 'ec2/public_subnet.rb', line 279 def get_resource_arn_attribute(arn_attr, arn_components) Jsii::Type.check_type(arn_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "arnAttr") arn_components = arn_components.is_a?(Hash) ? ::AWSCDK::ARNComponents.new(**arn_components.transform_keys(&:to_sym)) : arn_components Jsii::Type.check_type(arn_components, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5Bcm5Db21wb25lbnRzIn0=")), "arnComponents") jsii_call_method("getResourceArnAttribute", [arn_attr, arn_components]) end |
#get_resource_name_attribute(name_attr) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. bucket.bucketName).
Normally, this token will resolve to name_attr, but if the resource is
referenced across environments, it will be resolved to this.physicalName,
which will be a concrete name.
294 295 296 297 |
# File 'ec2/public_subnet.rb', line 294 def get_resource_name_attribute(name_attr) Jsii::Type.check_type(name_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nameAttr") jsii_call_method("getResourceNameAttribute", [name_attr]) end |
#internet_connectivity_established ⇒ Constructs::IDependable
Dependable that can be depended upon to force internet connectivity established on the VPC.
136 137 138 |
# File 'ec2/public_subnet.rb', line 136 def internet_connectivity_established() jsii_get_property("internetConnectivityEstablished") end |
#ipv4_cidr_block ⇒ String
The IPv4 CIDR block for this subnet.
143 144 145 |
# File 'ec2/public_subnet.rb', line 143 def ipv4_cidr_block() jsii_get_property("ipv4CidrBlock") end |
#network_acl ⇒ AWSCDK::EC2::INetworkAcl
Network ACL associated with this Subnet.
Upon creation, this is the default ACL which allows all traffic, except explicit DENY entries that you add.
You can replace it with a custom ACL which denies all traffic except
the explicit ALLOW entries that you add by creating a NetworkAcl
object and calling associate_network_acl().
157 158 159 |
# File 'ec2/public_subnet.rb', line 157 def network_acl() jsii_get_property("networkAcl") end |
#node ⇒ Constructs::Node
The tree node.
72 73 74 |
# File 'ec2/public_subnet.rb', line 72 def node() jsii_get_property("node") end |
#physical_name ⇒ String
Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
This value will resolve to one of the following:
- a concrete value (e.g.
"my-awesome-bucket") undefined, when a name should be generated by CloudFormation- a concrete name generated automatically during synthesis, in cross-environment scenarios.
101 102 103 |
# File 'ec2/public_subnet.rb', line 101 def physical_name() jsii_get_property("physicalName") end |
#route_table ⇒ AWSCDK::EC2::IRouteTable
The routeTableId attached to this subnet.
164 165 166 |
# File 'ec2/public_subnet.rb', line 164 def route_table() jsii_get_property("routeTable") end |
#stack ⇒ AWSCDK::Stack
The stack in which this resource is defined.
108 109 110 |
# File 'ec2/public_subnet.rb', line 108 def stack() jsii_get_property("stack") end |
#subnet_availability_zone ⇒ String
169 170 171 |
# File 'ec2/public_subnet.rb', line 169 def subnet_availability_zone() jsii_get_property("subnetAvailabilityZone") end |
#subnet_id ⇒ String
The subnetId for this particular subnet.
176 177 178 |
# File 'ec2/public_subnet.rb', line 176 def subnet_id() jsii_get_property("subnetId") end |
#subnet_ipv6_cidr_blocks ⇒ Array<String>
181 182 183 |
# File 'ec2/public_subnet.rb', line 181 def subnet_ipv6_cidr_blocks() jsii_get_property("subnetIpv6CidrBlocks") end |
#subnet_network_acl_association_id ⇒ String
186 187 188 |
# File 'ec2/public_subnet.rb', line 186 def subnet_network_acl_association_id() jsii_get_property("subnetNetworkAclAssociationId") end |
#subnet_outpost_arn ⇒ String
The Amazon Resource Name (ARN) of the Outpost for this subnet (if one exists).
193 194 195 |
# File 'ec2/public_subnet.rb', line 193 def subnet_outpost_arn() jsii_get_property("subnetOutpostArn") end |
#subnet_ref ⇒ AWSCDK::Interfaces::AWSEC2::SubnetReference
A reference to a Subnet resource.
200 201 202 |
# File 'ec2/public_subnet.rb', line 200 def subnet_ref() jsii_get_property("subnetRef") end |
#subnet_vpc_id ⇒ String
205 206 207 |
# File 'ec2/public_subnet.rb', line 205 def subnet_vpc_id() jsii_get_property("subnetVpcId") end |
#to_string ⇒ String
Returns a string representation of this construct.
212 213 214 |
# File 'ec2/public_subnet.rb', line 212 def to_string() jsii_call_method("toString", []) end |
#with(*mixins) ⇒ Constructs::IConstruct
Applies one or more mixins to this construct.
Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple with() calls if subsequent mixins should apply to added
constructs.
225 226 227 228 229 230 |
# File 'ec2/public_subnet.rb', line 225 def with(*mixins) mixins.each_with_index do |item, index| Jsii::Type.check_type(item, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklNaXhpbiJ9")), "mixins[#{index}]") end jsii_call_method("with", [*mixins]) end |