@@ -127,10 +127,14 @@ def __init__(self, parameter_type):
127127 self .parameter_type = parameter_type
128128
129129
130+ # General CFN types
130131CFNString = CFNType ("String" )
131132CFNNumber = CFNType ("Number" )
132133CFNNumberList = CFNType ("List<Number>" )
133134CFNCommaDelimitedList = CFNType ("CommaDelimitedList" )
135+
136+ # AWS-Specific Parameter Types
137+ # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-specific-parameter-types
134138EC2AvailabilityZoneName = CFNType ("AWS::EC2::AvailabilityZone::Name" )
135139EC2ImageId = CFNType ("AWS::EC2::Image::Id" )
136140EC2InstanceId = CFNType ("AWS::EC2::Instance::Id" )
@@ -151,3 +155,51 @@ def __init__(self, parameter_type):
151155EC2VolumeIdList = CFNType ("List<AWS::EC2::Volume::Id>" )
152156EC2VPCIdList = CFNType ("List<AWS::EC2::VPC::Id>" )
153157Route53HostedZoneIdList = CFNType ("List<AWS::Route53::HostedZone::Id>" )
158+
159+ # SSM Parameter Types
160+ # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types
161+ SSMParameterName = CFNType ("AWS::SSM::Parameter::Name" )
162+ SSMParameterValueString = CFNType ("AWS::SSM::Parameter::Value<String>" )
163+ SSMParameterValueStringList = CFNType (
164+ "AWS::SSM::Parameter::Value<List<String>>" )
165+ SSMParameterValueCommaDelimitedList = CFNType (
166+ "AWS::SSM::Parameter::Value<CommaDelimitedList>" )
167+ # Each AWS-specific type here is repeated from the the list above
168+ SSMParameterValueEC2AvailabilityZoneName = CFNType (
169+ "AWS::SSM::Parameter::Value<AWS::EC2::AvailabilityZone::Name>" )
170+ SSMParameterValueEC2ImageId = CFNType (
171+ "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" )
172+ SSMParameterValueEC2InstanceId = CFNType (
173+ "AWS::SSM::Parameter::Value<AWS::EC2::Instance::Id>" )
174+ SSMParameterValueEC2KeyPairKeyName = CFNType (
175+ "AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>" )
176+ SSMParameterValueEC2SecurityGroupGroupName = CFNType (
177+ "AWS::SSM::Parameter::Value<AWS::EC2::SecurityGroup::GroupName>" )
178+ SSMParameterValueEC2SecurityGroupId = CFNType (
179+ "AWS::SSM::Parameter::Value<AWS::EC2::SecurityGroup::Id>" )
180+ SSMParameterValueEC2SubnetId = CFNType (
181+ "AWS::SSM::Parameter::Value<AWS::EC2::Subnet::Id>" )
182+ SSMParameterValueEC2VolumeId = CFNType (
183+ "AWS::SSM::Parameter::Value<AWS::EC2::Volume::Id>" )
184+ SSMParameterValueEC2VPCId = CFNType (
185+ "AWS::SSM::Parameter::Value<AWS::EC2::VPC::Id>" )
186+ SSMParameterValueRoute53HostedZoneId = CFNType (
187+ "AWS::SSM::Parameter::Value<AWS::Route53::HostedZone::Id>" )
188+ SSMParameterValueEC2AvailabilityZoneNameList = CFNType (
189+ "AWS::SSM::Parameter::Value<List<AWS::EC2::AvailabilityZone::Name>>" )
190+ SSMParameterValueEC2ImageIdList = CFNType (
191+ "AWS::SSM::Parameter::Value<List<AWS::EC2::Image::Id>>" )
192+ SSMParameterValueEC2InstanceIdList = CFNType (
193+ "AWS::SSM::Parameter::Value<List<AWS::EC2::Instance::Id>>" )
194+ SSMParameterValueEC2SecurityGroupGroupNameList = CFNType (
195+ "AWS::SSM::Parameter::Value<List<AWS::EC2::SecurityGroup::GroupName>>" )
196+ SSMParameterValueEC2SecurityGroupIdList = CFNType (
197+ "AWS::SSM::Parameter::Value<List<AWS::EC2::SecurityGroup::Id>>" )
198+ SSMParameterValueEC2SubnetIdList = CFNType (
199+ "AWS::SSM::Parameter::Value<List<AWS::EC2::Subnet::Id>>" )
200+ SSMParameterValueEC2VolumeIdList = CFNType (
201+ "AWS::SSM::Parameter::Value<List<AWS::EC2::Volume::Id>>" )
202+ SSMParameterValueEC2VPCIdList = CFNType (
203+ "AWS::SSM::Parameter::Value<List<AWS::EC2::VPC::Id>>" )
204+ SSMParameterValueRoute53HostedZoneIdList = CFNType (
205+ "AWS::SSM::Parameter::Value<List<AWS::Route53::HostedZone::Id>>" )
0 commit comments