templates/ammos-cubs.main.template.yaml [1:292]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
AWSTemplateFormatVersion: "2010-09-09"
Description: (qs-1s6abjf8q)
Metadata:
  QuickStartDocumentation:
    EntrypointName: "Parameters for deploying AMMOS SmallSat Toolkit"
  'AWS::CloudFormation::Interface':
    ParameterGroups:
      - Label:
          default: AIT configuration
        Parameters:
          - ProjectName
          - FQDN
          - SSLCertificateArn
          - HostedZoneID
          - AITInstanceType
          - KeyPairName
          - CloudWatchLogsRetentionPeriod
      - Label:
          default: IAM configuration
        Parameters:
          - RolePath
          - PermissionsBoundaryArn
          - DeployIam
      - Label:
          default: Network configuration
        Parameters:
          - AvailabilityZones
          - VPCCIDR
          - PrivateSubnet1CIDR
          - PrivateSubnet2CIDR
          - PrivateSubnet3CIDR
          - PublicSubnet1CIDR
          - PublicSubnet2CIDR
          - PublicSubnet3CIDR
          - RemoteAccessCIDR
          - VpcId
          - PublicSubnet1ID
          - PublicSubnet2ID
          - PrivateSubnet1AID
          - PrivateSubnet2AID
          - PrivateSubnet3AID
          - AccessSgID
      - Label:
          default: AWS Quick Start configuration
        Parameters:
          - QSS3BucketName
          - QSS3KeyPrefix
          - QSS3BucketRegion
    ParameterLabels:
      AITInstanceType:
        default: AIT instance type
      AvailabilityZones:
        default: Availability Zones
      CloudWatchLogsRetentionPeriod:
        default: CloudWatch Logs retention period
      FQDN:
        default: Fully qualified domain name
      HostedZoneID:
        default: Hosted-zone ID
      KeyPairName:
        default: Key-pair name
      PermissionsBoundaryArn:
        default: Permissions boundary ARN
      ProjectName:
        default: Project name
      RemoteAccessCIDR:
        default: Remote access CIDR
      RolePath:
        default: Role path
      DeployIam:
        default: Flag to control IAM Resource deployment
      SSLCertificateArn:
        default: SSL certificate ARN
      VPCCIDR:
        default: VPC CIDR
      PrivateSubnet1CIDR:
        default: Private subnet 1 CIDR
      PrivateSubnet2CIDR:
        default: Private subnet 2 CIDR
      PrivateSubnet3CIDR:
        default: Private subnet 3 CIDR
      PublicSubnet1CIDR:
        default: Public subnet 1 CIDR
      PublicSubnet2CIDR:
        default: Public subnet 2 CIDR
      PublicSubnet3CIDR:
        default: Public subnet 3 CIDR
      QSS3BucketName:
        default: Quick Start S3 bucket name
      QSS3KeyPrefix:
        default: Quick Start S3 key prefix
      QSS3BucketRegion:
        default: Quick Start S3 bucket Region
      VpcId:
        default: ID for VPC in an existing VPC
      PublicSubnet1ID:
        default: ID for public subnet 1 in an existing VPC
      PublicSubnet2ID:
        default: ID for public subnet 2 in an existing VPC
      PrivateSubnet1AID:
        default: ID for private subnet 1A in an existing VPC
      PrivateSubnet2AID:
        default: ID for private subnet 2A in an existing VPC
      PrivateSubnet3AID:
        default: ID for private subnet 3A in an existing VPC
      AccessSgID:
        default: ID of preconfigured security group in an existing VPC
Parameters:
  AITInstanceType:
    Description: Instance type to be used for AIT. See deployment
      guide for recommendations.
    Type: String
    Default: m5.large
  CloudWatchLogsRetentionPeriod:
    Description: Number of days to retain log events in CloudWatch Logs log groups. Increasing this number results in higher log-storage costs.
    Type: Number
    Default: 30
  KeyPairName:
    Description: Name of the key pair that you will use to connect securely to your instance after it launches.
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: Must be the name of an existing key pair.
  VPCCIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.0.0/16
    Description: CIDR block for the VPC.
    Type: String
  PublicSubnet1CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.32.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 1.
    Type: String
  PublicSubnet2CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.64.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 2.
    Type: String
  PublicSubnet3CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.70.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 3.
    Type: String
  PrivateSubnet1CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.128.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 1.
    Type: String
  PrivateSubnet2CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.192.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 2.
    Type: String
  PrivateSubnet3CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.200.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 3.
    Type: String
  AvailabilityZones:
    Description: Availability Zones to use for the subnets in the VPC. This deployment uses three
      Availability Zones, and the logical order of your
      selections is preserved.
    Type: List<AWS::EC2::AvailabilityZone::Name>
  QSS3BucketName:
    AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$
    ConstraintDescription: Quick Start bucket name can include numbers, lowercase
      letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen
      (-).
    Default: aws-quickstart
    Description: Name of the S3 bucket for your copy of the Quick Start assets.
      Keep the default name unless you are customizing the template.
      Changing the name updates code references to point to a new Quick
      Start location. This name can include numbers, lowercase letters,
      uppercase letters, and hyphens, but do not start or end with a hyphen (-).
      See https://aws-quickstart.github.io/option1.html.
    Type: String
  QSS3BucketRegion:
    Default: 'us-east-1'
    Description: 'AWS Region where the Quick Start S3 bucket (QSS3BucketName) is
    hosted. Keep the default Region unless you are customizing the template.
    Changing this Region updates code references to point to a new Quick Start location.
    When using your own bucket, specify the Region.
    See https://aws-quickstart.github.io/option1.html.'
    Type: String
  QSS3KeyPrefix:
    AllowedPattern: ^[0-9a-zA-Z-/]*$
    ConstraintDescription: The Quick Start S3 key prefix can include numbers, lowercase letters,
      uppercase letters, hyphens (-), and forward slashes (/). The prefix should
      end with a forward slash (/).
    Default: quickstart-ammos-smallsat-toolkit/
    Description: S3 key prefix that is used to simulate a directory for your copy of the
      Quick Start assets. Keep the default prefix unless you are customizing
      the template. Changing this prefix updates code references to point to
      a new Quick Start location. This prefix can include numbers, lowercase
      letters, uppercase letters, hyphens (-), and forward slashes (/). End with
      a forward slash. See https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
      and https://aws-quickstart.github.io/option1.html.
    Type: String
  RemoteAccessCIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/x
    Description: CIDR IP range that is permitted to access the instances. Set this value to a trusted IP range.
    Type: String
  SSLCertificateArn:
    Description: (Optional) Amazon Resource Name of the SSL certificate to use for the load balancer. Use SSLCertificateArn if you are not using FQDN and HostedZoneID.
    Type: String
    Default: ''
  HostedZoneID:
    Description: (Optional) ID of the Route 53 hosted-zone domain. If you fill in both FQDN and HostedZoneID, this deployment generates an ACM certificate.
    Type: String
    MaxLength: 32
    Default: ''
  FQDN:
    Description: URL to use for the project-resources root.
    Type: String
  PermissionsBoundaryArn:
    Description: (Optional) Amazon Resource Name of a managed policy in your account to be used as the permissions boundary. This ARN will be attached to all IAM roles created to satisfy your organization's security requirements. If you keep this blank, this attribute is not set. For more information, see https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html.
    Type: String
    Default: ''
  RolePath:
    Description: (Optional) Path that will be attached to all IAM roles created to satisfy your organization's security requirements. If you keep this blank, this attribute is not set. For more information, see https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names.
    Type: String
    Default: ''
  ProjectName:
    Description: Name of your project.
    Type: String
  VpcId:
    Description: (Optional) If you're deploying into an existing VPC, fill in the VPC ID.
    Type: String
    Default: ''
  PublicSubnet1ID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the public subnet in Availability Zone 1.
    Type: String
    Default: ''
  PublicSubnet2ID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the public subnet in Availability Zone 2.
    Type: String
    Default: ''
  PrivateSubnet1AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 1.
    Type: String
    Default: ''
  PrivateSubnet2AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 2.
    Type: String
    Default: ''
  PrivateSubnet3AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 3.
    Type: String
    Default: ''
  AccessSgID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the preconfigured security group to control access to the Application Load Balancer.
    Type: String
    Default: ''
  DeployIam:
    Description: Allow the QuickStart to deploy the required IAM Roles on your behalf. Otherwise, you will need to pre-deploy
      these IAM resources before launching the QuickStart; see the Deployment Guide for more details
    Type: String
    Default: 'true'
    AllowedValues:
      - 'true'
      - 'false'
Rules:
  DomainNamePresentWithHostedID:
    Assertions:
      - Assert: !Or
          - !Equals [!Ref HostedZoneID, '']
          - !Not [!Equals [!Ref FQDN, '']]
        AssertDescription: "Please specify a 'Domain Name' if you specify 'Route 53 Hosted Zone ID'"
  GenerateOrProvideSSL:
    Assertions:
      - Assert: !Or
          - !Not [!Equals [!Ref SSLCertificateArn, '']]
          - !And
            - !Not [!Equals [!Ref HostedZoneID, '']]
            - !Not [!Equals [!Ref FQDN, '']]
        AssertDescription: "Using an SSL certificate is enforced. A CertificateArn or a HostedZoneID and FQDN must be provided."
Conditions:
  DeployIam: !Equals [!Ref DeployIam, 'true']
  InspectIam: !Not [Condition: DeployIam]
  GenerateSSL: !And
    - !Equals [!Ref SSLCertificateArn, '']
    - !Not [!Equals [!Ref FQDN, '']]
  UsingDefaultBucket: !Equals [!Ref QSS3BucketName, 'aws-quickstart']
  DeployVpc: !Equals [!Ref VpcId, '']
Resources:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



templates/ammos-cubs.testing.template.yaml [1:292]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
AWSTemplateFormatVersion: "2010-09-09"
Description: (qs-1s6abjf8q)
Metadata:
  QuickStartDocumentation:
    EntrypointName: "Parameters for deploying AMMOS SmallSat Toolkit"
  'AWS::CloudFormation::Interface':
    ParameterGroups:
      - Label:
          default: AIT configuration
        Parameters:
          - ProjectName
          - FQDN
          - SSLCertificateArn
          - HostedZoneID
          - AITInstanceType
          - KeyPairName
          - CloudWatchLogsRetentionPeriod
      - Label:
          default: IAM configuration
        Parameters:
          - RolePath
          - PermissionsBoundaryArn
          - DeployIam
      - Label:
          default: Network configuration
        Parameters:
          - AvailabilityZones
          - VPCCIDR
          - PrivateSubnet1CIDR
          - PrivateSubnet2CIDR
          - PrivateSubnet3CIDR
          - PublicSubnet1CIDR
          - PublicSubnet2CIDR
          - PublicSubnet3CIDR
          - RemoteAccessCIDR
          - VpcId
          - PublicSubnet1ID
          - PublicSubnet2ID
          - PrivateSubnet1AID
          - PrivateSubnet2AID
          - PrivateSubnet3AID
          - AccessSgID
      - Label:
          default: AWS Quick Start configuration
        Parameters:
          - QSS3BucketName
          - QSS3KeyPrefix
          - QSS3BucketRegion
    ParameterLabels:
      AITInstanceType:
        default: AIT instance type
      AvailabilityZones:
        default: Availability Zones
      CloudWatchLogsRetentionPeriod:
        default: CloudWatch Logs retention period
      FQDN:
        default: Fully qualified domain name
      HostedZoneID:
        default: Hosted-zone ID
      KeyPairName:
        default: Key-pair name
      PermissionsBoundaryArn:
        default: Permissions boundary ARN
      ProjectName:
        default: Project name
      RemoteAccessCIDR:
        default: Remote access CIDR
      RolePath:
        default: Role path
      DeployIam:
        default: Flag to control IAM Resource deployment
      SSLCertificateArn:
        default: SSL certificate ARN
      VPCCIDR:
        default: VPC CIDR
      PrivateSubnet1CIDR:
        default: Private subnet 1 CIDR
      PrivateSubnet2CIDR:
        default: Private subnet 2 CIDR
      PrivateSubnet3CIDR:
        default: Private subnet 3 CIDR
      PublicSubnet1CIDR:
        default: Public subnet 1 CIDR
      PublicSubnet2CIDR:
        default: Public subnet 2 CIDR
      PublicSubnet3CIDR:
        default: Public subnet 3 CIDR
      QSS3BucketName:
        default: Quick Start S3 bucket name
      QSS3KeyPrefix:
        default: Quick Start S3 key prefix
      QSS3BucketRegion:
        default: Quick Start S3 bucket Region
      VpcId:
        default: ID for VPC in an existing VPC
      PublicSubnet1ID:
        default: ID for public subnet 1 in an existing VPC
      PublicSubnet2ID:
        default: ID for public subnet 2 in an existing VPC
      PrivateSubnet1AID:
        default: ID for private subnet 1A in an existing VPC
      PrivateSubnet2AID:
        default: ID for private subnet 2A in an existing VPC
      PrivateSubnet3AID:
        default: ID for private subnet 3A in an existing VPC
      AccessSgID:
        default: ID of preconfigured security group in an existing VPC
Parameters:
  AITInstanceType:
    Description: Instance type to be used for AIT. See deployment
      guide for recommendations.
    Type: String
    Default: m5.large
  CloudWatchLogsRetentionPeriod:
    Description: Number of days to retain log events in CloudWatch Logs log groups. Increasing this number results in higher log-storage costs.
    Type: Number
    Default: 30
  KeyPairName:
    Description: Name of the key pair that you will use to connect securely to your instance after it launches.
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: Must be the name of an existing key pair.
  VPCCIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.0.0/16
    Description: CIDR block for the VPC.
    Type: String
  PublicSubnet1CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.32.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 1.
    Type: String
  PublicSubnet2CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.64.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 2.
    Type: String
  PublicSubnet3CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.70.0/24
    Description: CIDR block used for the public subnet located in Availability Zone 3.
    Type: String
  PrivateSubnet1CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.128.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 1.
    Type: String
  PrivateSubnet2CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.192.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 2.
    Type: String
  PrivateSubnet3CIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
    Default: 10.0.200.0/24
    Description: CIDR block used for the private subnet located in Availability Zone 3.
    Type: String
  AvailabilityZones:
    Description: Availability Zones to use for the subnets in the VPC. This deployment uses three
      Availability Zones, and the logical order of your
      selections is preserved.
    Type: List<AWS::EC2::AvailabilityZone::Name>
  QSS3BucketName:
    AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$
    ConstraintDescription: Quick Start bucket name can include numbers, lowercase
      letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen
      (-).
    Default: aws-quickstart
    Description: Name of the S3 bucket for your copy of the Quick Start assets.
      Keep the default name unless you are customizing the template.
      Changing the name updates code references to point to a new Quick
      Start location. This name can include numbers, lowercase letters,
      uppercase letters, and hyphens, but do not start or end with a hyphen (-).
      See https://aws-quickstart.github.io/option1.html.
    Type: String
  QSS3BucketRegion:
    Default: 'us-east-1'
    Description: 'AWS Region where the Quick Start S3 bucket (QSS3BucketName) is
    hosted. Keep the default Region unless you are customizing the template.
    Changing this Region updates code references to point to a new Quick Start location.
    When using your own bucket, specify the Region.
    See https://aws-quickstart.github.io/option1.html.'
    Type: String
  QSS3KeyPrefix:
    AllowedPattern: ^[0-9a-zA-Z-/]*$
    ConstraintDescription: The Quick Start S3 key prefix can include numbers, lowercase letters,
      uppercase letters, hyphens (-), and forward slashes (/). The prefix should
      end with a forward slash (/).
    Default: quickstart-ammos-smallsat-toolkit/
    Description: S3 key prefix that is used to simulate a directory for your copy of the
      Quick Start assets. Keep the default prefix unless you are customizing
      the template. Changing this prefix updates code references to point to
      a new Quick Start location. This prefix can include numbers, lowercase
      letters, uppercase letters, hyphens (-), and forward slashes (/). End with
      a forward slash. See https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
      and https://aws-quickstart.github.io/option1.html.
    Type: String
  RemoteAccessCIDR:
    AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$
    ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/x
    Description: CIDR IP range that is permitted to access the instances. Set this value to a trusted IP range.
    Type: String
  SSLCertificateArn:
    Description: (Optional) Amazon Resource Name of the SSL certificate to use for the load balancer. Use SSLCertificateArn if you are not using FQDN and HostedZoneID.
    Type: String
    Default: ''
  HostedZoneID:
    Description: (Optional) ID of the Route 53 hosted-zone domain. If you fill in both FQDN and HostedZoneID, this deployment generates an ACM certificate.
    Type: String
    MaxLength: 32
    Default: ''
  FQDN:
    Description: URL to use for the project-resources root.
    Type: String
  PermissionsBoundaryArn:
    Description: (Optional) Amazon Resource Name of a managed policy in your account to be used as the permissions boundary. This ARN will be attached to all IAM roles created to satisfy your organization's security requirements. If you keep this blank, this attribute is not set. For more information, see https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html.
    Type: String
    Default: ''
  RolePath:
    Description: (Optional) Path that will be attached to all IAM roles created to satisfy your organization's security requirements. If you keep this blank, this attribute is not set. For more information, see https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names.
    Type: String
    Default: ''
  ProjectName:
    Description: Name of your project.
    Type: String
  VpcId:
    Description: (Optional) If you're deploying into an existing VPC, fill in the VPC ID.
    Type: String
    Default: ''
  PublicSubnet1ID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the public subnet in Availability Zone 1.
    Type: String
    Default: ''
  PublicSubnet2ID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the public subnet in Availability Zone 2.
    Type: String
    Default: ''
  PrivateSubnet1AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 1.
    Type: String
    Default: ''
  PrivateSubnet2AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 2.
    Type: String
    Default: ''
  PrivateSubnet3AID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the private subnet in Availability Zone 3.
    Type: String
    Default: ''
  AccessSgID:
    Description: (Optional) If you're deploying into an existing VPC, fill in the ID of the preconfigured security group to control access to the Application Load Balancer.
    Type: String
    Default: ''
  DeployIam:
    Description: Allow the QuickStart to deploy the required IAM Roles on your behalf. Otherwise, you will need to pre-deploy
      these IAM resources before launching the QuickStart; see the Deployment Guide for more details
    Type: String
    Default: 'true'
    AllowedValues:
      - 'true'
      - 'false'
Rules:
  DomainNamePresentWithHostedID:
    Assertions:
      - Assert: !Or
          - !Equals [!Ref HostedZoneID, '']
          - !Not [!Equals [!Ref FQDN, '']]
        AssertDescription: "Please specify a 'Domain Name' if you specify 'Route 53 Hosted Zone ID'"
  GenerateOrProvideSSL:
    Assertions:
      - Assert: !Or
          - !Not [!Equals [!Ref SSLCertificateArn, '']]
          - !And
            - !Not [!Equals [!Ref HostedZoneID, '']]
            - !Not [!Equals [!Ref FQDN, '']]
        AssertDescription: "Using an SSL certificate is enforced. A CertificateArn or a HostedZoneID and FQDN must be provided."
Conditions:
  DeployIam: !Equals [!Ref DeployIam, 'true']
  InspectIam: !Not [Condition: DeployIam]
  GenerateSSL: !And
    - !Equals [!Ref SSLCertificateArn, '']
    - !Not [!Equals [!Ref FQDN, '']]
  UsingDefaultBucket: !Equals [!Ref QSS3BucketName, 'aws-quickstart']
  DeployVpc: !Equals [!Ref VpcId, '']
Resources:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



