ALIYUN::ECS::NatGateway
ALIYUN::ECS::NatGateway is used to create a NAT gateway in a virtual private cloud (VPC).
Syntax
{
"Type": "ALIYUN::ECS::NatGateway",
"Properties": {
"DeletionProtection": Boolean,
"VpcId": String,
"Description": String,
"NatGatewayName": String,
"NatType": String,
"Duration": Number,
"AutoPay": Boolean,
"InstanceChargeType": String,
"PricingCycle": String,
"VSwitchId": String,
"DeletionForce": Boolean,
"Spec": String,
"Tags": List,
"EipBindMode": String
}
}Properties
Property | Type | Required | Editable | Description | Constraint |
VpcId | String | Yes | No | The ID of the VPC in which you want to create the NAT gateway. | None. |
VSwitchId | String | No | No | The ID of the vSwitch in the VPC. | None. |
Description | String | No | No | The description of the NAT gateway. | The description must be 2 to 256 characters in length. |
NatGatewayName | String | No | No | The name of the NAT gateway. | The name must be 2 to 128 characters in length and can contain letters, digits, underscores (_), periods (.), and hyphens (-). It must start with a letter. |
NatType | String | No | No | The type of the NAT gateway. | Valid values:
|
Duration | Number | No | No | The subscription duration. | Valid values:
Note This property must be specified when InstanceChargeType is set to PrePaid. |
AutoPay | Boolean | No | No | Specifies whether to enable automatic payment. | Valid values:
Note This property must be specified when InstanceChargeType is set to PrePaid. |
InstanceChargeType | String | No | No | The billing method. | Valid values:
|
PricingCycle | String | No | No | The unit of the subscription duration. | Valid values:
Note This property must be specified when InstanceChargeType is set to PrePaid. |
Spec | String | No | No | The size of the Internet NAT gateway. | Valid values:
|
DeletionProtection | Boolean | No | No | Specifies whether to enable deletion protection. | Valid values:
|
DeletionForce | Boolean | No | No | Specifies whether to forcefully delete SNAT and DNAT entries and disassociate the elastic IP address (EIP) from the NAT gateway. | Valid values:
|
Tags | List | No | No | The tags. | You can add up to 20 tags. For more information, see Tags properties. |
EipBindMode | String | No | No | The mode in which you want to associate the NAT gateway with an EIP. | Valid values:
|
Tags syntax
"Tags": [
{
"Key": String,
"Value": String
}
] Tags properties
Property | Type | Required | Editable | Description | Constraint |
Key | String | Yes | No | The key of the tag. | The key must be 1 to 128 characters in length and cannot contain |
Value | String | No | No | The value of the tag. | The value can be up to 128 characters in length and cannot contain |
Return values
Fn::GetAtt
ForwardTableId: the ID of the port forwarding table.
SNatTableId: the ID of the SNAT table.
NatGatewayId: the unique ID of the NAT gateway.
BandwidthPackageIps: the IP addresses of the Internet Shared Bandwidth instances.
BandwidthPackageIds: the IDs of the Internet Shared Bandwidth instances.
Examples
JSON format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"Description": {
"Type": "String",
"Description": "Description of the NAT gateway, [2, 256] characters. Do not fill or empty, the default is empty."
},
"NatGatewayName": {
"Type": "String",
"Description": "Display name of the NAT gateway, [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'"
},
"InstanceChargeType": {
"Type": "String",
"Description": "The billing method. The default value is PostPaid (which means pay-as-you-go).",
"AllowedValues": [
"PrePaid",
"PostPaid"
],
"Default": "PostPaid"
},
"PricingCycle": {
"Type": "String",
"Description": "Price cycle of the resource. This property has no default value.",
"AllowedValues": [
"Month",
"Year"
]
},
"VSwitchId": {
"Type": "String",
"Description": "The VSwitch id to create NAT gateway."
},
"Duration": {
"Type": "Number",
"Description": "The subscription duration. While choose by pay by month, it could be from 1 to 9. While choose pay by year, it could be from 1 to 3.",
"MinValue": 1,
"MaxValue": 9,
"Default": 1
},
"DeletionProtection": {
"Type": "Boolean",
"Description": "Whether to enable deletion protection.\nDefault to False.",
"AllowedValues": [
"True",
"true",
"False",
"false"
],
"Default": false
},
"AutoPay": {
"Type": "Boolean",
"Description": "Specifies whether to enable automatic payment. Default is false.",
"AllowedValues": [
"True",
"true",
"False",
"false"
],
"Default": false
},
"NatType": {
"Type": "String",
"Description": "The type of the NAT gateway. Valid values:\n- Normal: standard NAT gateway.\n- Enhanced: enhanced NAT gateway.",
"AllowedValues": [
"Normal",
"Enhanced"
]
},
"DeletionForce": {
"Type": "Boolean",
"Description": "Whether force delete the relative snat and dnat entries in the net gateway and unbind eips. Default value is false.",
"AllowedValues": [
"True",
"true",
"False",
"false"
],
"Default": false
},
"VpcId": {
"Type": "String",
"Description": "The VPC id to create NAT gateway."
},
"Spec": {
"Type": "String",
"Description": "NAT gateway specification. Now support 'Small|Middle|Large|XLarge.1'"
},
"Tags": {
"Type": "Json",
"Description": "Tags to attach to natgateway. Max support 20 tags to add during create natgateway. Each tag with two properties Key and Value, and Key is required.",
"MaxLength": 20
}
},
"Resources": {
"NatGateway": {
"Type": "ALIYUN::ECS::NatGateway",
"Properties": {
"Description": {
"Ref": "Description"
},
"NatGatewayName": {
"Ref": "NatGatewayName"
},
"InstanceChargeType": {
"Ref": "InstanceChargeType"
},
"PricingCycle": {
"Ref": "PricingCycle"
},
"VSwitchId": {
"Ref": "VSwitchId"
},
"Duration": {
"Ref": "Duration"
},
"DeletionProtection": {
"Ref": "DeletionProtection"
},
"AutoPay": {
"Ref": "AutoPay"
},
"NatType": {
"Ref": "NatType"
},
"DeletionForce": {
"Ref": "DeletionForce"
},
"VpcId": {
"Ref": "VpcId"
},
"Spec": {
"Ref": "Spec"
},
"Tags": {
"Ref": "Tags"
}
}
}
},
"Outputs": {
"BandwidthPackageIds": {
"Description": "The bandwidth package ids of created NAT gateway.",
"Value": {
"Fn::GetAtt": [
"NatGateway",
"BandwidthPackageIds"
]
}
},
"NatGatewayId": {
"Description": "The Id of created NAT gateway.",
"Value": {
"Fn::GetAtt": [
"NatGateway",
"NatGatewayId"
]
}
},
"SNatTableId": {
"Description": "The SNAT table id.",
"Value": {
"Fn::GetAtt": [
"NatGateway",
"SNatTableId"
]
}
},
"BandwidthPackageIps": {
"Description": "The allocated public IPs.",
"Value": {
"Fn::GetAtt": [
"NatGateway",
"BandwidthPackageIps"
]
}
},
"ForwardTableId": {
"Description": "The forward table id.",
"Value": {
"Fn::GetAtt": [
"NatGateway",
"ForwardTableId"
]
}
}
}
}YAML format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
Description:
Type: String
Description: >-
Description of the NAT gateway, [2, 256] characters. Do not fill or empty,
the default is empty.
NatGatewayName:
Type: String
Description: >-
Display name of the NAT gateway, [2, 128] English or Chinese characters,
must start with a letter or Chinese in size, can contain numbers, '_' or
'.', '-'
InstanceChargeType:
Type: String
Description: >-
The billing method. The default value is PostPaid (which means
pay-as-you-go).
AllowedValues:
- PrePaid
- PostPaid
Default: PostPaid
PricingCycle:
Type: String
Description: Price cycle of the resource. This property has no default value.
AllowedValues:
- Month
- Year
VSwitchId:
Type: String
Description: The VSwitch id to create NAT gateway.
Duration:
Type: Number
Description: >-
The subscription duration. While choose by pay by month, it could be from
1 to 9. While choose pay by year, it could be from 1 to 3.
MinValue: 1
MaxValue: 9
Default: 1
DeletionProtection:
Type: Boolean
Description: |-
Whether to enable deletion protection.
Default to False.
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Default: false
AutoPay:
Type: Boolean
Description: Specifies whether to enable automatic payment. Default is false.
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Default: false
NatType:
Type: String
Description: |-
The type of the NAT gateway. Valid values:
- Normal: standard NAT gateway.
- Enhanced: enhanced NAT gateway.
AllowedValues:
- Normal
- Enhanced
DeletionForce:
Type: Boolean
Description: >-
Whether force delete the relative snat and dnat entries in the net gateway
and unbind eips. Default value is false.
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Default: false
VpcId:
Type: String
Description: The VPC id to create NAT gateway.
Spec:
Type: String
Description: NAT gateway specification. Now support 'Small|Middle|Large|XLarge.1'
Tags:
Type: Json
Description: >-
Tags to attach to natgateway. Max support 20 tags to add during create
natgateway. Each tag with two properties Key and Value, and Key is
required.
MaxLength: 20
Resources:
NatGateway:
Type: 'ALIYUN::ECS::NatGateway'
Properties:
Description:
Ref: Description
NatGatewayName:
Ref: NatGatewayName
InstanceChargeType:
Ref: InstanceChargeType
PricingCycle:
Ref: PricingCycle
VSwitchId:
Ref: VSwitchId
Duration:
Ref: Duration
DeletionProtection:
Ref: DeletionProtection
AutoPay:
Ref: AutoPay
NatType:
Ref: NatType
DeletionForce:
Ref: DeletionForce
VpcId:
Ref: VpcId
Spec:
Ref: Spec
Tags:
Ref: Tags
Outputs:
BandwidthPackageIds:
Description: The bandwidth package ids of created NAT gateway.
Value:
'Fn::GetAtt':
- NatGateway
- BandwidthPackageIds
NatGatewayId:
Description: The Id of created NAT gateway.
Value:
'Fn::GetAtt':
- NatGateway
- NatGatewayId
SNatTableId:
Description: The SNAT table id.
Value:
'Fn::GetAtt':
- NatGateway
- SNatTableId
BandwidthPackageIps:
Description: The allocated public IPs.
Value:
'Fn::GetAtt':
- NatGateway
- BandwidthPackageIps
ForwardTableId:
Description: The forward table id.
Value:
'Fn::GetAtt':
- NatGateway
- ForwardTableId