{
    "typeName": "JFrog::Vpc::MultiAz::MODULE",
    "description": "Schema for Module Fragment of type JFrog::Vpc::MultiAz::MODULE",
    "properties": {
        "Parameters": {
            "type": "object",
            "properties": {
                "AvailabilityZone1": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Availability Zone 1 to use for the subnets in the VPC. Two Availability Zones are used for this deployment."
                },
                "AvailabilityZone2": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Availability Zone 2 to use for the subnets in the VPC. Two Availability Zones are used for this deployment."
                },
                "CreateNATGateways": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Set to false when creating only private subnets. If True, both CreatePublicSubnets and CreatePrivateSubnets must also be true."
                },
                "CreatePublicSubnets": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Set to false to create only private subnets. If false, CreatePrivateSubnets must be True and the CIDR parameters for ALL public subnets will be ignored"
                },
                "CreatePrivateSubnets": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Set to false to create only public subnets. If false, the CIDR parameters for ALL private subnets will be ignored."
                },
                "PrivateSubnet1ACIDR": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for private subnet 1A located in Availability Zone 1"
                },
                "PrivateSubnet2ACIDR": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for private subnet 2A located in Availability Zone 2"
                },
                "PrivateSubnetATag1": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "tag to add to private subnets A, in format Key=Value (Optional)"
                },
                "PrivateSubnetATag2": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "tag to add to private subnets A, in format Key=Value (Optional)"
                },
                "PublicSubnet1CIDR": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for the public DMZ subnet 1 located in Availability Zone 1"
                },
                "PublicSubnet2CIDR": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for the public DMZ subnet 2 located in Availability Zone 2"
                },
                "PublicSubnetTag1": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "tag to add to public subnets, in format Key=Value (Optional)"
                },
                "PublicSubnetTag2": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "tag to add to public subnets, in format Key=Value (Optional)"
                },
                "VPCCIDR": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for the VPC"
                },
                "VPCTenancy": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "The allowed tenancy of instances launched into the VPC"
                }
            }
        },
        "Resources": {
            "properties": {
                "DHCPOptions": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::DHCPOptions"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "VPC": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::VPC"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "VPCDHCPOptionsAssociation": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::VPCDHCPOptionsAssociation"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "InternetGateway": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::InternetGateway"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "VPCGatewayAttachment": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::VPCGatewayAttachment"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet1A": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Subnet"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet2A": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Subnet"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnet1": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Subnet"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnet2": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Subnet"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet1ARouteTable": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::RouteTable"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet1ARoute": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Route"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet1ARouteTableAssociation": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::SubnetRouteTableAssociation"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet2ARouteTable": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::RouteTable"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet2ARoute": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Route"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PrivateSubnet2ARouteTableAssociation": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::SubnetRouteTableAssociation"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnetRouteTable": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::RouteTable"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnetRoute": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Route"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnet1RouteTableAssociation": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::SubnetRouteTableAssociation"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "PublicSubnet2RouteTableAssociation": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::SubnetRouteTableAssociation"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "NAT1EIP": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::EIP"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "NAT2EIP": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::EIP"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "NATGateway1": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::NatGateway"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "NATGateway2": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::NatGateway"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "S3VPCEndpoint": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::VPCEndpoint"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                }
            },
            "type": "object",
            "additionalProperties": false
        }
    },
    "additionalProperties": true
}
