{
    "typeName": "JFrog::Artifactory::Core::MODULE",
    "description": "Schema for Module Fragment of type JFrog::Artifactory::Core::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."
                },
                "VpcId": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "VpcCidr": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "CIDR block for the VPC"
                },
                "PrivateSubnet1Cidr": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "PrivateSubnet2Cidr": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "PrivateSubnet3Cidr": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "PrivateSubnet1Id": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "ID of the private subnet in Availability Zone 1 of your existing VPC (e.g., subnet-z0376dab)."
                },
                "PrivateSubnet2Id": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "ID of the private subnet in Availability Zone 1 of your existing VPC (e.g., subnet-z0376dab)."
                },
                "DatabaseAllocatedStorage": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "DatabasePreferredAz": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "MultiAzDatabase": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        },
                        "Description": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type",
                        "Description"
                    ],
                    "description": "Choose false to create an Amazon RDS instance in a single Availability Zone."
                },
                "DatabaseEngine": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "DatabaseUser": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "DatabasePassword": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "DatabaseInstance": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "DatabaseName": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "ArtifactoryProduct": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "ReleaseStage": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "InstanceType": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "ArtifactoryHostRole": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                },
                "VolumeSize": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Type"
                    ]
                }
            }
        },
        "Resources": {
            "properties": {
                "ArtifactoryDatabaseSubnetGroup": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::RDS::DBSubnetGroup"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "ArtifactoryDatabase": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::RDS::DBInstance"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "ArtifactoryDatabaseSG": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::SecurityGroup"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "ArtifactoryS3Bucket": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::S3::Bucket"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "ArtifactoryS3IAMPolicy": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::IAM::Policy"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                },
                "ArtifactoryEbsVolume": {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "const": "AWS::EC2::Volume"
                        },
                        "Properties": {
                            "type": "object"
                        }
                    }
                }
            },
            "type": "object",
            "additionalProperties": false
        }
    },
    "additionalProperties": true
}
