Description: Development Account Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: "Account Parameter." Parameters: - AccountName - AccountEmail - Label: default: "Billing Contact" Parameters: - BillingEmail - BillingName - BillingPhoneNumber - BillingTitle - Label: default: "Operations Contact" Parameters: - OperationsEmail - OperationsName - OperationsPhoneNumber - OperationsTitle - Label: default: "Security Contact" Parameters: - SecurityEmail - SecurityName - SecurityPhoneNumber - SecurityTitle Parameters: AccountName: Type: String AccountEmail: Type: String OrgRegions: Type: AWS::SSM::Parameter::Value> Default: /org/regions # Alternate Contacts BillingEmail: Type: String BillingName: Type: String BillingPhoneNumber: Type: String BillingTitle: Type: String OperationsEmail: Type: String OperationsName: Type: String OperationsPhoneNumber: Type: String OperationsTitle: Type: String SecurityEmail: Type: String SecurityName: Type: String SecurityPhoneNumber: Type: String SecurityTitle: Type: String Conditions: BillingEmailEmpty: !Equals [!Ref BillingEmail, ""] OperationsEmailEmpty: !Equals [!Ref OperationsEmail, ""] SecurityEmailEmpty: !Equals [!Ref SecurityEmail, ""] Resources: Account: Type: ProServe::Organizations::Account Properties: AccountName: !Ref AccountName AccountEmail: !Ref AccountEmail OrganizationalUnitId: '{{resolve:ssm:/org/organization-unit/dev}}' AlternateContacts: Billing: Fn::If: - BillingEmailEmpty - !Ref AWS::NoValue - Email: !Ref BillingEmail Name: !Ref BillingName PhoneNumber: !Ref BillingPhoneNumber Title: !Ref BillingTitle Operations: Fn::If: - OperationsEmailEmpty - !Ref AWS::NoValue - Email: !Ref OperationsEmail Name: !Ref OperationsName PhoneNumber: !Ref OperationsPhoneNumber Title: !Ref OperationsTitle Security: Fn::If: - SecurityEmailEmpty - !Ref AWS::NoValue - Email: !Ref SecurityEmail Name: !Ref SecurityName PhoneNumber: !Ref SecurityPhoneNumber Title: !Ref SecurityTitle DeploymentAccountConfiguration: AccountId: !Ref AWS::AccountId RoleName: DeploymentAccountAccessRole AWSManagedPolicyArns: - arn:aws:iam::aws:policy/AdministratorAccess NotificationTopicArn: !ImportValue notification-topic-arn Tags: - Key: type Value: dev RolesBaseline: Type: ProServe::Cloudformation::StackInstances Properties: StackSetName: '{{resolve:ssm:/org/prefix}}-Baseline-Roles' StackInstances: DeploymentTargets: Accounts: - !Ref Account Regions: - !Ref AWS::Region OperationPreferences: RegionConcurrencyType: PARALLEL FailureToleranceCount: 0 MaxConcurrentCount: 1 ConfigBaseline: DependsOn: RolesBaseline Type: ProServe::Cloudformation::StackInstances Properties: StackSetName: '{{resolve:ssm:/org/prefix}}-Baseline-Config' StackInstances: DeploymentTargets: Accounts: - !Ref Account Regions: !Ref OrgRegions OperationPreferences: RegionConcurrencyType: PARALLEL FailureToleranceCount: 0 MaxConcurrentCount: 1 Outputs: AccountId: Value: !Ref Account