{
  "Resources": {
    "MyVpcF9F0CA6F": {
      "Type": "AWS::EC2::VPC",
      "Properties": {
        "CidrBlock": "10.10.0.0/16",
        "EnableDnsHostnames": true,
        "EnableDnsSupport": true,
        "InstanceTenancy": "default",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ]
      }
    },
    "MyVpcPublicSubnet1SubnetF6608456": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.0.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1a",
        "MapPublicIpOnLaunch": true,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Public"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Public"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet1"
          }
        ]
      }
    },
    "MyVpcPublicSubnet1RouteTableC46AB2F4": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet1"
          }
        ]
      }
    },
    "MyVpcPublicSubnet1RouteTableAssociation2ECEE1CB": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet1RouteTableC46AB2F4"
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet1SubnetF6608456"
        }
      }
    },
    "MyVpcPublicSubnet1DefaultRoute95FDF9EB": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet1RouteTableC46AB2F4"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "GatewayId": {
          "Ref": "MyVpcIGW5C4A4F63"
        }
      },
      "DependsOn": [
        "MyVpcVPCGW488ACE0D"
      ]
    },
    "MyVpcPublicSubnet1EIP096967CB": {
      "Type": "AWS::EC2::EIP",
      "Properties": {
        "Domain": "vpc",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet1"
          }
        ]
      }
    },
    "MyVpcPublicSubnet1NATGatewayAD3400C1": {
      "Type": "AWS::EC2::NatGateway",
      "Properties": {
        "AllocationId": {
          "Fn::GetAtt": [
            "MyVpcPublicSubnet1EIP096967CB",
            "AllocationId"
          ]
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet1SubnetF6608456"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet1"
          }
        ]
      }
    },
    "MyVpcPublicSubnet2Subnet492B6BFB": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.32.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1b",
        "MapPublicIpOnLaunch": true,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Public"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Public"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet2"
          }
        ]
      }
    },
    "MyVpcPublicSubnet2RouteTable1DF17386": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet2"
          }
        ]
      }
    },
    "MyVpcPublicSubnet2RouteTableAssociation227DE78D": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet2RouteTable1DF17386"
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet2Subnet492B6BFB"
        }
      }
    },
    "MyVpcPublicSubnet2DefaultRoute052936F6": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet2RouteTable1DF17386"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "GatewayId": {
          "Ref": "MyVpcIGW5C4A4F63"
        }
      },
      "DependsOn": [
        "MyVpcVPCGW488ACE0D"
      ]
    },
    "MyVpcPublicSubnet2EIP8CCBA239": {
      "Type": "AWS::EC2::EIP",
      "Properties": {
        "Domain": "vpc",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet2"
          }
        ]
      }
    },
    "MyVpcPublicSubnet2NATGateway91BFBEC9": {
      "Type": "AWS::EC2::NatGateway",
      "Properties": {
        "AllocationId": {
          "Fn::GetAtt": [
            "MyVpcPublicSubnet2EIP8CCBA239",
            "AllocationId"
          ]
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet2Subnet492B6BFB"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet2"
          }
        ]
      }
    },
    "MyVpcPublicSubnet3Subnet57EEE236": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.64.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1c",
        "MapPublicIpOnLaunch": true,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Public"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Public"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet3"
          }
        ]
      }
    },
    "MyVpcPublicSubnet3RouteTable15028F08": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet3"
          }
        ]
      }
    },
    "MyVpcPublicSubnet3RouteTableAssociation5C27DDA4": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet3RouteTable15028F08"
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet3Subnet57EEE236"
        }
      }
    },
    "MyVpcPublicSubnet3DefaultRoute3A83AB36": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPublicSubnet3RouteTable15028F08"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "GatewayId": {
          "Ref": "MyVpcIGW5C4A4F63"
        }
      },
      "DependsOn": [
        "MyVpcVPCGW488ACE0D"
      ]
    },
    "MyVpcPublicSubnet3EIPC5ACADAB": {
      "Type": "AWS::EC2::EIP",
      "Properties": {
        "Domain": "vpc",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet3"
          }
        ]
      }
    },
    "MyVpcPublicSubnet3NATGatewayD4B50EBE": {
      "Type": "AWS::EC2::NatGateway",
      "Properties": {
        "AllocationId": {
          "Fn::GetAtt": [
            "MyVpcPublicSubnet3EIPC5ACADAB",
            "AllocationId"
          ]
        },
        "SubnetId": {
          "Ref": "MyVpcPublicSubnet3Subnet57EEE236"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PublicSubnet3"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet1Subnet5057CF7E": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.96.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1a",
        "MapPublicIpOnLaunch": false,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Private"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Private"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet1"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet1RouteTable8819E6E2": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet1"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet1RouteTableAssociation56D38C7E": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet1RouteTable8819E6E2"
        },
        "SubnetId": {
          "Ref": "MyVpcPrivateSubnet1Subnet5057CF7E"
        }
      }
    },
    "MyVpcPrivateSubnet1DefaultRouteA8CDE2FA": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet1RouteTable8819E6E2"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "NatGatewayId": {
          "Ref": "MyVpcPublicSubnet1NATGatewayAD3400C1"
        }
      }
    },
    "MyVpcPrivateSubnet2Subnet0040C983": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.128.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1b",
        "MapPublicIpOnLaunch": false,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Private"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Private"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet2"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet2RouteTableCEDCEECE": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet2"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet2RouteTableAssociation86A610DA": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet2RouteTableCEDCEECE"
        },
        "SubnetId": {
          "Ref": "MyVpcPrivateSubnet2Subnet0040C983"
        }
      }
    },
    "MyVpcPrivateSubnet2DefaultRoute9CE96294": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet2RouteTableCEDCEECE"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "NatGatewayId": {
          "Ref": "MyVpcPublicSubnet2NATGateway91BFBEC9"
        }
      }
    },
    "MyVpcPrivateSubnet3Subnet772D6AD7": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "10.10.160.0/19",
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "AvailabilityZone": "test-region-1c",
        "MapPublicIpOnLaunch": false,
        "Tags": [
          {
            "Key": "aws-cdk:subnet-name",
            "Value": "Private"
          },
          {
            "Key": "aws-cdk:subnet-type",
            "Value": "Private"
          },
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet3"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet3RouteTableB790927C": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc/PrivateSubnet3"
          }
        ]
      }
    },
    "MyVpcPrivateSubnet3RouteTableAssociationD951741C": {
      "Type": "AWS::EC2::SubnetRouteTableAssociation",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet3RouteTableB790927C"
        },
        "SubnetId": {
          "Ref": "MyVpcPrivateSubnet3Subnet772D6AD7"
        }
      }
    },
    "MyVpcPrivateSubnet3DefaultRouteEC11C0C5": {
      "Type": "AWS::EC2::Route",
      "Properties": {
        "RouteTableId": {
          "Ref": "MyVpcPrivateSubnet3RouteTableB790927C"
        },
        "DestinationCidrBlock": "0.0.0.0/0",
        "NatGatewayId": {
          "Ref": "MyVpcPublicSubnet3NATGatewayD4B50EBE"
        }
      }
    },
    "MyVpcIGW5C4A4F63": {
      "Type": "AWS::EC2::InternetGateway",
      "Properties": {
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ]
      }
    },
    "MyVpcVPCGW488ACE0D": {
      "Type": "AWS::EC2::VPCGatewayAttachment",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "InternetGatewayId": {
          "Ref": "MyVpcIGW5C4A4F63"
        }
      }
    },
    "MyVpcVpnGateway11FB05E5": {
      "Type": "AWS::EC2::VPNGateway",
      "Properties": {
        "Type": "ipsec.1",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ]
      }
    },
    "MyVpcVPCVPNGW0CB969B3": {
      "Type": "AWS::EC2::VPCGatewayAttachment",
      "Properties": {
        "VpcId": {
          "Ref": "MyVpcF9F0CA6F"
        },
        "VpnGatewayId": {
          "Ref": "MyVpcVpnGateway11FB05E5"
        }
      }
    },
    "MyVpcRoutePropagation122FC3BE": {
      "Type": "AWS::EC2::VPNGatewayRoutePropagation",
      "Properties": {
        "RouteTableIds": [
          {
            "Ref": "MyVpcPrivateSubnet1RouteTable8819E6E2"
          },
          {
            "Ref": "MyVpcPrivateSubnet2RouteTableCEDCEECE"
          },
          {
            "Ref": "MyVpcPrivateSubnet3RouteTableB790927C"
          }
        ],
        "VpnGatewayId": {
          "Ref": "MyVpcVpnGateway11FB05E5"
        }
      },
      "DependsOn": [
        "MyVpcVPCVPNGW0CB969B3"
      ]
    },
    "MyVpcDynamicCustomerGatewayFB63DFBF": {
      "Type": "AWS::EC2::CustomerGateway",
      "Properties": {
        "BgpAsn": 65000,
        "IpAddress": "52.85.255.164",
        "Type": "ipsec.1",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ]
      }
    },
    "MyVpcDynamic739F3519": {
      "Type": "AWS::EC2::VPNConnection",
      "Properties": {
        "CustomerGatewayId": {
          "Ref": "MyVpcDynamicCustomerGatewayFB63DFBF"
        },
        "Type": "ipsec.1",
        "StaticRoutesOnly": false,
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ],
        "VpnGatewayId": {
          "Ref": "MyVpcVpnGateway11FB05E5"
        },
        "VpnTunnelOptionsSpecifications": [
          {
            "PreSharedKey": "secretkey1234"
          }
        ]
      }
    },
    "MyVpcStaticCustomerGateway43D01906": {
      "Type": "AWS::EC2::CustomerGateway",
      "Properties": {
        "BgpAsn": 65000,
        "IpAddress": "52.85.255.197",
        "Type": "ipsec.1",
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ]
      }
    },
    "MyVpcStaticABA7F625": {
      "Type": "AWS::EC2::VPNConnection",
      "Properties": {
        "CustomerGatewayId": {
          "Ref": "MyVpcStaticCustomerGateway43D01906"
        },
        "Type": "ipsec.1",
        "StaticRoutesOnly": true,
        "Tags": [
          {
            "Key": "Name",
            "Value": "aws-cdk-ec2-vpn/MyVpc"
          }
        ],
        "VpnGatewayId": {
          "Ref": "MyVpcVpnGateway11FB05E5"
        }
      }
    },
    "MyVpcStaticRoute192168100240A24A5CC": {
      "Type": "AWS::EC2::VPNConnectionRoute",
      "Properties": {
        "DestinationCidrBlock": "192.168.10.0/24",
        "VpnConnectionId": {
          "Ref": "MyVpcStaticABA7F625"
        }
      }
    },
    "MyVpcStaticRoute19216820024CD4B642F": {
      "Type": "AWS::EC2::VPNConnectionRoute",
      "Properties": {
        "DestinationCidrBlock": "192.168.20.0/24",
        "VpnConnectionId": {
          "Ref": "MyVpcStaticABA7F625"
        }
      }
    }
  }
}