{
  "Description": "(SO0158-Demo) - The AWS CloudFormation template for deployment of the amazon-cloudwatch-monitoring-framework Apache workload demo resource. Version v1.1.0",
  "AWSTemplateFormatVersion": "2010-09-09",
  "Mappings": {
    "StackMap": {
      "Apache": {
        "AccessLog": "/cw-monitoring-framework/apache/access",
        "InfraConfig": "https://solutions-reference.s3.amazonaws.com/amazon-cloudwatch-monitoring-framework/v1.1.0/linux_cw_infra.json",
        "ApacheConfig": "https://solutions-reference.s3.amazonaws.com/amazon-cloudwatch-monitoring-framework/v1.1.0/apache.config/apache.json",
        "httpdConfig": "https://solutions-reference.s3.amazonaws.com/amazon-cloudwatch-monitoring-framework/v1.1.0/apache.config/httpd.conf",
        "CloudWatchAgent": "https://solutions-reference.s3.amazonaws.com/amazon-cloudwatch-monitoring-framework/v1.1.0/amazon-cloudwatch-agent.rpm"
      }
    }
  },
  "Resources": {
    "ApacheDemoInfraDemoVPCAAA4EB75": {
      "Type": "AWS::EC2::VPC",
      "Properties": {
        "CidrBlock": "10.0.1.0/26",
        "EnableDnsHostnames": true,
        "EnableDnsSupport": true,
        "InstanceTenancy": "default",
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/Resource"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet1SubnetEE806C6B": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.0.1.0/28",
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "AvailabilityZone": {
          "Fn::Select": [
            0,
            {
              "Fn::GetAZs": ""
            }
          ]
        },
        "MapPublicIpOnLaunch": true,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "PublicSubnet"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Public"
          },
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet1"
          }
        ]
      },
      "Metadata": {
        "cfn_nag": {
          "rules_to_suppress": [
            {
              "id": "W33",
              "reason": "Need public IP for demo web server "
            }
          ]
        }
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet1RouteTable273DE88C": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet1"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet1/RouteTable"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet1RouteTableAssociationFC9516B1": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet1RouteTable273DE88C"
        },
        "SubnetId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet1SubnetEE806C6B"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet1/RouteTableAssociation"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet1DefaultRoute3928678D": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet1RouteTable273DE88C"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "GatewayId": {
          "Ref": "ApacheDemoInfraDemoVPCIGWF6EF9EC1"
        }
      },
      "DependsOn": [
        "ApacheDemoInfraDemoVPCVPCGW822EEBD2"
      ],
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet1/DefaultRoute"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet2Subnet0743185B": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.0.1.16/28",
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "AvailabilityZone": {
          "Fn::Select": [
            1,
            {
              "Fn::GetAZs": ""
            }
          ]
        },
        "MapPublicIpOnLaunch": true,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "PublicSubnet"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Public"
          },
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet2"
          }
        ]
      },
      "Metadata": {
        "cfn_nag": {
          "rules_to_suppress": [
            {
              "id": "W33",
              "reason": "Need public IP for demo web server "
            }
          ]
        }
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet2RouteTable34A8F7D6": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet2"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet2/RouteTable"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet2RouteTableAssociation7D8564BD": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet2RouteTable34A8F7D6"
        },
        "SubnetId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet2Subnet0743185B"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet2/RouteTableAssociation"
      }
    },
    "ApacheDemoInfraDemoVPCPublicSubnetSubnet2DefaultRoute61CF8D7E": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet2RouteTable34A8F7D6"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "GatewayId": {
          "Ref": "ApacheDemoInfraDemoVPCIGWF6EF9EC1"
        }
      },
      "DependsOn": [
        "ApacheDemoInfraDemoVPCVPCGW822EEBD2"
      ],
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/PublicSubnetSubnet2/DefaultRoute"
      }
    },
    "ApacheDemoInfraDemoVPCIGWF6EF9EC1": {
      "Type": "AWS::EC2::InternetGateway",
      "Properties": {
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/IGW"
      }
    },
    "ApacheDemoInfraDemoVPCVPCGW822EEBD2": {
      "Type": "AWS::EC2::VPCGatewayAttachment",
      "Properties": {
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "InternetGatewayId": {
          "Ref": "ApacheDemoInfraDemoVPCIGWF6EF9EC1"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoVPC/VPCGW"
      }
    },
    "ApacheDemoInfraVPCFlowLogGroup08AC2129": {
      "Type": "AWS::Logs::LogGroup",
      "Properties": {
        "RetentionInDays": 7
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "cfn_nag": {
          "rules_to_suppress": [
            {
              "id": "W84",
              "reason": " log group is encrypted with the default master key"
            }
          ]
        }
      }
    },
    "ApacheDemoInfraflowRole21144204": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "vpc-flow-logs.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/flowRole/Resource"
      }
    },
    "ApacheDemoInfraflowRoleDefaultPolicyC2BDBC0A": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams"
              ],
              "Effect": "Allow",
              "Resource": {
                "Fn::GetAtt": [
                  "ApacheDemoInfraVPCFlowLogGroup08AC2129",
                  "Arn"
                ]
              }
            },
            {
              "Action": "iam:PassRole",
              "Effect": "Allow",
              "Resource": {
                "Fn::GetAtt": [
                  "ApacheDemoInfraflowRole21144204",
                  "Arn"
                ]
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "ApacheDemoInfraflowRoleDefaultPolicyC2BDBC0A",
        "Roles": [
          {
            "Ref": "ApacheDemoInfraflowRole21144204"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/flowRole/DefaultPolicy/Resource"
      }
    },
    "ApacheDemoInfraDemoFlowLogB64EADE9": {
      "Type": "AWS::EC2::FlowLog",
      "Properties": {
        "ResourceId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        },
        "ResourceType": "VPC",
        "TrafficType": "ALL",
        "DeliverLogsPermissionArn": {
          "Fn::GetAtt": [
            "ApacheDemoInfraflowRole21144204",
            "Arn"
          ]
        },
        "LogDestinationType": "cloud-watch-logs",
        "LogGroupName": {
          "Ref": "ApacheDemoInfraVPCFlowLogGroup08AC2129"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoFlowLog/FlowLog"
      }
    },
    "ApacheDemoInfraDemoSGF9F40D2D": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoInfra/DemoSG",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "allow outbound http",
            "FromPort": 80,
            "IpProtocol": "tcp",
            "ToPort": 80
          },
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "allow outbound https",
            "FromPort": 443,
            "IpProtocol": "tcp",
            "ToPort": 443
          }
        ],
        "SecurityGroupIngress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "allow HTTP traffic",
            "FromPort": 80,
            "IpProtocol": "tcp",
            "ToPort": 80
          }
        ],
        "VpcId": {
          "Ref": "ApacheDemoInfraDemoVPCAAA4EB75"
        }
      },
      "Metadata": {
        "cfn_nag": {
          "rules_to_suppress": [
            {
              "id": "W40",
              "reason": "Demo resource"
            },
            {
              "id": "W5",
              "reason": "Demo resource"
            },
            {
              "id": "W9",
              "reason": "Demo resource"
            },
            {
              "id": "W2",
              "reason": "Demo resource"
            }
          ]
        }
      }
    },
    "ApacheDemoInfraDemoInstancePolicy73E4C21E": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "cloudwatch:PutMetricData",
                "ec2:DescribeVolumes",
                "ec2:DescribeTags",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams",
                "logs:DescribeLogGroups",
                "logs:CreateLogStream",
                "logs:CreateLogGroup"
              ],
              "Effect": "Allow",
              "Resource": "*",
              "Sid": "CWWrite"
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "ApacheDemoInfraDemoInstancePolicy73E4C21E",
        "Roles": [
          {
            "Ref": "ApacheDemoEC2InstanceRoleDA78EFD7"
          }
        ]
      },
      "Metadata": {
        "cfn_nag": {
          "rules_to_suppress": [
            {
              "id": "W12",
              "reason": "* is required for creating log groups and put metrics"
            }
          ]
        }
      }
    },
    "ApacheDemoEC2InstanceRoleDA78EFD7": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": {
                  "Fn::Join": [
                    "",
                    [
                      "ec2.",
                      {
                        "Ref": "AWS::URLSuffix"
                      }
                    ]
                  ]
                }
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2/InstanceRole/Resource"
      }
    },
    "ApacheDemoEC2InstanceRoleDefaultPolicyBCF804FF": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "cloudformation:DescribeStackResource",
                "cloudformation:SignalResource"
              ],
              "Effect": "Allow",
              "Resource": {
                "Ref": "AWS::StackId"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "ApacheDemoEC2InstanceRoleDefaultPolicyBCF804FF",
        "Roles": [
          {
            "Ref": "ApacheDemoEC2InstanceRoleDA78EFD7"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2/InstanceRole/DefaultPolicy/Resource"
      }
    },
    "ApacheDemoEC2InstanceProfile3A6FA79F": {
      "Type": "AWS::IAM::InstanceProfile",
      "Properties": {
        "Roles": [
          {
            "Ref": "ApacheDemoEC2InstanceRoleDA78EFD7"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2/InstanceProfile"
      }
    },
    "ApacheDemoEC232146B87": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "AvailabilityZone": {
          "Fn::Select": [
            0,
            {
              "Fn::GetAZs": ""
            }
          ]
        },
        "IamInstanceProfile": {
          "Ref": "ApacheDemoEC2InstanceProfile3A6FA79F"
        },
        "ImageId": {
          "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestamzn2amihvmx8664gp2C96584B6F00A464EAD1953AFF4B05118Parameter"
        },
        "InstanceType": "t3.micro",
        "SecurityGroupIds": [
          {
            "Fn::GetAtt": [
              "ApacheDemoInfraDemoSGF9F40D2D",
              "GroupId"
            ]
          }
        ],
        "SubnetId": {
          "Ref": "ApacheDemoInfraDemoVPCPublicSubnetSubnet1SubnetEE806C6B"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2"
          }
        ],
        "UserData": {
          "Fn::Base64": {
            "Fn::Join": [
              "",
              [
                "#!/bin/bash\n# fingerprint: 09d510b31600576a\n(\n  set +e\n  /opt/aws/bin/cfn-init -v --region ",
                {
                  "Ref": "AWS::Region"
                },
                " --stack ",
                {
                  "Ref": "AWS::StackName"
                },
                " --resource ApacheDemoEC232146B87 -c default\n  /opt/aws/bin/cfn-signal -e $? --region ",
                {
                  "Ref": "AWS::Region"
                },
                " --stack ",
                {
                  "Ref": "AWS::StackName"
                },
                " --resource ApacheDemoEC232146B87\n  cat /var/log/cfn-init.log >&2\n)\necho \"======setting up cloudwatch agent======\"\n/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/infra_config.json\n/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/apache_config.json\ncurl 127.0.0.1"
              ]
            ]
          }
        }
      },
      "DependsOn": [
        "ApacheDemoEC2InstanceRoleDefaultPolicyBCF804FF",
        "ApacheDemoEC2InstanceRoleDA78EFD7"
      ],
      "CreationPolicy": {
        "ResourceSignal": {
          "Count": 1,
          "Timeout": "PT5M"
        }
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/ApacheDemoEC2/Resource",
        "AWS::CloudFormation::Init": {
          "configSets": {
            "default": [
              "config"
            ]
          },
          "config": {
            "packages": {
              "rpm": {
                "000": [
                  {
                    "Fn::FindInMap": [
                      "StackMap",
                      "Apache",
                      "CloudWatchAgent"
                    ]
                  }
                ]
              },
              "yum": {
                "httpd": []
              }
            },
            "files": {
              "/opt/aws/amazon-cloudwatch-agent/bin/infra_config.json": {
                "source": {
                  "Fn::FindInMap": [
                    "StackMap",
                    "Apache",
                    "InfraConfig"
                  ]
                },
                "mode": "000644",
                "owner": "root",
                "group": "root"
              },
              "/opt/aws/amazon-cloudwatch-agent/bin/apache_config.json": {
                "source": {
                  "Fn::FindInMap": [
                    "StackMap",
                    "Apache",
                    "ApacheConfig"
                  ]
                },
                "mode": "000644",
                "owner": "root",
                "group": "root"
              },
              "/etc/httpd/conf/httpd.conf": {
                "source": {
                  "Fn::FindInMap": [
                    "StackMap",
                    "Apache",
                    "httpdConfig"
                  ]
                },
                "mode": "000644",
                "owner": "root",
                "group": "root"
              },
              "/var/www/html/index.html": {
                "content": "Hello World!",
                "encoding": "plain",
                "mode": "000644",
                "owner": "apache",
                "group": "apache"
              }
            },
            "commands": {
              "000": {
                "command": "mkdir /var/log/www/"
              },
              "001": {
                "command": "mkdir /var/log/www/error"
              },
              "002": {
                "command": "mkdir /var/log/www/access"
              }
            },
            "services": {
              "sysvinit": {
                "httpd": {
                  "enabled": true,
                  "ensureRunning": true,
                  "packages": {
                    "rpm": [
                      "000"
                    ],
                    "yum": [
                      "httpd"
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "CDKMetadata": {
      "Type": "AWS::CDK::Metadata",
      "Properties": {
        "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WQy26DMBBFvyV7xykoUreNkBpF6gNBlb0xE+oEPMgeF0WIf6/NI7Qrn3ncuTOOeBTv+dPmRXR2K8vbrpdogPcfYAnKnIS8seSi30XbKl2xBLUl4ySxDCw6IyFUU2FEAwQmBJ+OWkeB/rZ4YalIoR5YcOpBxrw/tzLUzmnCUlfUSuau0DBqV8rQEXyJooY1v+YO1qJUIkx+NAc4ab+O7zwKgk7cZ5s5OpC/67sBTey1xu4Nq1BfMAfpjKL70aBrR89/iZP/AaHl7DLxwGqsLO+9/KFaeGBKNLzPcDpgfFP0x45LrbTMSg1eVA3DMDCNJfCr3f1Eex4983hztUptjdOkGuDZ9P4CGJezicIBAAA="
      },
      "Metadata": {
        "aws:cdk:path": "CW-Monitoring-Framework-Stack/Apache-Demo-Stack/CDKMetadata/Default"
      },
      "Condition": "CDKMetadataAvailable"
    }
  },
  "Parameters": {
    "SsmParameterValueawsserviceamiamazonlinuxlatestamzn2amihvmx8664gp2C96584B6F00A464EAD1953AFF4B05118Parameter": {
      "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",
      "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
    }
  },
  "Outputs": {
    "WebURL": {
      "Description": "URL for apache demo server",
      "Value": {
        "Fn::Join": [
          "",
          [
            "http://",
            {
              "Fn::GetAtt": [
                "ApacheDemoEC232146B87",
                "PublicIp"
              ]
            }
          ]
        ]
      }
    }
  },
  "Conditions": {
    "CDKMetadataAvailable": {
      "Fn::Or": [
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "af-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-northeast-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-northeast-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ca-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "cn-north-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "cn-northwest-1"
              ]
            }
          ]
        },
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-north-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-3"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "me-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "sa-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-east-2"
              ]
            }
          ]
        },
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-west-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-west-2"
              ]
            }
          ]
        }
      ]
    }
  }
}