UNPKG

condensation

Version:

Package, reuse and share particles for CloudFormation projects

144 lines (143 loc) 3.47 kB
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "VpcCidr": { "Description": "The VPC Network Range", "Type": "String", "MinLength": "9", "MaxLength": "18", "Default": "10.0.0.0/16", "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." }, "SubnetCidr": { "Description": "The Subnet Network Range", "Type": "String", "MinLength": "9", "MaxLength": "18", "Default": "10.0.0.0/24", "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." }, "SubnetAvailabilityZone": { "Description": "Availability Zone", "Type": "String", "Default": "auto", "ConstraintDescription": "Must be a valid AZ for the region or 'auto'." }, "NameTag": { "Description": "Will set the name tag on all resources created", "Type": "String" } }, "Conditions": { "SubnetAutoSelection": { "Fn::Equals": [ { "Ref": "SubnetAvailabilityZone" }, "auto" ] } }, "Resources": { "Vpc": { "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { "VpcCidr": { "Ref": "VpcCidr" }, "CreateVpcSecurityGroup": "true", "CreateInternetGateway": "true", "OpenVpcCommunication": "true", "NameTag": { "Ref": "NameTag" } }, "TemplateURL": "https://s3.amazonaws.com/./particles/cftemplates/vpc.template.json" } }, "Subnet": { "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { "SubnetCidr": { "Ref": "SubnetCidr" }, "AvailabilityZone": { "Fn::If": [ "SubnetAutoSelection", { "Fn::Select": [ "0", { "Fn::GetAZs": "" } ] }, { "Ref": "SubnetAvailabilityZone" } ] }, "VpcId": { "Fn::GetAtt": [ "Vpc", "Outputs.VpcId" ] }, "RouteTableId": { "Fn::GetAtt": [ "Vpc", "Outputs.RouteTableId" ] }, "NameTag": { "Ref": "NameTag" } }, "TemplateURL": "https://s3.amazonaws.com/./particles/cftemplates/subnet.template.json" }, "DependsOn": "Vpc" } }, "Outputs": { "SubnetId": { "Value": { "Fn::GetAtt": [ "Subnet", "Outputs.SubnetId" ] }, "Description": "Subnet" }, "VpcId": { "Value": { "Fn::GetAtt": [ "Vpc", "Outputs.VpcId" ] }, "Description": "VPC ID" }, "SubnetAZ": { "Value": { "Fn::If": [ "SubnetAutoSelection", { "Fn::Select": [ "0", { "Fn::GetAZs": "" } ] }, { "Ref": "SubnetAvailabilityZone" } ] } } } }