{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false,
  "definitions": {
    "AWS::ACMPCA::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiPassthrough": {
              "$ref": "#/definitions/AWS::ACMPCA::Certificate.ApiPassthrough"
            },
            "CertificateAuthorityArn": {
              "type": "string"
            },
            "CertificateSigningRequest": {
              "type": "string"
            },
            "SigningAlgorithm": {
              "type": "string"
            },
            "TemplateArn": {
              "type": "string"
            },
            "Validity": {
              "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity"
            },
            "ValidityNotBefore": {
              "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity"
            }
          },
          "required": [
            "CertificateAuthorityArn",
            "CertificateSigningRequest",
            "SigningAlgorithm",
            "Validity"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ACMPCA::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.ApiPassthrough": {
      "additionalProperties": false,
      "properties": {
        "Extensions": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions"
        },
        "Subject": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.CustomAttribute": {
      "additionalProperties": false,
      "properties": {
        "ObjectIdentifier": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["ObjectIdentifier", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.CustomExtension": {
      "additionalProperties": false,
      "properties": {
        "Critical": {
          "type": "boolean"
        },
        "ObjectIdentifier": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["ObjectIdentifier", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.EdiPartyName": {
      "additionalProperties": false,
      "properties": {
        "NameAssigner": {
          "type": "string"
        },
        "PartyName": {
          "type": "string"
        }
      },
      "required": ["NameAssigner", "PartyName"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.ExtendedKeyUsage": {
      "additionalProperties": false,
      "properties": {
        "ExtendedKeyUsageObjectIdentifier": {
          "type": "string"
        },
        "ExtendedKeyUsageType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.Extensions": {
      "additionalProperties": false,
      "properties": {
        "CertificatePolicies": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyInformation"
          },
          "type": "array"
        },
        "CustomExtensions": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomExtension"
          },
          "type": "array"
        },
        "ExtendedKeyUsage": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.ExtendedKeyUsage"
          },
          "type": "array"
        },
        "KeyUsage": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.KeyUsage"
        },
        "SubjectAlternativeNames": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.GeneralName"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.GeneralName": {
      "additionalProperties": false,
      "properties": {
        "DirectoryName": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject"
        },
        "DnsName": {
          "type": "string"
        },
        "EdiPartyName": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName"
        },
        "IpAddress": {
          "type": "string"
        },
        "OtherName": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName"
        },
        "RegisteredId": {
          "type": "string"
        },
        "Rfc822Name": {
          "type": "string"
        },
        "UniformResourceIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.KeyUsage": {
      "additionalProperties": false,
      "properties": {
        "CRLSign": {
          "type": "boolean"
        },
        "DataEncipherment": {
          "type": "boolean"
        },
        "DecipherOnly": {
          "type": "boolean"
        },
        "DigitalSignature": {
          "type": "boolean"
        },
        "EncipherOnly": {
          "type": "boolean"
        },
        "KeyAgreement": {
          "type": "boolean"
        },
        "KeyCertSign": {
          "type": "boolean"
        },
        "KeyEncipherment": {
          "type": "boolean"
        },
        "NonRepudiation": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.OtherName": {
      "additionalProperties": false,
      "properties": {
        "TypeId": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["TypeId", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.PolicyInformation": {
      "additionalProperties": false,
      "properties": {
        "CertPolicyId": {
          "type": "string"
        },
        "PolicyQualifiers": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyQualifierInfo"
          },
          "type": "array"
        }
      },
      "required": ["CertPolicyId"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.PolicyQualifierInfo": {
      "additionalProperties": false,
      "properties": {
        "PolicyQualifierId": {
          "type": "string"
        },
        "Qualifier": {
          "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier"
        }
      },
      "required": ["PolicyQualifierId", "Qualifier"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.Qualifier": {
      "additionalProperties": false,
      "properties": {
        "CpsUri": {
          "type": "string"
        }
      },
      "required": ["CpsUri"],
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.Subject": {
      "additionalProperties": false,
      "properties": {
        "CommonName": {
          "type": "string"
        },
        "Country": {
          "type": "string"
        },
        "CustomAttributes": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomAttribute"
          },
          "type": "array"
        },
        "DistinguishedNameQualifier": {
          "type": "string"
        },
        "GenerationQualifier": {
          "type": "string"
        },
        "GivenName": {
          "type": "string"
        },
        "Initials": {
          "type": "string"
        },
        "Locality": {
          "type": "string"
        },
        "Organization": {
          "type": "string"
        },
        "OrganizationalUnit": {
          "type": "string"
        },
        "Pseudonym": {
          "type": "string"
        },
        "SerialNumber": {
          "type": "string"
        },
        "State": {
          "type": "string"
        },
        "Surname": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::Certificate.Validity": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CsrExtensions": {
              "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions"
            },
            "KeyAlgorithm": {
              "type": "string"
            },
            "KeyStorageSecurityStandard": {
              "type": "string"
            },
            "RevocationConfiguration": {
              "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.RevocationConfiguration"
            },
            "SigningAlgorithm": {
              "type": "string"
            },
            "Subject": {
              "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            },
            "UsageMode": {
              "type": "string"
            }
          },
          "required": ["KeyAlgorithm", "SigningAlgorithm", "Subject", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ACMPCA::CertificateAuthority"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.AccessDescription": {
      "additionalProperties": false,
      "properties": {
        "AccessLocation": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName"
        },
        "AccessMethod": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod"
        }
      },
      "required": ["AccessLocation", "AccessMethod"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.AccessMethod": {
      "additionalProperties": false,
      "properties": {
        "AccessMethodType": {
          "type": "string"
        },
        "CustomObjectIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.CrlConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CustomCname": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "ExpirationInDays": {
          "type": "number"
        },
        "S3BucketName": {
          "type": "string"
        },
        "S3ObjectAcl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.CsrExtensions": {
      "additionalProperties": false,
      "properties": {
        "KeyUsage": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage"
        },
        "SubjectInformationAccess": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessDescription"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.CustomAttribute": {
      "additionalProperties": false,
      "properties": {
        "ObjectIdentifier": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["ObjectIdentifier", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.EdiPartyName": {
      "additionalProperties": false,
      "properties": {
        "NameAssigner": {
          "type": "string"
        },
        "PartyName": {
          "type": "string"
        }
      },
      "required": ["NameAssigner", "PartyName"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.GeneralName": {
      "additionalProperties": false,
      "properties": {
        "DirectoryName": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject"
        },
        "DnsName": {
          "type": "string"
        },
        "EdiPartyName": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName"
        },
        "IpAddress": {
          "type": "string"
        },
        "OtherName": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName"
        },
        "RegisteredId": {
          "type": "string"
        },
        "Rfc822Name": {
          "type": "string"
        },
        "UniformResourceIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.KeyUsage": {
      "additionalProperties": false,
      "properties": {
        "CRLSign": {
          "type": "boolean"
        },
        "DataEncipherment": {
          "type": "boolean"
        },
        "DecipherOnly": {
          "type": "boolean"
        },
        "DigitalSignature": {
          "type": "boolean"
        },
        "EncipherOnly": {
          "type": "boolean"
        },
        "KeyAgreement": {
          "type": "boolean"
        },
        "KeyCertSign": {
          "type": "boolean"
        },
        "KeyEncipherment": {
          "type": "boolean"
        },
        "NonRepudiation": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.OcspConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "OcspCustomCname": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.OtherName": {
      "additionalProperties": false,
      "properties": {
        "TypeId": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["TypeId", "Value"],
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.RevocationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrlConfiguration": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration"
        },
        "OcspConfiguration": {
          "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthority.Subject": {
      "additionalProperties": false,
      "properties": {
        "CommonName": {
          "type": "string"
        },
        "Country": {
          "type": "string"
        },
        "CustomAttributes": {
          "items": {
            "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CustomAttribute"
          },
          "type": "array"
        },
        "DistinguishedNameQualifier": {
          "type": "string"
        },
        "GenerationQualifier": {
          "type": "string"
        },
        "GivenName": {
          "type": "string"
        },
        "Initials": {
          "type": "string"
        },
        "Locality": {
          "type": "string"
        },
        "Organization": {
          "type": "string"
        },
        "OrganizationalUnit": {
          "type": "string"
        },
        "Pseudonym": {
          "type": "string"
        },
        "SerialNumber": {
          "type": "string"
        },
        "State": {
          "type": "string"
        },
        "Surname": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ACMPCA::CertificateAuthorityActivation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Certificate": {
              "type": "string"
            },
            "CertificateAuthorityArn": {
              "type": "string"
            },
            "CertificateChain": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            }
          },
          "required": ["Certificate", "CertificateAuthorityArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ACMPCA::CertificateAuthorityActivation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ACMPCA::Permission": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CertificateAuthorityArn": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            },
            "SourceAccount": {
              "type": "string"
            }
          },
          "required": ["Actions", "CertificateAuthorityArn", "Principal"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ACMPCA::Permission"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::APS::RuleGroupsNamespace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Data": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Workspace": {
              "type": "string"
            }
          },
          "required": ["Data", "Name", "Workspace"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::APS::RuleGroupsNamespace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::APS::Workspace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlertManagerDefinition": {
              "type": "string"
            },
            "Alias": {
              "type": "string"
            },
            "LoggingConfiguration": {
              "$ref": "#/definitions/AWS::APS::Workspace.LoggingConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::APS::Workspace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::APS::Workspace.LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogGroupArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AccessAnalyzer::Analyzer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AnalyzerName": {
              "type": "string"
            },
            "ArchiveRules": {
              "items": {
                "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.ArchiveRule"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AccessAnalyzer::Analyzer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AccessAnalyzer::Analyzer.ArchiveRule": {
      "additionalProperties": false,
      "properties": {
        "Filter": {
          "items": {
            "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.Filter"
          },
          "type": "array"
        },
        "RuleName": {
          "type": "string"
        }
      },
      "required": ["Filter", "RuleName"],
      "type": "object"
    },
    "AWS::AccessAnalyzer::Analyzer.Filter": {
      "additionalProperties": false,
      "properties": {
        "Contains": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Eq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Exists": {
          "type": "boolean"
        },
        "Neq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Property": {
          "type": "string"
        }
      },
      "required": ["Property"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationStrategy": {
              "type": "string"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "BrokerName": {
              "type": "string"
            },
            "Configuration": {
              "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId"
            },
            "DeploymentMode": {
              "type": "string"
            },
            "EncryptionOptions": {
              "$ref": "#/definitions/AWS::AmazonMQ::Broker.EncryptionOptions"
            },
            "EngineType": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "HostInstanceType": {
              "type": "string"
            },
            "LdapServerMetadata": {
              "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata"
            },
            "Logs": {
              "$ref": "#/definitions/AWS::AmazonMQ::Broker.LogList"
            },
            "MaintenanceWindowStartTime": {
              "$ref": "#/definitions/AWS::AmazonMQ::Broker.MaintenanceWindow"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StorageType": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry"
              },
              "type": "array"
            },
            "Users": {
              "items": {
                "$ref": "#/definitions/AWS::AmazonMQ::Broker.User"
              },
              "type": "array"
            }
          },
          "required": [
            "AutoMinorVersionUpgrade",
            "BrokerName",
            "DeploymentMode",
            "EngineType",
            "EngineVersion",
            "HostInstanceType",
            "PubliclyAccessible",
            "Users"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmazonMQ::Broker"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.ConfigurationId": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Revision": {
          "type": "number"
        }
      },
      "required": ["Id", "Revision"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.EncryptionOptions": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "UseAwsOwnedKey": {
          "type": "boolean"
        }
      },
      "required": ["UseAwsOwnedKey"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.LdapServerMetadata": {
      "additionalProperties": false,
      "properties": {
        "Hosts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RoleBase": {
          "type": "string"
        },
        "RoleName": {
          "type": "string"
        },
        "RoleSearchMatching": {
          "type": "string"
        },
        "RoleSearchSubtree": {
          "type": "boolean"
        },
        "ServiceAccountPassword": {
          "type": "string"
        },
        "ServiceAccountUsername": {
          "type": "string"
        },
        "UserBase": {
          "type": "string"
        },
        "UserRoleName": {
          "type": "string"
        },
        "UserSearchMatching": {
          "type": "string"
        },
        "UserSearchSubtree": {
          "type": "boolean"
        }
      },
      "required": [
        "Hosts",
        "RoleBase",
        "RoleSearchMatching",
        "ServiceAccountPassword",
        "ServiceAccountUsername",
        "UserBase",
        "UserSearchMatching"
      ],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.LogList": {
      "additionalProperties": false,
      "properties": {
        "Audit": {
          "type": "boolean"
        },
        "General": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.MaintenanceWindow": {
      "additionalProperties": false,
      "properties": {
        "DayOfWeek": {
          "type": "string"
        },
        "TimeOfDay": {
          "type": "string"
        },
        "TimeZone": {
          "type": "string"
        }
      },
      "required": ["DayOfWeek", "TimeOfDay", "TimeZone"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AmazonMQ::Broker.User": {
      "additionalProperties": false,
      "properties": {
        "ConsoleAccess": {
          "type": "boolean"
        },
        "Groups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::AmazonMQ::Configuration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationStrategy": {
              "type": "string"
            },
            "Data": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EngineType": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry"
              },
              "type": "array"
            }
          },
          "required": ["Data", "EngineType", "EngineVersion", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmazonMQ::Configuration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmazonMQ::Configuration.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AmazonMQ::ConfigurationAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Broker": {
              "type": "string"
            },
            "Configuration": {
              "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId"
            }
          },
          "required": ["Broker", "Configuration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmazonMQ::ConfigurationAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Revision": {
          "type": "number"
        }
      },
      "required": ["Id", "Revision"],
      "type": "object"
    },
    "AWS::Amplify::App": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessToken": {
              "type": "string"
            },
            "AutoBranchCreationConfig": {
              "$ref": "#/definitions/AWS::Amplify::App.AutoBranchCreationConfig"
            },
            "BasicAuthConfig": {
              "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig"
            },
            "BuildSpec": {
              "type": "string"
            },
            "CustomHeaders": {
              "type": "string"
            },
            "CustomRules": {
              "items": {
                "$ref": "#/definitions/AWS::Amplify::App.CustomRule"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "EnableBranchAutoDeletion": {
              "type": "boolean"
            },
            "EnvironmentVariables": {
              "items": {
                "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable"
              },
              "type": "array"
            },
            "IAMServiceRole": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "OauthToken": {
              "type": "string"
            },
            "Platform": {
              "type": "string"
            },
            "Repository": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Amplify::App"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Amplify::App.AutoBranchCreationConfig": {
      "additionalProperties": false,
      "properties": {
        "AutoBranchCreationPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BasicAuthConfig": {
          "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig"
        },
        "BuildSpec": {
          "type": "string"
        },
        "EnableAutoBranchCreation": {
          "type": "boolean"
        },
        "EnableAutoBuild": {
          "type": "boolean"
        },
        "EnablePerformanceMode": {
          "type": "boolean"
        },
        "EnablePullRequestPreview": {
          "type": "boolean"
        },
        "EnvironmentVariables": {
          "items": {
            "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable"
          },
          "type": "array"
        },
        "Framework": {
          "type": "string"
        },
        "PullRequestEnvironmentName": {
          "type": "string"
        },
        "Stage": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Amplify::App.BasicAuthConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableBasicAuth": {
          "type": "boolean"
        },
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Amplify::App.CustomRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "required": ["Source", "Target"],
      "type": "object"
    },
    "AWS::Amplify::App.EnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::Amplify::Branch": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppId": {
              "type": "string"
            },
            "BasicAuthConfig": {
              "$ref": "#/definitions/AWS::Amplify::Branch.BasicAuthConfig"
            },
            "BranchName": {
              "type": "string"
            },
            "BuildSpec": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EnableAutoBuild": {
              "type": "boolean"
            },
            "EnablePerformanceMode": {
              "type": "boolean"
            },
            "EnablePullRequestPreview": {
              "type": "boolean"
            },
            "EnvironmentVariables": {
              "items": {
                "$ref": "#/definitions/AWS::Amplify::Branch.EnvironmentVariable"
              },
              "type": "array"
            },
            "Framework": {
              "type": "string"
            },
            "PullRequestEnvironmentName": {
              "type": "string"
            },
            "Stage": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AppId", "BranchName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Amplify::Branch"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Amplify::Branch.BasicAuthConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableBasicAuth": {
          "type": "boolean"
        },
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::Amplify::Branch.EnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::Amplify::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppId": {
              "type": "string"
            },
            "AutoSubDomainCreationPatterns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AutoSubDomainIAMRole": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "EnableAutoSubDomain": {
              "type": "boolean"
            },
            "SubDomainSettings": {
              "items": {
                "$ref": "#/definitions/AWS::Amplify::Domain.SubDomainSetting"
              },
              "type": "array"
            }
          },
          "required": ["AppId", "DomainName", "SubDomainSettings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Amplify::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Amplify::Domain.SubDomainSetting": {
      "additionalProperties": false,
      "properties": {
        "BranchName": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["BranchName", "Prefix"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BindingProperties": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue"
                }
              },
              "type": "object"
            },
            "Children": {
              "items": {
                "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild"
              },
              "type": "array"
            },
            "CollectionProperties": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration"
                }
              },
              "type": "object"
            },
            "ComponentType": {
              "type": "string"
            },
            "Events": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent"
                }
              },
              "type": "object"
            },
            "Name": {
              "type": "string"
            },
            "Overrides": {
              "type": "object"
            },
            "Properties": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
                }
              },
              "type": "object"
            },
            "SchemaVersion": {
              "type": "string"
            },
            "SourceId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Variants": {
              "items": {
                "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentVariant"
              },
              "type": "array"
            }
          },
          "required": [
            "BindingProperties",
            "ComponentType",
            "Name",
            "Overrides",
            "Properties",
            "Variants"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmplifyUIBuilder::Component"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ActionParameters": {
      "additionalProperties": false,
      "properties": {
        "Anchor": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Fields": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
            }
          },
          "type": "object"
        },
        "Global": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Id": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Model": {
          "type": "string"
        },
        "State": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter"
        },
        "Target": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Type": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Url": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue": {
      "additionalProperties": false,
      "properties": {
        "BindingProperties": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Field": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Model": {
          "type": "string"
        },
        "Predicates": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate"
          },
          "type": "array"
        },
        "UserAttribute": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentChild": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild"
          },
          "type": "array"
        },
        "ComponentType": {
          "type": "string"
        },
        "Events": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent"
            }
          },
          "type": "object"
        },
        "Name": {
          "type": "string"
        },
        "Properties": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
            }
          },
          "type": "object"
        }
      },
      "required": ["ComponentType", "Name", "Properties"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentConditionProperty": {
      "additionalProperties": false,
      "properties": {
        "Else": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        },
        "Field": {
          "type": "string"
        },
        "Operand": {
          "type": "string"
        },
        "OperandType": {
          "type": "string"
        },
        "Operator": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        },
        "Then": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Identifiers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Model": {
          "type": "string"
        },
        "Predicate": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate"
        },
        "Sort": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.SortProperty"
          },
          "type": "array"
        }
      },
      "required": ["Model"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentEvent": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Parameters": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ActionParameters"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentProperty": {
      "additionalProperties": false,
      "properties": {
        "BindingProperties": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties"
        },
        "Bindings": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.FormBindingElement"
            }
          },
          "type": "object"
        },
        "CollectionBindingProperties": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties"
        },
        "ComponentName": {
          "type": "string"
        },
        "Concat": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
          },
          "type": "array"
        },
        "Condition": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentConditionProperty"
        },
        "Configured": {
          "type": "boolean"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Event": {
          "type": "string"
        },
        "ImportedValue": {
          "type": "string"
        },
        "Model": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "UserAttribute": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        }
      },
      "required": ["Property"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.ComponentVariant": {
      "additionalProperties": false,
      "properties": {
        "Overrides": {
          "type": "object"
        },
        "VariantValues": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.FormBindingElement": {
      "additionalProperties": false,
      "properties": {
        "Element": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        }
      },
      "required": ["Element", "Property"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter": {
      "additionalProperties": false,
      "properties": {
        "ComponentName": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        },
        "Set": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty"
        }
      },
      "required": ["ComponentName", "Property", "Set"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.Predicate": {
      "additionalProperties": false,
      "properties": {
        "And": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate"
          },
          "type": "array"
        },
        "Field": {
          "type": "string"
        },
        "Operand": {
          "type": "string"
        },
        "Operator": {
          "type": "string"
        },
        "Or": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Component.SortProperty": {
      "additionalProperties": false,
      "properties": {
        "Direction": {
          "type": "string"
        },
        "Field": {
          "type": "string"
        }
      },
      "required": ["Direction", "Field"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppId": {
              "type": "string"
            },
            "Cta": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormCTA"
            },
            "DataType": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormDataTypeConfig"
            },
            "EnvironmentName": {
              "type": "string"
            },
            "Fields": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldConfig"
                }
              },
              "type": "object"
            },
            "FormActionType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SchemaVersion": {
              "type": "string"
            },
            "SectionalElements": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.SectionalElement"
                }
              },
              "type": "object"
            },
            "Style": {
              "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyle"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "DataType",
            "Fields",
            "FormActionType",
            "Name",
            "SchemaVersion",
            "SectionalElements",
            "Style"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmplifyUIBuilder::Form"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FieldConfig": {
      "additionalProperties": false,
      "properties": {
        "Excluded": {
          "type": "boolean"
        },
        "InputType": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldInputConfig"
        },
        "Label": {
          "type": "string"
        },
        "Position": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition"
        },
        "Validations": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FieldInputConfig": {
      "additionalProperties": false,
      "properties": {
        "DefaultChecked": {
          "type": "boolean"
        },
        "DefaultCountryCode": {
          "type": "string"
        },
        "DefaultValue": {
          "type": "string"
        },
        "DescriptiveText": {
          "type": "string"
        },
        "MaxValue": {
          "type": "number"
        },
        "MinValue": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Placeholder": {
          "type": "string"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "Required": {
          "type": "boolean"
        },
        "Step": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        },
        "ValueMappings": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.ValueMappings"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FieldPosition": {
      "additionalProperties": false,
      "properties": {
        "Below": {
          "type": "string"
        },
        "Fixed": {
          "type": "string"
        },
        "RightOf": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NumValues": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "StrValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        },
        "ValidationMessage": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormButton": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "type": "string"
        },
        "Excluded": {
          "type": "boolean"
        },
        "Position": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormCTA": {
      "additionalProperties": false,
      "properties": {
        "Cancel": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton"
        },
        "Clear": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton"
        },
        "Position": {
          "type": "string"
        },
        "Submit": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormDataTypeConfig": {
      "additionalProperties": false,
      "properties": {
        "DataSourceType": {
          "type": "string"
        },
        "DataTypeName": {
          "type": "string"
        }
      },
      "required": ["DataSourceType", "DataTypeName"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormInputValueProperty": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormStyle": {
      "additionalProperties": false,
      "properties": {
        "HorizontalGap": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig"
        },
        "OuterPadding": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig"
        },
        "VerticalGap": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.FormStyleConfig": {
      "additionalProperties": false,
      "properties": {
        "TokenReference": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.SectionalElement": {
      "additionalProperties": false,
      "properties": {
        "Level": {
          "type": "number"
        },
        "Orientation": {
          "type": "string"
        },
        "Position": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition"
        },
        "Text": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.ValueMapping": {
      "additionalProperties": false,
      "properties": {
        "DisplayValue": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty"
        },
        "Value": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Form.ValueMappings": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.ValueMapping"
          },
          "type": "array"
        }
      },
      "required": ["Values"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Theme": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Overrides": {
              "items": {
                "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Values": {
              "items": {
                "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues"
              },
              "type": "array"
            }
          },
          "required": ["Name", "Values"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AmplifyUIBuilder::Theme"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Theme.ThemeValue": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "items": {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues"
          },
          "type": "array"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AmplifyUIBuilder::Theme.ThemeValues": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Account": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CloudWatchRoleArn": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Account"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::ApiKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomerId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "GenerateDistinctId": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "StageKeys": {
              "items": {
                "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Value": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::ApiKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::ApiKey.StageKey": {
      "additionalProperties": false,
      "properties": {
        "RestApiId": {
          "type": "string"
        },
        "StageName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Authorizer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthType": {
              "type": "string"
            },
            "AuthorizerCredentials": {
              "type": "string"
            },
            "AuthorizerResultTtlInSeconds": {
              "type": "number"
            },
            "AuthorizerUri": {
              "type": "string"
            },
            "IdentitySource": {
              "type": "string"
            },
            "IdentityValidationExpression": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ProviderARNs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RestApiId": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "RestApiId", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Authorizer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::BasePathMapping": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BasePath": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "Id": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            },
            "Stage": {
              "type": "string"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::BasePathMapping"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::ClientCertificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::ClientCertificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::Deployment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeploymentCanarySettings": {
              "$ref": "#/definitions/AWS::ApiGateway::Deployment.DeploymentCanarySettings"
            },
            "Description": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            },
            "StageDescription": {
              "$ref": "#/definitions/AWS::ApiGateway::Deployment.StageDescription"
            },
            "StageName": {
              "type": "string"
            }
          },
          "required": ["RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Deployment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::Deployment.AccessLogSetting": {
      "additionalProperties": false,
      "properties": {
        "DestinationArn": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Deployment.CanarySetting": {
      "additionalProperties": false,
      "properties": {
        "PercentTraffic": {
          "type": "number"
        },
        "StageVariableOverrides": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "UseStageCache": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Deployment.DeploymentCanarySettings": {
      "additionalProperties": false,
      "properties": {
        "PercentTraffic": {
          "type": "number"
        },
        "StageVariableOverrides": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "UseStageCache": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Deployment.MethodSetting": {
      "additionalProperties": false,
      "properties": {
        "CacheDataEncrypted": {
          "type": "boolean"
        },
        "CacheTtlInSeconds": {
          "type": "number"
        },
        "CachingEnabled": {
          "type": "boolean"
        },
        "DataTraceEnabled": {
          "type": "boolean"
        },
        "HttpMethod": {
          "type": "string"
        },
        "LoggingLevel": {
          "type": "string"
        },
        "MetricsEnabled": {
          "type": "boolean"
        },
        "ResourcePath": {
          "type": "string"
        },
        "ThrottlingBurstLimit": {
          "type": "number"
        },
        "ThrottlingRateLimit": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Deployment.StageDescription": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSetting": {
          "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting"
        },
        "CacheClusterEnabled": {
          "type": "boolean"
        },
        "CacheClusterSize": {
          "type": "string"
        },
        "CacheDataEncrypted": {
          "type": "boolean"
        },
        "CacheTtlInSeconds": {
          "type": "number"
        },
        "CachingEnabled": {
          "type": "boolean"
        },
        "CanarySetting": {
          "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting"
        },
        "ClientCertificateId": {
          "type": "string"
        },
        "DataTraceEnabled": {
          "type": "boolean"
        },
        "Description": {
          "type": "string"
        },
        "DocumentationVersion": {
          "type": "string"
        },
        "LoggingLevel": {
          "type": "string"
        },
        "MethodSettings": {
          "items": {
            "$ref": "#/definitions/AWS::ApiGateway::Deployment.MethodSetting"
          },
          "type": "array"
        },
        "MetricsEnabled": {
          "type": "boolean"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "ThrottlingBurstLimit": {
          "type": "number"
        },
        "ThrottlingRateLimit": {
          "type": "number"
        },
        "TracingEnabled": {
          "type": "boolean"
        },
        "Variables": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::DocumentationPart": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Location": {
              "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location"
            },
            "Properties": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            }
          },
          "required": ["Location", "Properties", "RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::DocumentationPart"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::DocumentationPart.Location": {
      "additionalProperties": false,
      "properties": {
        "Method": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::DocumentationVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DocumentationVersion": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            }
          },
          "required": ["DocumentationVersion", "RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::DocumentationVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::DomainName": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateArn": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "EndpointConfiguration": {
              "$ref": "#/definitions/AWS::ApiGateway::DomainName.EndpointConfiguration"
            },
            "MutualTlsAuthentication": {
              "$ref": "#/definitions/AWS::ApiGateway::DomainName.MutualTlsAuthentication"
            },
            "OwnershipVerificationCertificateArn": {
              "type": "string"
            },
            "RegionalCertificateArn": {
              "type": "string"
            },
            "SecurityPolicy": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::DomainName"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::DomainName.EndpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Types": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::DomainName.MutualTlsAuthentication": {
      "additionalProperties": false,
      "properties": {
        "TruststoreUri": {
          "type": "string"
        },
        "TruststoreVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::GatewayResponse": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResponseParameters": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ResponseTemplates": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ResponseType": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            },
            "StatusCode": {
              "type": "string"
            }
          },
          "required": ["ResponseType", "RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::GatewayResponse"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::Method": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiKeyRequired": {
              "type": "boolean"
            },
            "AuthorizationScopes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AuthorizationType": {
              "type": "string"
            },
            "AuthorizerId": {
              "type": "string"
            },
            "HttpMethod": {
              "type": "string"
            },
            "Integration": {
              "$ref": "#/definitions/AWS::ApiGateway::Method.Integration"
            },
            "MethodResponses": {
              "items": {
                "$ref": "#/definitions/AWS::ApiGateway::Method.MethodResponse"
              },
              "type": "array"
            },
            "OperationName": {
              "type": "string"
            },
            "RequestModels": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "RequestParameters": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "RequestValidatorId": {
              "type": "string"
            },
            "ResourceId": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            }
          },
          "required": ["HttpMethod", "ResourceId", "RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Method"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::Method.Integration": {
      "additionalProperties": false,
      "properties": {
        "CacheKeyParameters": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CacheNamespace": {
          "type": "string"
        },
        "ConnectionId": {
          "type": "string"
        },
        "ConnectionType": {
          "type": "string"
        },
        "ContentHandling": {
          "type": "string"
        },
        "Credentials": {
          "type": "string"
        },
        "IntegrationHttpMethod": {
          "type": "string"
        },
        "IntegrationResponses": {
          "items": {
            "$ref": "#/definitions/AWS::ApiGateway::Method.IntegrationResponse"
          },
          "type": "array"
        },
        "PassthroughBehavior": {
          "type": "string"
        },
        "RequestParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "RequestTemplates": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "TimeoutInMillis": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Method.IntegrationResponse": {
      "additionalProperties": false,
      "properties": {
        "ContentHandling": {
          "type": "string"
        },
        "ResponseParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ResponseTemplates": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "SelectionPattern": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ApiGateway::Method.MethodResponse": {
      "additionalProperties": false,
      "properties": {
        "ResponseModels": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ResponseParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ApiGateway::Model": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContentType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            },
            "Schema": {
              "type": "object"
            }
          },
          "required": ["RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Model"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::RequestValidator": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            },
            "ValidateRequestBody": {
              "type": "boolean"
            },
            "ValidateRequestParameters": {
              "type": "boolean"
            }
          },
          "required": ["RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::RequestValidator"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ParentId": {
              "type": "string"
            },
            "PathPart": {
              "type": "string"
            },
            "RestApiId": {
              "type": "string"
            }
          },
          "required": ["ParentId", "PathPart", "RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Resource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::RestApi": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiKeySourceType": {
              "type": "string"
            },
            "BinaryMediaTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Body": {
              "type": "object"
            },
            "BodyS3Location": {
              "$ref": "#/definitions/AWS::ApiGateway::RestApi.S3Location"
            },
            "CloneFrom": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisableExecuteApiEndpoint": {
              "type": "boolean"
            },
            "EndpointConfiguration": {
              "$ref": "#/definitions/AWS::ApiGateway::RestApi.EndpointConfiguration"
            },
            "FailOnWarnings": {
              "type": "boolean"
            },
            "MinimumCompressionSize": {
              "type": "number"
            },
            "Mode": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Policy": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::RestApi"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::RestApi.EndpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Types": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcEndpointIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::RestApi.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "ETag": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Stage": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessLogSetting": {
              "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting"
            },
            "CacheClusterEnabled": {
              "type": "boolean"
            },
            "CacheClusterSize": {
              "type": "string"
            },
            "CanarySetting": {
              "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting"
            },
            "ClientCertificateId": {
              "type": "string"
            },
            "DeploymentId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DocumentationVersion": {
              "type": "string"
            },
            "MethodSettings": {
              "items": {
                "$ref": "#/definitions/AWS::ApiGateway::Stage.MethodSetting"
              },
              "type": "array"
            },
            "RestApiId": {
              "type": "string"
            },
            "StageName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TracingEnabled": {
              "type": "boolean"
            },
            "Variables": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["RestApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::Stage"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::Stage.AccessLogSetting": {
      "additionalProperties": false,
      "properties": {
        "DestinationArn": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Stage.CanarySetting": {
      "additionalProperties": false,
      "properties": {
        "DeploymentId": {
          "type": "string"
        },
        "PercentTraffic": {
          "type": "number"
        },
        "StageVariableOverrides": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "UseStageCache": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::Stage.MethodSetting": {
      "additionalProperties": false,
      "properties": {
        "CacheDataEncrypted": {
          "type": "boolean"
        },
        "CacheTtlInSeconds": {
          "type": "number"
        },
        "CachingEnabled": {
          "type": "boolean"
        },
        "DataTraceEnabled": {
          "type": "boolean"
        },
        "HttpMethod": {
          "type": "string"
        },
        "LoggingLevel": {
          "type": "string"
        },
        "MetricsEnabled": {
          "type": "boolean"
        },
        "ResourcePath": {
          "type": "string"
        },
        "ThrottlingBurstLimit": {
          "type": "number"
        },
        "ThrottlingRateLimit": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::UsagePlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiStages": {
              "items": {
                "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ApiStage"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Quota": {
              "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.QuotaSettings"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Throttle": {
              "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings"
            },
            "UsagePlanName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::UsagePlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGateway::UsagePlan.ApiStage": {
      "additionalProperties": false,
      "properties": {
        "ApiId": {
          "type": "string"
        },
        "Stage": {
          "type": "string"
        },
        "Throttle": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::UsagePlan.QuotaSettings": {
      "additionalProperties": false,
      "properties": {
        "Limit": {
          "type": "number"
        },
        "Offset": {
          "type": "number"
        },
        "Period": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::UsagePlan.ThrottleSettings": {
      "additionalProperties": false,
      "properties": {
        "BurstLimit": {
          "type": "number"
        },
        "RateLimit": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGateway::UsagePlanKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "KeyId": {
              "type": "string"
            },
            "KeyType": {
              "type": "string"
            },
            "UsagePlanId": {
              "type": "string"
            }
          },
          "required": ["KeyId", "KeyType", "UsagePlanId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::UsagePlanKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGateway::VpcLink": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Name", "TargetArns"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGateway::VpcLink"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Api": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiKeySelectionExpression": {
              "type": "string"
            },
            "BasePath": {
              "type": "string"
            },
            "Body": {
              "type": "object"
            },
            "BodyS3Location": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Api.BodyS3Location"
            },
            "CorsConfiguration": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Api.Cors"
            },
            "CredentialsArn": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisableExecuteApiEndpoint": {
              "type": "boolean"
            },
            "DisableSchemaValidation": {
              "type": "boolean"
            },
            "FailOnWarnings": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "ProtocolType": {
              "type": "string"
            },
            "RouteKey": {
              "type": "string"
            },
            "RouteSelectionExpression": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Target": {
              "type": "string"
            },
            "Version": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Api"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Api.BodyS3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Etag": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::Api.Cors": {
      "additionalProperties": false,
      "properties": {
        "AllowCredentials": {
          "type": "boolean"
        },
        "AllowHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowOrigins": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExposeHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxAge": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "Integration": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides"
            },
            "Route": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides"
            },
            "Stage": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides"
            }
          },
          "required": ["ApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::ApiGatewayManagedOverrides"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings": {
      "additionalProperties": false,
      "properties": {
        "DestinationArn": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "IntegrationMethod": {
          "type": "string"
        },
        "PayloadFormatVersion": {
          "type": "string"
        },
        "TimeoutInMillis": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AuthorizationType": {
          "type": "string"
        },
        "AuthorizerId": {
          "type": "string"
        },
        "OperationName": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings": {
      "additionalProperties": false,
      "properties": {
        "DataTraceEnabled": {
          "type": "boolean"
        },
        "DetailedMetricsEnabled": {
          "type": "boolean"
        },
        "LoggingLevel": {
          "type": "string"
        },
        "ThrottlingBurstLimit": {
          "type": "number"
        },
        "ThrottlingRateLimit": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSettings": {
          "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings"
        },
        "AutoDeploy": {
          "type": "boolean"
        },
        "DefaultRouteSettings": {
          "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings"
        },
        "Description": {
          "type": "string"
        },
        "RouteSettings": {
          "type": "object"
        },
        "StageVariables": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::ApiMapping": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ApiMappingKey": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "Stage": {
              "type": "string"
            }
          },
          "required": ["ApiId", "DomainName", "Stage"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::ApiMapping"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Authorizer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "AuthorizerCredentialsArn": {
              "type": "string"
            },
            "AuthorizerPayloadFormatVersion": {
              "type": "string"
            },
            "AuthorizerResultTtlInSeconds": {
              "type": "number"
            },
            "AuthorizerType": {
              "type": "string"
            },
            "AuthorizerUri": {
              "type": "string"
            },
            "EnableSimpleResponses": {
              "type": "boolean"
            },
            "IdentitySource": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "IdentityValidationExpression": {
              "type": "string"
            },
            "JwtConfiguration": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer.JWTConfiguration"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["ApiId", "AuthorizerType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Authorizer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Authorizer.JWTConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Audience": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Issuer": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::Deployment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "StageName": {
              "type": "string"
            }
          },
          "required": ["ApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Deployment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::DomainName": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainName": {
              "type": "string"
            },
            "DomainNameConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.DomainNameConfiguration"
              },
              "type": "array"
            },
            "MutualTlsAuthentication": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::DomainName"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::DomainName.DomainNameConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "CertificateName": {
          "type": "string"
        },
        "EndpointType": {
          "type": "string"
        },
        "OwnershipVerificationCertificateArn": {
          "type": "string"
        },
        "SecurityPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication": {
      "additionalProperties": false,
      "properties": {
        "TruststoreUri": {
          "type": "string"
        },
        "TruststoreVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::Integration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ConnectionId": {
              "type": "string"
            },
            "ConnectionType": {
              "type": "string"
            },
            "ContentHandlingStrategy": {
              "type": "string"
            },
            "CredentialsArn": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "IntegrationMethod": {
              "type": "string"
            },
            "IntegrationSubtype": {
              "type": "string"
            },
            "IntegrationType": {
              "type": "string"
            },
            "IntegrationUri": {
              "type": "string"
            },
            "PassthroughBehavior": {
              "type": "string"
            },
            "PayloadFormatVersion": {
              "type": "string"
            },
            "RequestParameters": {
              "type": "object"
            },
            "RequestTemplates": {
              "type": "object"
            },
            "ResponseParameters": {
              "type": "object"
            },
            "TemplateSelectionExpression": {
              "type": "string"
            },
            "TimeoutInMillis": {
              "type": "number"
            },
            "TlsConfig": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.TlsConfig"
            }
          },
          "required": ["ApiId", "IntegrationType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Integration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Integration.ResponseParameter": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        }
      },
      "required": ["Destination", "Source"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Integration.ResponseParameterList": {
      "additionalProperties": false,
      "properties": {
        "ResponseParameters": {
          "items": {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.ResponseParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::Integration.TlsConfig": {
      "additionalProperties": false,
      "properties": {
        "ServerNameToVerify": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::IntegrationResponse": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ContentHandlingStrategy": {
              "type": "string"
            },
            "IntegrationId": {
              "type": "string"
            },
            "IntegrationResponseKey": {
              "type": "string"
            },
            "ResponseParameters": {
              "type": "object"
            },
            "ResponseTemplates": {
              "type": "object"
            },
            "TemplateSelectionExpression": {
              "type": "string"
            }
          },
          "required": ["ApiId", "IntegrationId", "IntegrationResponseKey"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::IntegrationResponse"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Model": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ContentType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Schema": {
              "type": "object"
            }
          },
          "required": ["ApiId", "Name", "Schema"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Model"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Route": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ApiKeyRequired": {
              "type": "boolean"
            },
            "AuthorizationScopes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AuthorizationType": {
              "type": "string"
            },
            "AuthorizerId": {
              "type": "string"
            },
            "ModelSelectionExpression": {
              "type": "string"
            },
            "OperationName": {
              "type": "string"
            },
            "RequestModels": {
              "type": "object"
            },
            "RequestParameters": {
              "type": "object"
            },
            "RouteKey": {
              "type": "string"
            },
            "RouteResponseSelectionExpression": {
              "type": "string"
            },
            "Target": {
              "type": "string"
            }
          },
          "required": ["ApiId", "RouteKey"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Route"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Route.ParameterConstraints": {
      "additionalProperties": false,
      "properties": {
        "Required": {
          "type": "boolean"
        }
      },
      "required": ["Required"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::RouteResponse": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ModelSelectionExpression": {
              "type": "string"
            },
            "ResponseModels": {
              "type": "object"
            },
            "ResponseParameters": {
              "type": "object"
            },
            "RouteId": {
              "type": "string"
            },
            "RouteResponseKey": {
              "type": "string"
            }
          },
          "required": ["ApiId", "RouteId", "RouteResponseKey"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::RouteResponse"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": {
      "additionalProperties": false,
      "properties": {
        "Required": {
          "type": "boolean"
        }
      },
      "required": ["Required"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Stage": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessLogSettings": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings"
            },
            "AccessPolicyId": {
              "type": "string"
            },
            "ApiId": {
              "type": "string"
            },
            "AutoDeploy": {
              "type": "boolean"
            },
            "ClientCertificateId": {
              "type": "string"
            },
            "DefaultRouteSettings": {
              "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings"
            },
            "DeploymentId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "RouteSettings": {
              "type": "object"
            },
            "StageName": {
              "type": "string"
            },
            "StageVariables": {
              "type": "object"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["ApiId", "StageName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::Stage"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApiGatewayV2::Stage.AccessLogSettings": {
      "additionalProperties": false,
      "properties": {
        "DestinationArn": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::Stage.RouteSettings": {
      "additionalProperties": false,
      "properties": {
        "DataTraceEnabled": {
          "type": "boolean"
        },
        "DetailedMetricsEnabled": {
          "type": "boolean"
        },
        "LoggingLevel": {
          "type": "string"
        },
        "ThrottlingBurstLimit": {
          "type": "number"
        },
        "ThrottlingRateLimit": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApiGatewayV2::VpcLink": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Name", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApiGatewayV2::VpcLink"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::Application.Tags"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::Application.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::ConfigurationProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "LocationUri": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RetrievalRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Tags"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            },
            "Validators": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators"
              },
              "type": "array"
            }
          },
          "required": ["ApplicationId", "LocationUri", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::ConfigurationProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::ConfigurationProfile.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::ConfigurationProfile.Validators": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::Deployment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "ConfigurationProfileId": {
              "type": "string"
            },
            "ConfigurationVersion": {
              "type": "string"
            },
            "DeploymentStrategyId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EnvironmentId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::Deployment.Tags"
              },
              "type": "array"
            }
          },
          "required": [
            "ApplicationId",
            "ConfigurationProfileId",
            "ConfigurationVersion",
            "DeploymentStrategyId",
            "EnvironmentId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::Deployment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::Deployment.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::DeploymentStrategy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeploymentDurationInMinutes": {
              "type": "number"
            },
            "Description": {
              "type": "string"
            },
            "FinalBakeTimeInMinutes": {
              "type": "number"
            },
            "GrowthFactor": {
              "type": "number"
            },
            "GrowthType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ReplicateTo": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy.Tags"
              },
              "type": "array"
            }
          },
          "required": [
            "DeploymentDurationInMinutes",
            "GrowthFactor",
            "Name",
            "ReplicateTo"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::DeploymentStrategy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::DeploymentStrategy.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Monitors": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::Environment.Monitors"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AppConfig::Environment.Tags"
              },
              "type": "array"
            }
          },
          "required": ["ApplicationId", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppConfig::Environment.Monitors": {
      "additionalProperties": false,
      "properties": {
        "AlarmArn": {
          "type": "string"
        },
        "AlarmRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::Environment.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppConfig::HostedConfigurationVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "ConfigurationProfileId": {
              "type": "string"
            },
            "Content": {
              "type": "string"
            },
            "ContentType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "LatestVersionNumber": {
              "type": "number"
            }
          },
          "required": [
            "ApplicationId",
            "ConfigurationProfileId",
            "Content",
            "ContentType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppConfig::HostedConfigurationVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppFlow::Connector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectorLabel": {
              "type": "string"
            },
            "ConnectorProvisioningConfig": {
              "$ref": "#/definitions/AWS::AppFlow::Connector.ConnectorProvisioningConfig"
            },
            "ConnectorProvisioningType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            }
          },
          "required": [
            "ConnectorProvisioningConfig",
            "ConnectorProvisioningType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppFlow::Connector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppFlow::Connector.ConnectorProvisioningConfig": {
      "additionalProperties": false,
      "properties": {
        "Lambda": {
          "$ref": "#/definitions/AWS::AppFlow::Connector.LambdaConnectorProvisioningConfig"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Connector.LambdaConnectorProvisioningConfig": {
      "additionalProperties": false,
      "properties": {
        "LambdaArn": {
          "type": "string"
        }
      },
      "required": ["LambdaArn"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionMode": {
              "type": "string"
            },
            "ConnectorLabel": {
              "type": "string"
            },
            "ConnectorProfileConfig": {
              "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig"
            },
            "ConnectorProfileName": {
              "type": "string"
            },
            "ConnectorType": {
              "type": "string"
            },
            "KMSArn": {
              "type": "string"
            }
          },
          "required": [
            "ConnectionMode",
            "ConnectorProfileName",
            "ConnectorType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppFlow::ConnectorProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiKey": {
          "type": "string"
        },
        "SecretKey": {
          "type": "string"
        }
      },
      "required": ["ApiKey", "SecretKey"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ApiKeyCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiKey": {
          "type": "string"
        },
        "ApiSecretKey": {
          "type": "string"
        }
      },
      "required": ["ApiKey"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.BasicAuthCredentials": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest": {
      "additionalProperties": false,
      "properties": {
        "AuthCode": {
          "type": "string"
        },
        "RedirectUri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig": {
      "additionalProperties": false,
      "properties": {
        "ConnectorProfileCredentials": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials"
        },
        "ConnectorProfileProperties": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "Amplitude": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials"
        },
        "CustomConnector": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials"
        },
        "Datadog": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials"
        },
        "Dynatrace": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials"
        },
        "GoogleAnalytics": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials"
        },
        "InforNexus": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials"
        },
        "Marketo": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials"
        },
        "Redshift": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials"
        },
        "SAPOData": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials"
        },
        "Salesforce": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials"
        },
        "ServiceNow": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials"
        },
        "Singular": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials"
        },
        "Slack": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials"
        },
        "Snowflake": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials"
        },
        "Trendmicro": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials"
        },
        "Veeva": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials"
        },
        "Zendesk": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "CustomConnector": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties"
        },
        "Datadog": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties"
        },
        "Dynatrace": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties"
        },
        "InforNexus": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties"
        },
        "Marketo": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties"
        },
        "Redshift": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties"
        },
        "SAPOData": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties"
        },
        "Salesforce": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties"
        },
        "ServiceNow": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties"
        },
        "Slack": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties"
        },
        "Snowflake": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties"
        },
        "Veeva": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties"
        },
        "Zendesk": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.CustomAuthCredentials": {
      "additionalProperties": false,
      "properties": {
        "CredentialsMap": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "CustomAuthenticationType": {
          "type": "string"
        }
      },
      "required": ["CustomAuthenticationType"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiKey": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ApiKeyCredentials"
        },
        "AuthenticationType": {
          "type": "string"
        },
        "Basic": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials"
        },
        "Custom": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomAuthCredentials"
        },
        "Oauth2": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuth2Credentials"
        }
      },
      "required": ["AuthenticationType"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "OAuth2Properties": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuth2Properties"
        },
        "ProfileProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiKey": {
          "type": "string"
        },
        "ApplicationKey": {
          "type": "string"
        }
      },
      "required": ["ApiKey", "ApplicationKey"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiToken": {
          "type": "string"
        }
      },
      "required": ["ApiToken"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "required": ["ClientId", "ClientSecret"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessKeyId": {
          "type": "string"
        },
        "Datakey": {
          "type": "string"
        },
        "SecretAccessKey": {
          "type": "string"
        },
        "UserId": {
          "type": "string"
        }
      },
      "required": ["AccessKeyId", "Datakey", "SecretAccessKey", "UserId"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        }
      },
      "required": ["ClientId", "ClientSecret"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.OAuth2Credentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "OAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.OAuth2Properties": {
      "additionalProperties": false,
      "properties": {
        "OAuth2GrantType": {
          "type": "string"
        },
        "TokenUrl": {
          "type": "string"
        },
        "TokenUrlCustomProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.OAuthCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.OAuthProperties": {
      "additionalProperties": false,
      "properties": {
        "AuthCodeUrl": {
          "type": "string"
        },
        "OAuthScopes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TokenUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "ClusterIdentifier": {
          "type": "string"
        },
        "DataApiRoleArn": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DatabaseUrl": {
          "type": "string"
        },
        "IsRedshiftServerless": {
          "type": "boolean"
        },
        "RoleArn": {
          "type": "string"
        },
        "WorkgroupName": {
          "type": "string"
        }
      },
      "required": ["BucketName", "RoleArn"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "BasicAuthCredentials": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials"
        },
        "OAuthCredentials": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthCredentials"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "ApplicationHostUrl": {
          "type": "string"
        },
        "ApplicationServicePath": {
          "type": "string"
        },
        "ClientNumber": {
          "type": "string"
        },
        "LogonLanguage": {
          "type": "string"
        },
        "OAuthProperties": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties"
        },
        "PortNumber": {
          "type": "number"
        },
        "PrivateLinkServiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientCredentialsArn": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        },
        "isSandboxEnvironment": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiKey": {
          "type": "string"
        }
      },
      "required": ["ApiKey"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        }
      },
      "required": ["ClientId", "ClientSecret"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "AccountName": {
          "type": "string"
        },
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "PrivateLinkServiceName": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "Stage": {
          "type": "string"
        },
        "Warehouse": {
          "type": "string"
        }
      },
      "required": ["BucketName", "Stage", "Warehouse"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "ApiSecretKey": {
          "type": "string"
        }
      },
      "required": ["ApiSecretKey"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "ConnectorOAuthRequest": {
          "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
        }
      },
      "required": ["ClientId", "ClientSecret"],
      "type": "object"
    },
    "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties": {
      "additionalProperties": false,
      "properties": {
        "InstanceUrl": {
          "type": "string"
        }
      },
      "required": ["InstanceUrl"],
      "type": "object"
    },
    "AWS::AppFlow::Flow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DestinationFlowConfigList": {
              "items": {
                "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationFlowConfig"
              },
              "type": "array"
            },
            "FlowName": {
              "type": "string"
            },
            "KMSArn": {
              "type": "string"
            },
            "MetadataCatalogConfig": {
              "$ref": "#/definitions/AWS::AppFlow::Flow.MetadataCatalogConfig"
            },
            "SourceFlowConfig": {
              "$ref": "#/definitions/AWS::AppFlow::Flow.SourceFlowConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Tasks": {
              "items": {
                "$ref": "#/definitions/AWS::AppFlow::Flow.Task"
              },
              "type": "array"
            },
            "TriggerConfig": {
              "$ref": "#/definitions/AWS::AppFlow::Flow.TriggerConfig"
            }
          },
          "required": [
            "DestinationFlowConfigList",
            "FlowName",
            "SourceFlowConfig",
            "Tasks",
            "TriggerConfig"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppFlow::Flow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.AggregationConfig": {
      "additionalProperties": false,
      "properties": {
        "AggregationType": {
          "type": "string"
        },
        "TargetFileSize": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.AmplitudeSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ConnectorOperator": {
      "additionalProperties": false,
      "properties": {
        "Amplitude": {
          "type": "string"
        },
        "CustomConnector": {
          "type": "string"
        },
        "Datadog": {
          "type": "string"
        },
        "Dynatrace": {
          "type": "string"
        },
        "GoogleAnalytics": {
          "type": "string"
        },
        "InforNexus": {
          "type": "string"
        },
        "Marketo": {
          "type": "string"
        },
        "S3": {
          "type": "string"
        },
        "SAPOData": {
          "type": "string"
        },
        "Salesforce": {
          "type": "string"
        },
        "ServiceNow": {
          "type": "string"
        },
        "Singular": {
          "type": "string"
        },
        "Slack": {
          "type": "string"
        },
        "Trendmicro": {
          "type": "string"
        },
        "Veeva": {
          "type": "string"
        },
        "Zendesk": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.CustomConnectorDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "CustomProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "EntityName": {
          "type": "string"
        },
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IdFieldNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WriteOperationType": {
          "type": "string"
        }
      },
      "required": ["EntityName"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.CustomConnectorSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "CustomProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "EntityName": {
          "type": "string"
        }
      },
      "required": ["EntityName"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.DatadogSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.DestinationConnectorProperties": {
      "additionalProperties": false,
      "properties": {
        "CustomConnector": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorDestinationProperties"
        },
        "EventBridge": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.EventBridgeDestinationProperties"
        },
        "LookoutMetrics": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.LookoutMetricsDestinationProperties"
        },
        "Marketo": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoDestinationProperties"
        },
        "Redshift": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.RedshiftDestinationProperties"
        },
        "S3": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.S3DestinationProperties"
        },
        "SAPOData": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataDestinationProperties"
        },
        "Salesforce": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceDestinationProperties"
        },
        "Snowflake": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SnowflakeDestinationProperties"
        },
        "Upsolver": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverDestinationProperties"
        },
        "Zendesk": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskDestinationProperties"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.DestinationFlowConfig": {
      "additionalProperties": false,
      "properties": {
        "ApiVersion": {
          "type": "string"
        },
        "ConnectorProfileName": {
          "type": "string"
        },
        "ConnectorType": {
          "type": "string"
        },
        "DestinationConnectorProperties": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationConnectorProperties"
        }
      },
      "required": ["ConnectorType", "DestinationConnectorProperties"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.DynatraceSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ErrorHandlingConfig": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "FailOnFirstError": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.EventBridgeDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.GlueDataCatalog": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "TablePrefix": {
          "type": "string"
        }
      },
      "required": ["DatabaseName", "RoleArn", "TablePrefix"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.IncrementalPullConfig": {
      "additionalProperties": false,
      "properties": {
        "DatetimeTypeFieldName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.InforNexusSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.LookoutMetricsDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.MarketoDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.MarketoSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.MetadataCatalogConfig": {
      "additionalProperties": false,
      "properties": {
        "GlueDataCatalog": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.GlueDataCatalog"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.PrefixConfig": {
      "additionalProperties": false,
      "properties": {
        "PathPrefixHierarchy": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PrefixFormat": {
          "type": "string"
        },
        "PrefixType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.RedshiftDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketPrefix": {
          "type": "string"
        },
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IntermediateBucketName": {
          "type": "string"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["IntermediateBucketName", "Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.S3DestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "S3OutputFormatConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.S3OutputFormatConfig"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.S3InputFormatConfig": {
      "additionalProperties": false,
      "properties": {
        "S3InputFileType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.S3OutputFormatConfig": {
      "additionalProperties": false,
      "properties": {
        "AggregationConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig"
        },
        "FileType": {
          "type": "string"
        },
        "PrefixConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig"
        },
        "PreserveSourceDataTyping": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.S3SourceProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "S3InputFormatConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig"
        }
      },
      "required": ["BucketName", "BucketPrefix"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SAPODataDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IdFieldNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ObjectPath": {
          "type": "string"
        },
        "SuccessResponseHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SuccessResponseHandlingConfig"
        },
        "WriteOperationType": {
          "type": "string"
        }
      },
      "required": ["ObjectPath"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SAPODataSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "ObjectPath": {
          "type": "string"
        }
      },
      "required": ["ObjectPath"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SalesforceDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "DataTransferApi": {
          "type": "string"
        },
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IdFieldNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Object": {
          "type": "string"
        },
        "WriteOperationType": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SalesforceSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "DataTransferApi": {
          "type": "string"
        },
        "EnableDynamicFieldUpdate": {
          "type": "boolean"
        },
        "IncludeDeletedRecords": {
          "type": "boolean"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ScheduledTriggerProperties": {
      "additionalProperties": false,
      "properties": {
        "DataPullMode": {
          "type": "string"
        },
        "FirstExecutionFrom": {
          "type": "number"
        },
        "FlowErrorDeactivationThreshold": {
          "type": "number"
        },
        "ScheduleEndTime": {
          "type": "number"
        },
        "ScheduleExpression": {
          "type": "string"
        },
        "ScheduleOffset": {
          "type": "number"
        },
        "ScheduleStartTime": {
          "type": "number"
        },
        "TimeZone": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ServiceNowSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SingularSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SlackSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SnowflakeDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketPrefix": {
          "type": "string"
        },
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IntermediateBucketName": {
          "type": "string"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["IntermediateBucketName", "Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SourceConnectorProperties": {
      "additionalProperties": false,
      "properties": {
        "Amplitude": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.AmplitudeSourceProperties"
        },
        "CustomConnector": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorSourceProperties"
        },
        "Datadog": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.DatadogSourceProperties"
        },
        "Dynatrace": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.DynatraceSourceProperties"
        },
        "GoogleAnalytics": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties"
        },
        "InforNexus": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.InforNexusSourceProperties"
        },
        "Marketo": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoSourceProperties"
        },
        "S3": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties"
        },
        "SAPOData": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties"
        },
        "Salesforce": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties"
        },
        "ServiceNow": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ServiceNowSourceProperties"
        },
        "Singular": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SingularSourceProperties"
        },
        "Slack": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SlackSourceProperties"
        },
        "Trendmicro": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.TrendmicroSourceProperties"
        },
        "Veeva": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.VeevaSourceProperties"
        },
        "Zendesk": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskSourceProperties"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.SourceFlowConfig": {
      "additionalProperties": false,
      "properties": {
        "ApiVersion": {
          "type": "string"
        },
        "ConnectorProfileName": {
          "type": "string"
        },
        "ConnectorType": {
          "type": "string"
        },
        "IncrementalPullConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.IncrementalPullConfig"
        },
        "SourceConnectorProperties": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.SourceConnectorProperties"
        }
      },
      "required": ["ConnectorType", "SourceConnectorProperties"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.SuccessResponseHandlingConfig": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppFlow::Flow.Task": {
      "additionalProperties": false,
      "properties": {
        "ConnectorOperator": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ConnectorOperator"
        },
        "DestinationField": {
          "type": "string"
        },
        "SourceFields": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TaskProperties": {
          "items": {
            "$ref": "#/definitions/AWS::AppFlow::Flow.TaskPropertiesObject"
          },
          "type": "array"
        },
        "TaskType": {
          "type": "string"
        }
      },
      "required": ["SourceFields", "TaskType"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.TaskPropertiesObject": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.TrendmicroSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.TriggerConfig": {
      "additionalProperties": false,
      "properties": {
        "TriggerProperties": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties"
        },
        "TriggerType": {
          "type": "string"
        }
      },
      "required": ["TriggerType"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.UpsolverDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "S3OutputFormatConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig"
        }
      },
      "required": ["BucketName", "S3OutputFormatConfig"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig": {
      "additionalProperties": false,
      "properties": {
        "AggregationConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig"
        },
        "FileType": {
          "type": "string"
        },
        "PrefixConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig"
        }
      },
      "required": ["PrefixConfig"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.VeevaSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "DocumentType": {
          "type": "string"
        },
        "IncludeAllVersions": {
          "type": "boolean"
        },
        "IncludeRenditions": {
          "type": "boolean"
        },
        "IncludeSourceFiles": {
          "type": "boolean"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ZendeskDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "ErrorHandlingConfig": {
          "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig"
        },
        "IdFieldNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Object": {
          "type": "string"
        },
        "WriteOperationType": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppFlow::Flow.ZendeskSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::AppIntegrations::DataIntegration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "KmsKey": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ScheduleConfig": {
              "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration.ScheduleConfig"
            },
            "SourceURI": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KmsKey", "Name", "ScheduleConfig", "SourceURI"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppIntegrations::DataIntegration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppIntegrations::DataIntegration.ScheduleConfig": {
      "additionalProperties": false,
      "properties": {
        "FirstExecutionFrom": {
          "type": "string"
        },
        "Object": {
          "type": "string"
        },
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "required": ["FirstExecutionFrom", "Object", "ScheduleExpression"],
      "type": "object"
    },
    "AWS::AppIntegrations::EventIntegration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EventBridgeBus": {
              "type": "string"
            },
            "EventFilter": {
              "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.EventFilter"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["EventBridgeBus", "EventFilter", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppIntegrations::EventIntegration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppIntegrations::EventIntegration.EventFilter": {
      "additionalProperties": false,
      "properties": {
        "Source": {
          "type": "string"
        }
      },
      "required": ["Source"],
      "type": "object"
    },
    "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation": {
      "additionalProperties": false,
      "properties": {
        "ClientAssociationMetadata": {
          "items": {
            "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata"
          },
          "type": "array"
        },
        "ClientId": {
          "type": "string"
        },
        "EventBridgeRuleName": {
          "type": "string"
        },
        "EventIntegrationAssociationArn": {
          "type": "string"
        },
        "EventIntegrationAssociationId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppIntegrations::EventIntegration.Metadata": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GatewayRouteName": {
              "type": "string"
            },
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualGatewayName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec", "VirtualGatewayName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::GatewayRoute"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Suffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite": {
      "additionalProperties": false,
      "properties": {
        "DefaultTargetHostname": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Range": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch"
        },
        "Regex": {
          "type": "string"
        },
        "Suffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch": {
      "additionalProperties": false,
      "properties": {
        "End": {
          "type": "number"
        },
        "Start": {
          "type": "number"
        }
      },
      "required": ["End", "Start"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteSpec": {
      "additionalProperties": false,
      "properties": {
        "GrpcRoute": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRoute"
        },
        "Http2Route": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute"
        },
        "HttpRoute": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute"
        },
        "Priority": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        },
        "VirtualService": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService"
        }
      },
      "required": ["VirtualService"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService": {
      "additionalProperties": false,
      "properties": {
        "VirtualServiceName": {
          "type": "string"
        }
      },
      "required": ["VirtualServiceName"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GrpcGatewayRoute": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch"
        }
      },
      "required": ["Action", "Match"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction": {
      "additionalProperties": false,
      "properties": {
        "Rewrite": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite"
        },
        "Target": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget"
        }
      },
      "required": ["Target"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch"
        },
        "Metadata": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata"
          },
          "type": "array"
        },
        "Port": {
          "type": "number"
        },
        "ServiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata": {
      "additionalProperties": false,
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRoute": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch"
        }
      },
      "required": ["Action", "Match"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction": {
      "additionalProperties": false,
      "properties": {
        "Rewrite": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite"
        },
        "Target": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget"
        }
      },
      "required": ["Target"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader": {
      "additionalProperties": false,
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Range": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch"
        },
        "Regex": {
          "type": "string"
        },
        "Suffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch": {
      "additionalProperties": false,
      "properties": {
        "Headers": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader"
          },
          "type": "array"
        },
        "Hostname": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch"
        },
        "Method": {
          "type": "string"
        },
        "Path": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch"
        },
        "Port": {
          "type": "number"
        },
        "Prefix": {
          "type": "string"
        },
        "QueryParameters": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.QueryParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite": {
      "additionalProperties": false,
      "properties": {
        "DefaultPrefix": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite"
        },
        "Path": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite"
        },
        "Prefix": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpPathMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Regex": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::GatewayRoute.QueryParameter": {
      "additionalProperties": false,
      "properties": {
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::Mesh": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::Mesh"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AppMesh::Mesh.EgressFilter": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AppMesh::Mesh.MeshServiceDiscovery": {
      "additionalProperties": false,
      "properties": {
        "IpPreference": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Mesh.MeshSpec": {
      "additionalProperties": false,
      "properties": {
        "EgressFilter": {
          "$ref": "#/definitions/AWS::AppMesh::Mesh.EgressFilter"
        },
        "ServiceDiscovery": {
          "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshServiceDiscovery"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "RouteName": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::Route.RouteSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualRouterName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec", "VirtualRouterName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::Route"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::Route.Duration": {
      "additionalProperties": false,
      "properties": {
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Unit", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRetryPolicy": {
      "additionalProperties": false,
      "properties": {
        "GrpcRetryEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "HttpRetryEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxRetries": {
          "type": "number"
        },
        "PerRetryTimeout": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        },
        "TcpRetryEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["MaxRetries", "PerRetryTimeout"],
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRoute": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteAction"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMatch"
        },
        "RetryPolicy": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRetryPolicy"
        },
        "Timeout": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcTimeout"
        }
      },
      "required": ["Action", "Match"],
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRouteAction": {
      "additionalProperties": false,
      "properties": {
        "WeightedTargets": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget"
          },
          "type": "array"
        }
      },
      "required": ["WeightedTargets"],
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRouteMatch": {
      "additionalProperties": false,
      "properties": {
        "Metadata": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadata"
          },
          "type": "array"
        },
        "MethodName": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "ServiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRouteMetadata": {
      "additionalProperties": false,
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Range": {
          "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange"
        },
        "Regex": {
          "type": "string"
        },
        "Suffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.GrpcTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        },
        "PerRequest": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.HeaderMatchMethod": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Range": {
          "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange"
        },
        "Regex": {
          "type": "string"
        },
        "Suffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpPathMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        },
        "Regex": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpQueryParameterMatch": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpRetryPolicy": {
      "additionalProperties": false,
      "properties": {
        "HttpRetryEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxRetries": {
          "type": "number"
        },
        "PerRetryTimeout": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        },
        "TcpRetryEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["MaxRetries", "PerRetryTimeout"],
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpRoute": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteAction"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteMatch"
        },
        "RetryPolicy": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpRetryPolicy"
        },
        "Timeout": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpTimeout"
        }
      },
      "required": ["Action", "Match"],
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpRouteAction": {
      "additionalProperties": false,
      "properties": {
        "WeightedTargets": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget"
          },
          "type": "array"
        }
      },
      "required": ["WeightedTargets"],
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpRouteHeader": {
      "additionalProperties": false,
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HeaderMatchMethod"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpRouteMatch": {
      "additionalProperties": false,
      "properties": {
        "Headers": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteHeader"
          },
          "type": "array"
        },
        "Method": {
          "type": "string"
        },
        "Path": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch"
        },
        "Port": {
          "type": "number"
        },
        "Prefix": {
          "type": "string"
        },
        "QueryParameters": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.QueryParameter"
          },
          "type": "array"
        },
        "Scheme": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.HttpTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        },
        "PerRequest": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.MatchRange": {
      "additionalProperties": false,
      "properties": {
        "End": {
          "type": "number"
        },
        "Start": {
          "type": "number"
        }
      },
      "required": ["End", "Start"],
      "type": "object"
    },
    "AWS::AppMesh::Route.QueryParameter": {
      "additionalProperties": false,
      "properties": {
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpQueryParameterMatch"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::AppMesh::Route.RouteSpec": {
      "additionalProperties": false,
      "properties": {
        "GrpcRoute": {
          "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRoute"
        },
        "Http2Route": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute"
        },
        "HttpRoute": {
          "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute"
        },
        "Priority": {
          "type": "number"
        },
        "TcpRoute": {
          "$ref": "#/definitions/AWS::AppMesh::Route.TcpRoute"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.TcpRoute": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction"
        },
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch"
        },
        "Timeout": {
          "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::AppMesh::Route.TcpRouteAction": {
      "additionalProperties": false,
      "properties": {
        "WeightedTargets": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget"
          },
          "type": "array"
        }
      },
      "required": ["WeightedTargets"],
      "type": "object"
    },
    "AWS::AppMesh::Route.TcpRouteMatch": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.TcpTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::Route.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::Route.WeightedTarget": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        },
        "VirtualNode": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["VirtualNode", "Weight"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewaySpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualGatewayName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::VirtualGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.JsonFormatRef": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.LoggingFormat": {
      "additionalProperties": false,
      "properties": {
        "Json": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef"
          },
          "type": "array"
        },
        "Text": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.SubjectAlternativeNames": {
      "additionalProperties": false,
      "properties": {
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers"
        }
      },
      "required": ["Match"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults": {
      "additionalProperties": false,
      "properties": {
        "ClientPolicy": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy": {
      "additionalProperties": false,
      "properties": {
        "TLS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate"
        },
        "Enforce": {
          "type": "boolean"
        },
        "Ports": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Validation": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext"
        }
      },
      "required": ["Validation"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "GRPC": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool"
        },
        "HTTP": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool"
        },
        "HTTP2": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": {
      "additionalProperties": false,
      "properties": {
        "Format": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat"
        },
        "Path": {
          "type": "string"
        }
      },
      "required": ["Path"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxRequests": {
          "type": "number"
        }
      },
      "required": ["MaxRequests"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": {
      "additionalProperties": false,
      "properties": {
        "HealthyThreshold": {
          "type": "number"
        },
        "IntervalMillis": {
          "type": "number"
        },
        "Path": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "Protocol": {
          "type": "string"
        },
        "TimeoutMillis": {
          "type": "number"
        },
        "UnhealthyThreshold": {
          "type": "number"
        }
      },
      "required": [
        "HealthyThreshold",
        "IntervalMillis",
        "Protocol",
        "TimeoutMillis",
        "UnhealthyThreshold"
      ],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxRequests": {
          "type": "number"
        }
      },
      "required": ["MaxRequests"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxConnections": {
          "type": "number"
        },
        "MaxPendingRequests": {
          "type": "number"
        }
      },
      "required": ["MaxConnections"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": {
      "additionalProperties": false,
      "properties": {
        "ConnectionPool": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool"
        },
        "HealthCheck": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy"
        },
        "PortMapping": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping"
        },
        "TLS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls"
        }
      },
      "required": ["PortMapping"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate"
        },
        "Mode": {
          "type": "string"
        },
        "Validation": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext"
        }
      },
      "required": ["Certificate", "Mode"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate": {
      "additionalProperties": false,
      "properties": {
        "ACM": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate"
        },
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateChain": {
          "type": "string"
        },
        "PrivateKey": {
          "type": "string"
        }
      },
      "required": ["CertificateChain", "PrivateKey"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate": {
      "additionalProperties": false,
      "properties": {
        "SecretName": {
          "type": "string"
        }
      },
      "required": ["SecretName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext": {
      "additionalProperties": false,
      "properties": {
        "SubjectAlternativeNames": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames"
        },
        "Trust": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust"
        }
      },
      "required": ["Trust"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayLogging": {
      "additionalProperties": false,
      "properties": {
        "AccessLog": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "required": ["Port", "Protocol"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewaySpec": {
      "additionalProperties": false,
      "properties": {
        "BackendDefaults": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults"
        },
        "Listeners": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListener"
          },
          "type": "array"
        },
        "Logging": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayLogging"
        }
      },
      "required": ["Listeners"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext": {
      "additionalProperties": false,
      "properties": {
        "SubjectAlternativeNames": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames"
        },
        "Trust": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust"
        }
      },
      "required": ["Trust"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust": {
      "additionalProperties": false,
      "properties": {
        "CertificateAuthorityArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CertificateAuthorityArns"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust": {
      "additionalProperties": false,
      "properties": {
        "CertificateChain": {
          "type": "string"
        }
      },
      "required": ["CertificateChain"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust": {
      "additionalProperties": false,
      "properties": {
        "SecretName": {
          "type": "string"
        }
      },
      "required": ["SecretName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust": {
      "additionalProperties": false,
      "properties": {
        "ACM": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust"
        },
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualNodeName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::VirtualNode"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.AccessLog": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.FileAccessLog"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute"
          },
          "type": "array"
        },
        "IpPreference": {
          "type": "string"
        },
        "NamespaceName": {
          "type": "string"
        },
        "ServiceName": {
          "type": "string"
        }
      },
      "required": ["NamespaceName", "ServiceName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.Backend": {
      "additionalProperties": false,
      "properties": {
        "VirtualService": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualServiceBackend"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.BackendDefaults": {
      "additionalProperties": false,
      "properties": {
        "ClientPolicy": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ClientPolicy": {
      "additionalProperties": false,
      "properties": {
        "TLS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicyTls"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ClientPolicyTls": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientTlsCertificate"
        },
        "Enforce": {
          "type": "boolean"
        },
        "Ports": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Validation": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContext"
        }
      },
      "required": ["Validation"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ClientTlsCertificate": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.DnsServiceDiscovery": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "type": "string"
        },
        "IpPreference": {
          "type": "string"
        },
        "ResponseType": {
          "type": "string"
        }
      },
      "required": ["Hostname"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.Duration": {
      "additionalProperties": false,
      "properties": {
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Unit", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.FileAccessLog": {
      "additionalProperties": false,
      "properties": {
        "Format": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat"
        },
        "Path": {
          "type": "string"
        }
      },
      "required": ["Path"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.GrpcTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        },
        "PerRequest": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.HealthCheck": {
      "additionalProperties": false,
      "properties": {
        "HealthyThreshold": {
          "type": "number"
        },
        "IntervalMillis": {
          "type": "number"
        },
        "Path": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "Protocol": {
          "type": "string"
        },
        "TimeoutMillis": {
          "type": "number"
        },
        "UnhealthyThreshold": {
          "type": "number"
        }
      },
      "required": [
        "HealthyThreshold",
        "IntervalMillis",
        "Protocol",
        "TimeoutMillis",
        "UnhealthyThreshold"
      ],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.HttpTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        },
        "PerRequest": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.JsonFormatRef": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.Listener": {
      "additionalProperties": false,
      "properties": {
        "ConnectionPool": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool"
        },
        "HealthCheck": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck"
        },
        "OutlierDetection": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection"
        },
        "PortMapping": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping"
        },
        "TLS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTls"
        },
        "Timeout": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTimeout"
        }
      },
      "required": ["PortMapping"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTimeout": {
      "additionalProperties": false,
      "properties": {
        "GRPC": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.GrpcTimeout"
        },
        "HTTP": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout"
        },
        "HTTP2": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout"
        },
        "TCP": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TcpTimeout"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTls": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsCertificate"
        },
        "Mode": {
          "type": "string"
        },
        "Validation": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContext"
        }
      },
      "required": ["Certificate", "Mode"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsCertificate": {
      "additionalProperties": false,
      "properties": {
        "ACM": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate"
        },
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateChain": {
          "type": "string"
        },
        "PrivateKey": {
          "type": "string"
        }
      },
      "required": ["CertificateChain", "PrivateKey"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate": {
      "additionalProperties": false,
      "properties": {
        "SecretName": {
          "type": "string"
        }
      },
      "required": ["SecretName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsValidationContext": {
      "additionalProperties": false,
      "properties": {
        "SubjectAlternativeNames": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames"
        },
        "Trust": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust"
        }
      },
      "required": ["Trust"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust": {
      "additionalProperties": false,
      "properties": {
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.Logging": {
      "additionalProperties": false,
      "properties": {
        "AccessLog": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AccessLog"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.LoggingFormat": {
      "additionalProperties": false,
      "properties": {
        "Json": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef"
          },
          "type": "array"
        },
        "Text": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.OutlierDetection": {
      "additionalProperties": false,
      "properties": {
        "BaseEjectionDuration": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        },
        "Interval": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        },
        "MaxEjectionPercent": {
          "type": "number"
        },
        "MaxServerErrors": {
          "type": "number"
        }
      },
      "required": [
        "BaseEjectionDuration",
        "Interval",
        "MaxEjectionPercent",
        "MaxServerErrors"
      ],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.PortMapping": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "required": ["Port", "Protocol"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.ServiceDiscovery": {
      "additionalProperties": false,
      "properties": {
        "AWSCloudMap": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery"
        },
        "DNS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.DnsServiceDiscovery"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers": {
      "additionalProperties": false,
      "properties": {
        "Exact": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.SubjectAlternativeNames": {
      "additionalProperties": false,
      "properties": {
        "Match": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers"
        }
      },
      "required": ["Match"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TcpTimeout": {
      "additionalProperties": false,
      "properties": {
        "Idle": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TlsValidationContext": {
      "additionalProperties": false,
      "properties": {
        "SubjectAlternativeNames": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames"
        },
        "Trust": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextTrust"
        }
      },
      "required": ["Trust"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust": {
      "additionalProperties": false,
      "properties": {
        "CertificateAuthorityArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CertificateAuthorityArns"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust": {
      "additionalProperties": false,
      "properties": {
        "CertificateChain": {
          "type": "string"
        }
      },
      "required": ["CertificateChain"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust": {
      "additionalProperties": false,
      "properties": {
        "SecretName": {
          "type": "string"
        }
      },
      "required": ["SecretName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.TlsValidationContextTrust": {
      "additionalProperties": false,
      "properties": {
        "ACM": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust"
        },
        "File": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust"
        },
        "SDS": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "GRPC": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool"
        },
        "HTTP": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool"
        },
        "HTTP2": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool"
        },
        "TCP": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxRequests": {
          "type": "number"
        }
      },
      "required": ["MaxRequests"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxRequests": {
          "type": "number"
        }
      },
      "required": ["MaxRequests"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxConnections": {
          "type": "number"
        },
        "MaxPendingRequests": {
          "type": "number"
        }
      },
      "required": ["MaxConnections"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeSpec": {
      "additionalProperties": false,
      "properties": {
        "BackendDefaults": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.BackendDefaults"
        },
        "Backends": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Backend"
          },
          "type": "array"
        },
        "Listeners": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Listener"
          },
          "type": "array"
        },
        "Logging": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Logging"
        },
        "ServiceDiscovery": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ServiceDiscovery"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": {
      "additionalProperties": false,
      "properties": {
        "MaxConnections": {
          "type": "number"
        }
      },
      "required": ["MaxConnections"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualNode.VirtualServiceBackend": {
      "additionalProperties": false,
      "properties": {
        "ClientPolicy": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy"
        },
        "VirtualServiceName": {
          "type": "string"
        }
      },
      "required": ["VirtualServiceName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualRouter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualRouterName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::VirtualRouter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualRouter.PortMapping": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "number"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "required": ["Port", "Protocol"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualRouter.VirtualRouterListener": {
      "additionalProperties": false,
      "properties": {
        "PortMapping": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.PortMapping"
        }
      },
      "required": ["PortMapping"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualRouter.VirtualRouterSpec": {
      "additionalProperties": false,
      "properties": {
        "Listeners": {
          "items": {
            "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterListener"
          },
          "type": "array"
        }
      },
      "required": ["Listeners"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualService": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MeshName": {
              "type": "string"
            },
            "MeshOwner": {
              "type": "string"
            },
            "Spec": {
              "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VirtualServiceName": {
              "type": "string"
            }
          },
          "required": ["MeshName", "Spec", "VirtualServiceName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppMesh::VirtualService"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualService.VirtualNodeServiceProvider": {
      "additionalProperties": false,
      "properties": {
        "VirtualNodeName": {
          "type": "string"
        }
      },
      "required": ["VirtualNodeName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualService.VirtualRouterServiceProvider": {
      "additionalProperties": false,
      "properties": {
        "VirtualRouterName": {
          "type": "string"
        }
      },
      "required": ["VirtualRouterName"],
      "type": "object"
    },
    "AWS::AppMesh::VirtualService.VirtualServiceProvider": {
      "additionalProperties": false,
      "properties": {
        "VirtualNode": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualNodeServiceProvider"
        },
        "VirtualRouter": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualRouterServiceProvider"
        }
      },
      "type": "object"
    },
    "AWS::AppMesh::VirtualService.VirtualServiceSpec": {
      "additionalProperties": false,
      "properties": {
        "Provider": {
          "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceProvider"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::ObservabilityConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ObservabilityConfigurationName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TraceConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::ObservabilityConfiguration.TraceConfiguration"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppRunner::ObservabilityConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AppRunner::ObservabilityConfiguration.TraceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Vendor": {
          "type": "string"
        }
      },
      "required": ["Vendor"],
      "type": "object"
    },
    "AWS::AppRunner::Service": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingConfigurationArn": {
              "type": "string"
            },
            "EncryptionConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.EncryptionConfiguration"
            },
            "HealthCheckConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.HealthCheckConfiguration"
            },
            "InstanceConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration"
            },
            "ObservabilityConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.ServiceObservabilityConfiguration"
            },
            "ServiceName": {
              "type": "string"
            },
            "SourceConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::Service.SourceConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SourceConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppRunner::Service"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppRunner::Service.AuthenticationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccessRoleArn": {
          "type": "string"
        },
        "ConnectionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.CodeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CodeConfigurationValues": {
          "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfigurationValues"
        },
        "ConfigurationSource": {
          "type": "string"
        }
      },
      "required": ["ConfigurationSource"],
      "type": "object"
    },
    "AWS::AppRunner::Service.CodeConfigurationValues": {
      "additionalProperties": false,
      "properties": {
        "BuildCommand": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        },
        "Runtime": {
          "type": "string"
        },
        "RuntimeEnvironmentSecrets": {
          "items": {
            "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair"
          },
          "type": "array"
        },
        "RuntimeEnvironmentVariables": {
          "items": {
            "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair"
          },
          "type": "array"
        },
        "StartCommand": {
          "type": "string"
        }
      },
      "required": ["Runtime"],
      "type": "object"
    },
    "AWS::AppRunner::Service.CodeRepository": {
      "additionalProperties": false,
      "properties": {
        "CodeConfiguration": {
          "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfiguration"
        },
        "RepositoryUrl": {
          "type": "string"
        },
        "SourceCodeVersion": {
          "$ref": "#/definitions/AWS::AppRunner::Service.SourceCodeVersion"
        }
      },
      "required": ["RepositoryUrl", "SourceCodeVersion"],
      "type": "object"
    },
    "AWS::AppRunner::Service.EgressConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EgressType": {
          "type": "string"
        },
        "VpcConnectorArn": {
          "type": "string"
        }
      },
      "required": ["EgressType"],
      "type": "object"
    },
    "AWS::AppRunner::Service.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKey": {
          "type": "string"
        }
      },
      "required": ["KmsKey"],
      "type": "object"
    },
    "AWS::AppRunner::Service.HealthCheckConfiguration": {
      "additionalProperties": false,
      "properties": {
        "HealthyThreshold": {
          "type": "number"
        },
        "Interval": {
          "type": "number"
        },
        "Path": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "Timeout": {
          "type": "number"
        },
        "UnhealthyThreshold": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.ImageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "string"
        },
        "RuntimeEnvironmentSecrets": {
          "items": {
            "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair"
          },
          "type": "array"
        },
        "RuntimeEnvironmentVariables": {
          "items": {
            "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair"
          },
          "type": "array"
        },
        "StartCommand": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.ImageRepository": {
      "additionalProperties": false,
      "properties": {
        "ImageConfiguration": {
          "$ref": "#/definitions/AWS::AppRunner::Service.ImageConfiguration"
        },
        "ImageIdentifier": {
          "type": "string"
        },
        "ImageRepositoryType": {
          "type": "string"
        }
      },
      "required": ["ImageIdentifier", "ImageRepositoryType"],
      "type": "object"
    },
    "AWS::AppRunner::Service.IngressConfiguration": {
      "additionalProperties": false,
      "properties": {
        "IsPubliclyAccessible": {
          "type": "boolean"
        }
      },
      "required": ["IsPubliclyAccessible"],
      "type": "object"
    },
    "AWS::AppRunner::Service.InstanceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Cpu": {
          "type": "string"
        },
        "InstanceRoleArn": {
          "type": "string"
        },
        "Memory": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.KeyValuePair": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EgressConfiguration": {
          "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration"
        },
        "IngressConfiguration": {
          "$ref": "#/definitions/AWS::AppRunner::Service.IngressConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::Service.ServiceObservabilityConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ObservabilityConfigurationArn": {
          "type": "string"
        },
        "ObservabilityEnabled": {
          "type": "boolean"
        }
      },
      "required": ["ObservabilityEnabled"],
      "type": "object"
    },
    "AWS::AppRunner::Service.SourceCodeVersion": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::AppRunner::Service.SourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationConfiguration": {
          "$ref": "#/definitions/AWS::AppRunner::Service.AuthenticationConfiguration"
        },
        "AutoDeploymentsEnabled": {
          "type": "boolean"
        },
        "CodeRepository": {
          "$ref": "#/definitions/AWS::AppRunner::Service.CodeRepository"
        },
        "ImageRepository": {
          "$ref": "#/definitions/AWS::AppRunner::Service.ImageRepository"
        }
      },
      "type": "object"
    },
    "AWS::AppRunner::VpcConnector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Subnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcConnectorName": {
              "type": "string"
            }
          },
          "required": ["Subnets"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppRunner::VpcConnector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppRunner::VpcIngressConnection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IngressVpcConfiguration": {
              "$ref": "#/definitions/AWS::AppRunner::VpcIngressConnection.IngressVpcConfiguration"
            },
            "ServiceArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcIngressConnectionName": {
              "type": "string"
            }
          },
          "required": ["IngressVpcConfiguration", "ServiceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppRunner::VpcIngressConnection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppRunner::VpcIngressConnection.IngressVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "VpcEndpointId": {
          "type": "string"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "required": ["VpcEndpointId", "VpcId"],
      "type": "object"
    },
    "AWS::AppStream::AppBlock": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SetupScriptDetails": {
              "$ref": "#/definitions/AWS::AppStream::AppBlock.ScriptDetails"
            },
            "SourceS3Location": {
              "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "SetupScriptDetails", "SourceS3Location"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::AppBlock"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::AppBlock.S3Location": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::AppStream::AppBlock.ScriptDetails": {
      "additionalProperties": false,
      "properties": {
        "ExecutableParameters": {
          "type": "string"
        },
        "ExecutablePath": {
          "type": "string"
        },
        "ScriptS3Location": {
          "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location"
        },
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "required": ["ExecutablePath", "ScriptS3Location", "TimeoutInSeconds"],
      "type": "object"
    },
    "AWS::AppStream::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppBlockArn": {
              "type": "string"
            },
            "AttributesToDelete": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "IconS3Location": {
              "$ref": "#/definitions/AWS::AppStream::Application.S3Location"
            },
            "InstanceFamilies": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LaunchParameters": {
              "type": "string"
            },
            "LaunchPath": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Platforms": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "WorkingDirectory": {
              "type": "string"
            }
          },
          "required": [
            "AppBlockArn",
            "IconS3Location",
            "InstanceFamilies",
            "LaunchPath",
            "Name",
            "Platforms"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::Application.S3Location": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::AppStream::ApplicationEntitlementAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationIdentifier": {
              "type": "string"
            },
            "EntitlementName": {
              "type": "string"
            },
            "StackName": {
              "type": "string"
            }
          },
          "required": ["ApplicationIdentifier", "EntitlementName", "StackName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::ApplicationEntitlementAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::ApplicationFleetAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationArn": {
              "type": "string"
            },
            "FleetName": {
              "type": "string"
            }
          },
          "required": ["ApplicationArn", "FleetName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::ApplicationFleetAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::DirectoryConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateBasedAuthProperties": {
              "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.CertificateBasedAuthProperties"
            },
            "DirectoryName": {
              "type": "string"
            },
            "OrganizationalUnitDistinguishedNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ServiceAccountCredentials": {
              "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials"
            }
          },
          "required": [
            "DirectoryName",
            "OrganizationalUnitDistinguishedNames",
            "ServiceAccountCredentials"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::DirectoryConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::DirectoryConfig.CertificateBasedAuthProperties": {
      "additionalProperties": false,
      "properties": {
        "CertificateAuthorityArn": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": {
      "additionalProperties": false,
      "properties": {
        "AccountName": {
          "type": "string"
        },
        "AccountPassword": {
          "type": "string"
        }
      },
      "required": ["AccountName", "AccountPassword"],
      "type": "object"
    },
    "AWS::AppStream::Entitlement": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppVisibility": {
              "type": "string"
            },
            "Attributes": {
              "items": {
                "$ref": "#/definitions/AWS::AppStream::Entitlement.Attribute"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "StackName": {
              "type": "string"
            }
          },
          "required": ["AppVisibility", "Attributes", "Name", "StackName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::Entitlement"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::Entitlement.Attribute": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::AppStream::Fleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ComputeCapacity": {
              "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity"
            },
            "Description": {
              "type": "string"
            },
            "DisconnectTimeoutInSeconds": {
              "type": "number"
            },
            "DisplayName": {
              "type": "string"
            },
            "DomainJoinInfo": {
              "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo"
            },
            "EnableDefaultInternetAccess": {
              "type": "boolean"
            },
            "FleetType": {
              "type": "string"
            },
            "IamRoleArn": {
              "type": "string"
            },
            "IdleDisconnectTimeoutInSeconds": {
              "type": "number"
            },
            "ImageArn": {
              "type": "string"
            },
            "ImageName": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "MaxConcurrentSessions": {
              "type": "number"
            },
            "MaxUserDurationInSeconds": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Platform": {
              "type": "string"
            },
            "SessionScriptS3Location": {
              "$ref": "#/definitions/AWS::AppStream::Fleet.S3Location"
            },
            "StreamView": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UsbDeviceFilterStrings": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcConfig": {
              "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig"
            }
          },
          "required": ["InstanceType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::Fleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::Fleet.ComputeCapacity": {
      "additionalProperties": false,
      "properties": {
        "DesiredInstances": {
          "type": "number"
        }
      },
      "required": ["DesiredInstances"],
      "type": "object"
    },
    "AWS::AppStream::Fleet.DomainJoinInfo": {
      "additionalProperties": false,
      "properties": {
        "DirectoryName": {
          "type": "string"
        },
        "OrganizationalUnitDistinguishedName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::Fleet.S3Location": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::AppStream::Fleet.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::ImageBuilder": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessEndpoints": {
              "items": {
                "$ref": "#/definitions/AWS::AppStream::ImageBuilder.AccessEndpoint"
              },
              "type": "array"
            },
            "AppstreamAgentVersion": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "DomainJoinInfo": {
              "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo"
            },
            "EnableDefaultInternetAccess": {
              "type": "boolean"
            },
            "IamRoleArn": {
              "type": "string"
            },
            "ImageArn": {
              "type": "string"
            },
            "ImageName": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcConfig": {
              "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig"
            }
          },
          "required": ["InstanceType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::ImageBuilder"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::ImageBuilder.AccessEndpoint": {
      "additionalProperties": false,
      "properties": {
        "EndpointType": {
          "type": "string"
        },
        "VpceId": {
          "type": "string"
        }
      },
      "required": ["EndpointType", "VpceId"],
      "type": "object"
    },
    "AWS::AppStream::ImageBuilder.DomainJoinInfo": {
      "additionalProperties": false,
      "properties": {
        "DirectoryName": {
          "type": "string"
        },
        "OrganizationalUnitDistinguishedName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::ImageBuilder.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::Stack": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessEndpoints": {
              "items": {
                "$ref": "#/definitions/AWS::AppStream::Stack.AccessEndpoint"
              },
              "type": "array"
            },
            "ApplicationSettings": {
              "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings"
            },
            "AttributesToDelete": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DeleteStorageConnectors": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "EmbedHostDomains": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "FeedbackURL": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RedirectURL": {
              "type": "string"
            },
            "StorageConnectors": {
              "items": {
                "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector"
              },
              "type": "array"
            },
            "StreamingExperienceSettings": {
              "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserSettings": {
              "items": {
                "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::Stack"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AppStream::Stack.AccessEndpoint": {
      "additionalProperties": false,
      "properties": {
        "EndpointType": {
          "type": "string"
        },
        "VpceId": {
          "type": "string"
        }
      },
      "required": ["EndpointType", "VpceId"],
      "type": "object"
    },
    "AWS::AppStream::Stack.ApplicationSettings": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "SettingsGroup": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::AppStream::Stack.StorageConnector": {
      "additionalProperties": false,
      "properties": {
        "ConnectorType": {
          "type": "string"
        },
        "Domains": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceIdentifier": {
          "type": "string"
        }
      },
      "required": ["ConnectorType"],
      "type": "object"
    },
    "AWS::AppStream::Stack.StreamingExperienceSettings": {
      "additionalProperties": false,
      "properties": {
        "PreferredProtocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppStream::Stack.UserSetting": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Permission": {
          "type": "string"
        }
      },
      "required": ["Action", "Permission"],
      "type": "object"
    },
    "AWS::AppStream::StackFleetAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FleetName": {
              "type": "string"
            },
            "StackName": {
              "type": "string"
            }
          },
          "required": ["FleetName", "StackName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::StackFleetAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::StackUserAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationType": {
              "type": "string"
            },
            "SendEmailNotification": {
              "type": "boolean"
            },
            "StackName": {
              "type": "string"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["AuthenticationType", "StackName", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::StackUserAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppStream::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationType": {
              "type": "string"
            },
            "FirstName": {
              "type": "string"
            },
            "LastName": {
              "type": "string"
            },
            "MessageAction": {
              "type": "string"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["AuthenticationType", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppStream::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::ApiCache": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiCachingBehavior": {
              "type": "string"
            },
            "ApiId": {
              "type": "string"
            },
            "AtRestEncryptionEnabled": {
              "type": "boolean"
            },
            "TransitEncryptionEnabled": {
              "type": "boolean"
            },
            "Ttl": {
              "type": "number"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["ApiCachingBehavior", "ApiId", "Ttl", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::ApiCache"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::ApiKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "ApiKeyId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Expires": {
              "type": "number"
            }
          },
          "required": ["ApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::ApiKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::DataSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DynamoDBConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig"
            },
            "ElasticsearchConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig"
            },
            "EventBridgeConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.EventBridgeConfig"
            },
            "HttpConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig"
            },
            "LambdaConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig"
            },
            "Name": {
              "type": "string"
            },
            "OpenSearchServiceConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig"
            },
            "RelationalDatabaseConfig": {
              "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig"
            },
            "ServiceRoleArn": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["ApiId", "Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::DataSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.AuthorizationConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationType": {
          "type": "string"
        },
        "AwsIamConfig": {
          "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig"
        }
      },
      "required": ["AuthorizationType"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.AwsIamConfig": {
      "additionalProperties": false,
      "properties": {
        "SigningRegion": {
          "type": "string"
        },
        "SigningServiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::DataSource.DeltaSyncConfig": {
      "additionalProperties": false,
      "properties": {
        "BaseTableTTL": {
          "type": "string"
        },
        "DeltaSyncTableName": {
          "type": "string"
        },
        "DeltaSyncTableTTL": {
          "type": "string"
        }
      },
      "required": ["BaseTableTTL", "DeltaSyncTableName", "DeltaSyncTableTTL"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.DynamoDBConfig": {
      "additionalProperties": false,
      "properties": {
        "AwsRegion": {
          "type": "string"
        },
        "DeltaSyncConfig": {
          "$ref": "#/definitions/AWS::AppSync::DataSource.DeltaSyncConfig"
        },
        "TableName": {
          "type": "string"
        },
        "UseCallerCredentials": {
          "type": "boolean"
        },
        "Versioned": {
          "type": "boolean"
        }
      },
      "required": ["AwsRegion", "TableName"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.ElasticsearchConfig": {
      "additionalProperties": false,
      "properties": {
        "AwsRegion": {
          "type": "string"
        },
        "Endpoint": {
          "type": "string"
        }
      },
      "required": ["AwsRegion", "Endpoint"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.EventBridgeConfig": {
      "additionalProperties": false,
      "properties": {
        "EventBusArn": {
          "type": "string"
        }
      },
      "required": ["EventBusArn"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.HttpConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationConfig": {
          "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig"
        },
        "Endpoint": {
          "type": "string"
        }
      },
      "required": ["Endpoint"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.LambdaConfig": {
      "additionalProperties": false,
      "properties": {
        "LambdaFunctionArn": {
          "type": "string"
        }
      },
      "required": ["LambdaFunctionArn"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.OpenSearchServiceConfig": {
      "additionalProperties": false,
      "properties": {
        "AwsRegion": {
          "type": "string"
        },
        "Endpoint": {
          "type": "string"
        }
      },
      "required": ["AwsRegion", "Endpoint"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.RdsHttpEndpointConfig": {
      "additionalProperties": false,
      "properties": {
        "AwsRegion": {
          "type": "string"
        },
        "AwsSecretStoreArn": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DbClusterIdentifier": {
          "type": "string"
        },
        "Schema": {
          "type": "string"
        }
      },
      "required": ["AwsRegion", "AwsSecretStoreArn", "DbClusterIdentifier"],
      "type": "object"
    },
    "AWS::AppSync::DataSource.RelationalDatabaseConfig": {
      "additionalProperties": false,
      "properties": {
        "RdsHttpEndpointConfig": {
          "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig"
        },
        "RelationalDatabaseSourceType": {
          "type": "string"
        }
      },
      "required": ["RelationalDatabaseSourceType"],
      "type": "object"
    },
    "AWS::AppSync::DomainName": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateArn": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            }
          },
          "required": ["CertificateArn", "DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::DomainName"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::DomainNameApiAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            }
          },
          "required": ["ApiId", "DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::DomainNameApiAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::FunctionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "Code": {
              "type": "string"
            },
            "CodeS3Location": {
              "type": "string"
            },
            "DataSourceName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "FunctionVersion": {
              "type": "string"
            },
            "MaxBatchSize": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "RequestMappingTemplate": {
              "type": "string"
            },
            "RequestMappingTemplateS3Location": {
              "type": "string"
            },
            "ResponseMappingTemplate": {
              "type": "string"
            },
            "ResponseMappingTemplateS3Location": {
              "type": "string"
            },
            "Runtime": {
              "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.AppSyncRuntime"
            },
            "SyncConfig": {
              "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig"
            }
          },
          "required": ["ApiId", "DataSourceName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::FunctionConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::FunctionConfiguration.AppSyncRuntime": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "RuntimeVersion": {
          "type": "string"
        }
      },
      "required": ["Name", "RuntimeVersion"],
      "type": "object"
    },
    "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": {
      "additionalProperties": false,
      "properties": {
        "LambdaConflictHandlerArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::FunctionConfiguration.SyncConfig": {
      "additionalProperties": false,
      "properties": {
        "ConflictDetection": {
          "type": "string"
        },
        "ConflictHandler": {
          "type": "string"
        },
        "LambdaConflictHandlerConfig": {
          "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig"
        }
      },
      "required": ["ConflictDetection"],
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalAuthenticationProviders": {
              "items": {
                "$ref": "#/definitions/AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider"
              },
              "type": "array"
            },
            "AuthenticationType": {
              "type": "string"
            },
            "LambdaAuthorizerConfig": {
              "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig"
            },
            "LogConfig": {
              "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig"
            },
            "Name": {
              "type": "string"
            },
            "OpenIDConnectConfig": {
              "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserPoolConfig": {
              "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig"
            },
            "XrayEnabled": {
              "type": "boolean"
            }
          },
          "required": ["AuthenticationType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::GraphQLApi"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationType": {
          "type": "string"
        },
        "LambdaAuthorizerConfig": {
          "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig"
        },
        "OpenIDConnectConfig": {
          "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig"
        },
        "UserPoolConfig": {
          "$ref": "#/definitions/AWS::AppSync::GraphQLApi.CognitoUserPoolConfig"
        }
      },
      "required": ["AuthenticationType"],
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.CognitoUserPoolConfig": {
      "additionalProperties": false,
      "properties": {
        "AppIdClientRegex": {
          "type": "string"
        },
        "AwsRegion": {
          "type": "string"
        },
        "UserPoolId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthorizerResultTtlInSeconds": {
          "type": "number"
        },
        "AuthorizerUri": {
          "type": "string"
        },
        "IdentityValidationExpression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.LogConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsRoleArn": {
          "type": "string"
        },
        "ExcludeVerboseContent": {
          "type": "boolean"
        },
        "FieldLogLevel": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthTTL": {
          "type": "number"
        },
        "ClientId": {
          "type": "string"
        },
        "IatTTL": {
          "type": "number"
        },
        "Issuer": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::GraphQLApi.UserPoolConfig": {
      "additionalProperties": false,
      "properties": {
        "AppIdClientRegex": {
          "type": "string"
        },
        "AwsRegion": {
          "type": "string"
        },
        "DefaultAction": {
          "type": "string"
        },
        "UserPoolId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::GraphQLSchema": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "Definition": {
              "type": "string"
            },
            "DefinitionS3Location": {
              "type": "string"
            }
          },
          "required": ["ApiId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::GraphQLSchema"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::Resolver": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiId": {
              "type": "string"
            },
            "CachingConfig": {
              "$ref": "#/definitions/AWS::AppSync::Resolver.CachingConfig"
            },
            "Code": {
              "type": "string"
            },
            "CodeS3Location": {
              "type": "string"
            },
            "DataSourceName": {
              "type": "string"
            },
            "FieldName": {
              "type": "string"
            },
            "Kind": {
              "type": "string"
            },
            "MaxBatchSize": {
              "type": "number"
            },
            "PipelineConfig": {
              "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig"
            },
            "RequestMappingTemplate": {
              "type": "string"
            },
            "RequestMappingTemplateS3Location": {
              "type": "string"
            },
            "ResponseMappingTemplate": {
              "type": "string"
            },
            "ResponseMappingTemplateS3Location": {
              "type": "string"
            },
            "Runtime": {
              "$ref": "#/definitions/AWS::AppSync::Resolver.AppSyncRuntime"
            },
            "SyncConfig": {
              "$ref": "#/definitions/AWS::AppSync::Resolver.SyncConfig"
            },
            "TypeName": {
              "type": "string"
            }
          },
          "required": ["ApiId", "FieldName", "TypeName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AppSync::Resolver"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AppSync::Resolver.AppSyncRuntime": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "RuntimeVersion": {
          "type": "string"
        }
      },
      "required": ["Name", "RuntimeVersion"],
      "type": "object"
    },
    "AWS::AppSync::Resolver.CachingConfig": {
      "additionalProperties": false,
      "properties": {
        "CachingKeys": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Ttl": {
          "type": "number"
        }
      },
      "required": ["Ttl"],
      "type": "object"
    },
    "AWS::AppSync::Resolver.LambdaConflictHandlerConfig": {
      "additionalProperties": false,
      "properties": {
        "LambdaConflictHandlerArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::Resolver.PipelineConfig": {
      "additionalProperties": false,
      "properties": {
        "Functions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AppSync::Resolver.SyncConfig": {
      "additionalProperties": false,
      "properties": {
        "ConflictDetection": {
          "type": "string"
        },
        "ConflictHandler": {
          "type": "string"
        },
        "LambdaConflictHandlerConfig": {
          "$ref": "#/definitions/AWS::AppSync::Resolver.LambdaConflictHandlerConfig"
        }
      },
      "required": ["ConflictDetection"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalableTarget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MaxCapacity": {
              "type": "number"
            },
            "MinCapacity": {
              "type": "number"
            },
            "ResourceId": {
              "type": "string"
            },
            "RoleARN": {
              "type": "string"
            },
            "ScalableDimension": {
              "type": "string"
            },
            "ScheduledActions": {
              "items": {
                "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction"
              },
              "type": "array"
            },
            "ServiceNamespace": {
              "type": "string"
            },
            "SuspendedState": {
              "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState"
            }
          },
          "required": [
            "MaxCapacity",
            "MinCapacity",
            "ResourceId",
            "RoleARN",
            "ScalableDimension",
            "ServiceNamespace"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApplicationAutoScaling::ScalableTarget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": {
      "additionalProperties": false,
      "properties": {
        "EndTime": {
          "type": "string"
        },
        "ScalableTargetAction": {
          "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction"
        },
        "Schedule": {
          "type": "string"
        },
        "ScheduledActionName": {
          "type": "string"
        },
        "StartTime": {
          "type": "string"
        },
        "Timezone": {
          "type": "string"
        }
      },
      "required": ["Schedule", "ScheduledActionName"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState": {
      "additionalProperties": false,
      "properties": {
        "DynamicScalingInSuspended": {
          "type": "boolean"
        },
        "DynamicScalingOutSuspended": {
          "type": "boolean"
        },
        "ScheduledScalingSuspended": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyName": {
              "type": "string"
            },
            "PolicyType": {
              "type": "string"
            },
            "ResourceId": {
              "type": "string"
            },
            "ScalableDimension": {
              "type": "string"
            },
            "ScalingTargetId": {
              "type": "string"
            },
            "ServiceNamespace": {
              "type": "string"
            },
            "StepScalingPolicyConfiguration": {
              "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration"
            },
            "TargetTrackingScalingPolicyConfiguration": {
              "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration"
            }
          },
          "required": ["PolicyName", "PolicyType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApplicationAutoScaling::ScalingPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Statistic": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace", "Statistic"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "PredefinedMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedMetricType"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": {
      "additionalProperties": false,
      "properties": {
        "MetricIntervalLowerBound": {
          "type": "number"
        },
        "MetricIntervalUpperBound": {
          "type": "number"
        },
        "ScalingAdjustment": {
          "type": "number"
        }
      },
      "required": ["ScalingAdjustment"],
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdjustmentType": {
          "type": "string"
        },
        "Cooldown": {
          "type": "number"
        },
        "MetricAggregationType": {
          "type": "string"
        },
        "MinAdjustmentMagnitude": {
          "type": "number"
        },
        "StepAdjustments": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CustomizedMetricSpecification": {
          "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification"
        },
        "DisableScaleIn": {
          "type": "boolean"
        },
        "PredefinedMetricSpecification": {
          "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification"
        },
        "ScaleInCooldown": {
          "type": "number"
        },
        "ScaleOutCooldown": {
          "type": "number"
        },
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoConfigurationEnabled": {
              "type": "boolean"
            },
            "CWEMonitorEnabled": {
              "type": "boolean"
            },
            "ComponentMonitoringSettings": {
              "items": {
                "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentMonitoringSetting"
              },
              "type": "array"
            },
            "CustomComponents": {
              "items": {
                "$ref": "#/definitions/AWS::ApplicationInsights::Application.CustomComponent"
              },
              "type": "array"
            },
            "GroupingType": {
              "type": "string"
            },
            "LogPatternSets": {
              "items": {
                "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPatternSet"
              },
              "type": "array"
            },
            "OpsCenterEnabled": {
              "type": "boolean"
            },
            "OpsItemSNSTopicArn": {
              "type": "string"
            },
            "ResourceGroupName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ResourceGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ApplicationInsights::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.Alarm": {
      "additionalProperties": false,
      "properties": {
        "AlarmName": {
          "type": "string"
        },
        "Severity": {
          "type": "string"
        }
      },
      "required": ["AlarmName"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.AlarmMetric": {
      "additionalProperties": false,
      "properties": {
        "AlarmMetricName": {
          "type": "string"
        }
      },
      "required": ["AlarmMetricName"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.ComponentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ConfigurationDetails": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.ConfigurationDetails"
        },
        "SubComponentTypeConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentTypeConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.ComponentMonitoringSetting": {
      "additionalProperties": false,
      "properties": {
        "ComponentARN": {
          "type": "string"
        },
        "ComponentConfigurationMode": {
          "type": "string"
        },
        "ComponentName": {
          "type": "string"
        },
        "CustomComponentConfiguration": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration"
        },
        "DefaultOverwriteComponentConfiguration": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration"
        },
        "Tier": {
          "type": "string"
        }
      },
      "required": ["ComponentConfigurationMode", "Tier"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.ConfigurationDetails": {
      "additionalProperties": false,
      "properties": {
        "AlarmMetrics": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric"
          },
          "type": "array"
        },
        "Alarms": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.Alarm"
          },
          "type": "array"
        },
        "HAClusterPrometheusExporter": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.HAClusterPrometheusExporter"
        },
        "HANAPrometheusExporter": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.HANAPrometheusExporter"
        },
        "JMXPrometheusExporter": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.JMXPrometheusExporter"
        },
        "Logs": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log"
          },
          "type": "array"
        },
        "WindowsEvents": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.CustomComponent": {
      "additionalProperties": false,
      "properties": {
        "ComponentName": {
          "type": "string"
        },
        "ResourceList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ComponentName", "ResourceList"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.HAClusterPrometheusExporter": {
      "additionalProperties": false,
      "properties": {
        "PrometheusPort": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.HANAPrometheusExporter": {
      "additionalProperties": false,
      "properties": {
        "AgreeToInstallHANADBClient": {
          "type": "boolean"
        },
        "HANAPort": {
          "type": "string"
        },
        "HANASID": {
          "type": "string"
        },
        "HANASecretName": {
          "type": "string"
        },
        "PrometheusPort": {
          "type": "string"
        }
      },
      "required": [
        "AgreeToInstallHANADBClient",
        "HANAPort",
        "HANASID",
        "HANASecretName"
      ],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.JMXPrometheusExporter": {
      "additionalProperties": false,
      "properties": {
        "HostPort": {
          "type": "string"
        },
        "JMXURL": {
          "type": "string"
        },
        "PrometheusPort": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.Log": {
      "additionalProperties": false,
      "properties": {
        "Encoding": {
          "type": "string"
        },
        "LogGroupName": {
          "type": "string"
        },
        "LogPath": {
          "type": "string"
        },
        "LogType": {
          "type": "string"
        },
        "PatternSet": {
          "type": "string"
        }
      },
      "required": ["LogType"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.LogPattern": {
      "additionalProperties": false,
      "properties": {
        "Pattern": {
          "type": "string"
        },
        "PatternName": {
          "type": "string"
        },
        "Rank": {
          "type": "number"
        }
      },
      "required": ["Pattern", "PatternName", "Rank"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.LogPatternSet": {
      "additionalProperties": false,
      "properties": {
        "LogPatterns": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPattern"
          },
          "type": "array"
        },
        "PatternSetName": {
          "type": "string"
        }
      },
      "required": ["LogPatterns", "PatternSetName"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.SubComponentConfigurationDetails": {
      "additionalProperties": false,
      "properties": {
        "AlarmMetrics": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric"
          },
          "type": "array"
        },
        "Logs": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log"
          },
          "type": "array"
        },
        "WindowsEvents": {
          "items": {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.SubComponentTypeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SubComponentConfigurationDetails": {
          "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentConfigurationDetails"
        },
        "SubComponentType": {
          "type": "string"
        }
      },
      "required": ["SubComponentConfigurationDetails", "SubComponentType"],
      "type": "object"
    },
    "AWS::ApplicationInsights::Application.WindowsEvent": {
      "additionalProperties": false,
      "properties": {
        "EventLevels": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EventName": {
          "type": "string"
        },
        "LogGroupName": {
          "type": "string"
        },
        "PatternSet": {
          "type": "string"
        }
      },
      "required": ["EventLevels", "EventName", "LogGroupName"],
      "type": "object"
    },
    "AWS::Athena::DataCatalog": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Athena::DataCatalog"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Athena::NamedQuery": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Database": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "QueryString": {
              "type": "string"
            },
            "WorkGroup": {
              "type": "string"
            }
          },
          "required": ["Database", "QueryString"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Athena::NamedQuery"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Athena::PreparedStatement": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "QueryStatement": {
              "type": "string"
            },
            "StatementName": {
              "type": "string"
            },
            "WorkGroup": {
              "type": "string"
            }
          },
          "required": ["QueryStatement", "StatementName", "WorkGroup"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Athena::PreparedStatement"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Athena::WorkGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RecursiveDeleteOption": {
              "type": "boolean"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "WorkGroupConfiguration": {
              "$ref": "#/definitions/AWS::Athena::WorkGroup.WorkGroupConfiguration"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Athena::WorkGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Athena::WorkGroup.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EncryptionOption": {
          "type": "string"
        },
        "KmsKey": {
          "type": "string"
        }
      },
      "required": ["EncryptionOption"],
      "type": "object"
    },
    "AWS::Athena::WorkGroup.EngineVersion": {
      "additionalProperties": false,
      "properties": {
        "EffectiveEngineVersion": {
          "type": "string"
        },
        "SelectedEngineVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Athena::WorkGroup.ResultConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EncryptionConfiguration": {
          "$ref": "#/definitions/AWS::Athena::WorkGroup.EncryptionConfiguration"
        },
        "OutputLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Athena::WorkGroup.WorkGroupConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BytesScannedCutoffPerQuery": {
          "type": "number"
        },
        "EnforceWorkGroupConfiguration": {
          "type": "boolean"
        },
        "EngineVersion": {
          "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion"
        },
        "PublishCloudWatchMetricsEnabled": {
          "type": "boolean"
        },
        "RequesterPaysEnabled": {
          "type": "boolean"
        },
        "ResultConfiguration": {
          "$ref": "#/definitions/AWS::Athena::WorkGroup.ResultConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssessmentReportsDestination": {
              "$ref": "#/definitions/AWS::AuditManager::Assessment.AssessmentReportsDestination"
            },
            "AwsAccount": {
              "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount"
            },
            "Delegations": {
              "items": {
                "$ref": "#/definitions/AWS::AuditManager::Assessment.Delegation"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "FrameworkId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Roles": {
              "items": {
                "$ref": "#/definitions/AWS::AuditManager::Assessment.Role"
              },
              "type": "array"
            },
            "Scope": {
              "$ref": "#/definitions/AWS::AuditManager::Assessment.Scope"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AuditManager::Assessment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::AuditManager::Assessment.AWSAccount": {
      "additionalProperties": false,
      "properties": {
        "EmailAddress": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment.AWSService": {
      "additionalProperties": false,
      "properties": {
        "ServiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment.AssessmentReportsDestination": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        },
        "DestinationType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment.Delegation": {
      "additionalProperties": false,
      "properties": {
        "AssessmentId": {
          "type": "string"
        },
        "AssessmentName": {
          "type": "string"
        },
        "Comment": {
          "type": "string"
        },
        "ControlSetId": {
          "type": "string"
        },
        "CreatedBy": {
          "type": "string"
        },
        "CreationTime": {
          "type": "number"
        },
        "Id": {
          "type": "string"
        },
        "LastUpdated": {
          "type": "number"
        },
        "RoleArn": {
          "type": "string"
        },
        "RoleType": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment.Role": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "RoleType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AuditManager::Assessment.Scope": {
      "additionalProperties": false,
      "properties": {
        "AwsAccounts": {
          "items": {
            "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount"
          },
          "type": "array"
        },
        "AwsServices": {
          "items": {
            "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSService"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "CreationPolicy": {
          "type": "object"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingGroupName": {
              "type": "string"
            },
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CapacityRebalance": {
              "type": "boolean"
            },
            "Context": {
              "type": "string"
            },
            "Cooldown": {
              "type": "string"
            },
            "DefaultInstanceWarmup": {
              "type": "number"
            },
            "DesiredCapacity": {
              "type": "string"
            },
            "DesiredCapacityType": {
              "type": "string"
            },
            "HealthCheckGracePeriod": {
              "type": "number"
            },
            "HealthCheckType": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "LaunchConfigurationName": {
              "type": "string"
            },
            "LaunchTemplate": {
              "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification"
            },
            "LifecycleHookSpecificationList": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification"
              },
              "type": "array"
            },
            "LoadBalancerNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MaxInstanceLifetime": {
              "type": "number"
            },
            "MaxSize": {
              "type": "string"
            },
            "MetricsCollection": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection"
              },
              "type": "array"
            },
            "MinSize": {
              "type": "string"
            },
            "MixedInstancesPolicy": {
              "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy"
            },
            "NewInstancesProtectedFromScaleIn": {
              "type": "boolean"
            },
            "NotificationConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration"
              },
              "type": "array"
            },
            "PlacementGroup": {
              "type": "string"
            },
            "ServiceLinkedRoleARN": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty"
              },
              "type": "array"
            },
            "TargetGroupARNs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "TerminationPolicies": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VPCZoneIdentifier": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["MaxSize", "MinSize"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::AutoScalingGroup"],
          "type": "string"
        },
        "UpdatePolicy": {
          "type": "object"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": {
      "additionalProperties": false,
      "properties": {
        "AcceleratorCount": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest"
        },
        "AcceleratorManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorTotalMemoryMiB": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest"
        },
        "AcceleratorTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BareMetal": {
          "type": "string"
        },
        "BaselineEbsBandwidthMbps": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest"
        },
        "BurstablePerformance": {
          "type": "string"
        },
        "CpuManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InstanceGenerations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LocalStorage": {
          "type": "string"
        },
        "LocalStorageTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MemoryGiBPerVCpu": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest"
        },
        "MemoryMiB": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest"
        },
        "NetworkBandwidthGbps": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest"
        },
        "NetworkInterfaceCount": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest"
        },
        "OnDemandMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "RequireHibernateSupport": {
          "type": "boolean"
        },
        "SpotMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "TotalLocalStorageGB": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest"
        },
        "VCpuCount": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": {
      "additionalProperties": false,
      "properties": {
        "OnDemandAllocationStrategy": {
          "type": "string"
        },
        "OnDemandBaseCapacity": {
          "type": "number"
        },
        "OnDemandPercentageAboveBaseCapacity": {
          "type": "number"
        },
        "SpotAllocationStrategy": {
          "type": "string"
        },
        "SpotInstancePools": {
          "type": "number"
        },
        "SpotMaxPrice": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification"
        },
        "Overrides": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides"
          },
          "type": "array"
        }
      },
      "required": ["LaunchTemplateSpecification"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": {
      "additionalProperties": false,
      "properties": {
        "InstanceRequirements": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements"
        },
        "InstanceType": {
          "type": "string"
        },
        "LaunchTemplateSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification"
        },
        "WeightedCapacity": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Version"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": {
      "additionalProperties": false,
      "properties": {
        "DefaultResult": {
          "type": "string"
        },
        "HeartbeatTimeout": {
          "type": "number"
        },
        "LifecycleHookName": {
          "type": "string"
        },
        "LifecycleTransition": {
          "type": "string"
        },
        "NotificationMetadata": {
          "type": "string"
        },
        "NotificationTargetARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["LifecycleHookName", "LifecycleTransition"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": {
      "additionalProperties": false,
      "properties": {
        "Granularity": {
          "type": "string"
        },
        "Metrics": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Granularity"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": {
      "additionalProperties": false,
      "properties": {
        "InstancesDistribution": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution"
        },
        "LaunchTemplate": {
          "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate"
        }
      },
      "required": ["LaunchTemplate"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NotificationTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TopicARN": {
          "type": "string"
        }
      },
      "required": ["TopicARN"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.TagProperty": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "PropagateAtLaunch": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "PropagateAtLaunch", "Value"],
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::LaunchConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociatePublicIpAddress": {
              "type": "boolean"
            },
            "BlockDeviceMappings": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping"
              },
              "type": "array"
            },
            "ClassicLinkVPCId": {
              "type": "string"
            },
            "ClassicLinkVPCSecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EbsOptimized": {
              "type": "boolean"
            },
            "IamInstanceProfile": {
              "type": "string"
            },
            "ImageId": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "InstanceMonitoring": {
              "type": "boolean"
            },
            "InstanceType": {
              "type": "string"
            },
            "KernelId": {
              "type": "string"
            },
            "KeyName": {
              "type": "string"
            },
            "LaunchConfigurationName": {
              "type": "string"
            },
            "MetadataOptions": {
              "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOptions"
            },
            "PlacementTenancy": {
              "type": "string"
            },
            "RamDiskId": {
              "type": "string"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SpotPrice": {
              "type": "string"
            },
            "UserData": {
              "type": "string"
            }
          },
          "required": ["ImageId", "InstanceType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::LaunchConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::LaunchConfiguration.BlockDevice": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "SnapshotId": {
          "type": "string"
        },
        "Throughput": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice"
        },
        "NoDevice": {
          "type": "boolean"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "required": ["DeviceName"],
      "type": "object"
    },
    "AWS::AutoScaling::LaunchConfiguration.MetadataOptions": {
      "additionalProperties": false,
      "properties": {
        "HttpEndpoint": {
          "type": "string"
        },
        "HttpPutResponseHopLimit": {
          "type": "number"
        },
        "HttpTokens": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::AutoScaling::LifecycleHook": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingGroupName": {
              "type": "string"
            },
            "DefaultResult": {
              "type": "string"
            },
            "HeartbeatTimeout": {
              "type": "number"
            },
            "LifecycleHookName": {
              "type": "string"
            },
            "LifecycleTransition": {
              "type": "string"
            },
            "NotificationMetadata": {
              "type": "string"
            },
            "NotificationTargetARN": {
              "type": "string"
            },
            "RoleARN": {
              "type": "string"
            }
          },
          "required": ["AutoScalingGroupName", "LifecycleTransition"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::LifecycleHook"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdjustmentType": {
              "type": "string"
            },
            "AutoScalingGroupName": {
              "type": "string"
            },
            "Cooldown": {
              "type": "string"
            },
            "EstimatedInstanceWarmup": {
              "type": "number"
            },
            "MetricAggregationType": {
              "type": "string"
            },
            "MinAdjustmentMagnitude": {
              "type": "number"
            },
            "PolicyType": {
              "type": "string"
            },
            "PredictiveScalingConfiguration": {
              "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration"
            },
            "ScalingAdjustment": {
              "type": "number"
            },
            "StepAdjustments": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment"
              },
              "type": "array"
            },
            "TargetTrackingConfiguration": {
              "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration"
            }
          },
          "required": ["AutoScalingGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::ScalingPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Statistic": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace", "Statistic"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.Metric": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.MetricDataQuery": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Label": {
          "type": "string"
        },
        "MetricStat": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricStat"
        },
        "ReturnData": {
          "type": "boolean"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.MetricStat": {
      "additionalProperties": false,
      "properties": {
        "Metric": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.Metric"
        },
        "Stat": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["Metric", "Stat"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "PredefinedMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedMetricType"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacityBreachBehavior": {
          "type": "string"
        },
        "MaxCapacityBuffer": {
          "type": "number"
        },
        "MetricSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification"
          },
          "type": "array"
        },
        "Mode": {
          "type": "string"
        },
        "SchedulingBufferTime": {
          "type": "number"
        }
      },
      "required": ["MetricSpecifications"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric": {
      "additionalProperties": false,
      "properties": {
        "MetricDataQueries": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery"
          },
          "type": "array"
        }
      },
      "required": ["MetricDataQueries"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric": {
      "additionalProperties": false,
      "properties": {
        "MetricDataQueries": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery"
          },
          "type": "array"
        }
      },
      "required": ["MetricDataQueries"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric": {
      "additionalProperties": false,
      "properties": {
        "MetricDataQueries": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery"
          },
          "type": "array"
        }
      },
      "required": ["MetricDataQueries"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "CustomizedCapacityMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric"
        },
        "CustomizedLoadMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric"
        },
        "CustomizedScalingMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric"
        },
        "PredefinedLoadMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric"
        },
        "PredefinedMetricPairSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair"
        },
        "PredefinedScalingMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric"
        },
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric": {
      "additionalProperties": false,
      "properties": {
        "PredefinedMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedMetricType"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair": {
      "additionalProperties": false,
      "properties": {
        "PredefinedMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedMetricType"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric": {
      "additionalProperties": false,
      "properties": {
        "PredefinedMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedMetricType"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.StepAdjustment": {
      "additionalProperties": false,
      "properties": {
        "MetricIntervalLowerBound": {
          "type": "number"
        },
        "MetricIntervalUpperBound": {
          "type": "number"
        },
        "ScalingAdjustment": {
          "type": "number"
        }
      },
      "required": ["ScalingAdjustment"],
      "type": "object"
    },
    "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CustomizedMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification"
        },
        "DisableScaleIn": {
          "type": "boolean"
        },
        "PredefinedMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification"
        },
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::AutoScaling::ScheduledAction": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingGroupName": {
              "type": "string"
            },
            "DesiredCapacity": {
              "type": "number"
            },
            "EndTime": {
              "type": "string"
            },
            "MaxSize": {
              "type": "number"
            },
            "MinSize": {
              "type": "number"
            },
            "Recurrence": {
              "type": "string"
            },
            "StartTime": {
              "type": "string"
            },
            "TimeZone": {
              "type": "string"
            }
          },
          "required": ["AutoScalingGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::ScheduledAction"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::WarmPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingGroupName": {
              "type": "string"
            },
            "InstanceReusePolicy": {
              "$ref": "#/definitions/AWS::AutoScaling::WarmPool.InstanceReusePolicy"
            },
            "MaxGroupPreparedCapacity": {
              "type": "number"
            },
            "MinSize": {
              "type": "number"
            },
            "PoolState": {
              "type": "string"
            }
          },
          "required": ["AutoScalingGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScaling::WarmPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScaling::WarmPool.InstanceReusePolicy": {
      "additionalProperties": false,
      "properties": {
        "ReuseOnScaleIn": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationSource": {
              "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource"
            },
            "ScalingInstructions": {
              "items": {
                "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction"
              },
              "type": "array"
            }
          },
          "required": ["ApplicationSource", "ScalingInstructions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::AutoScalingPlans::ScalingPlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": {
      "additionalProperties": false,
      "properties": {
        "CloudFormationStackARN": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Statistic": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace", "Statistic"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Statistic": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace", "Statistic"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "PredefinedLoadMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedLoadMetricType"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": {
      "additionalProperties": false,
      "properties": {
        "PredefinedScalingMetricType": {
          "type": "string"
        },
        "ResourceLabel": {
          "type": "string"
        }
      },
      "required": ["PredefinedScalingMetricType"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": {
      "additionalProperties": false,
      "properties": {
        "CustomizedLoadMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification"
        },
        "DisableDynamicScaling": {
          "type": "boolean"
        },
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        },
        "PredefinedLoadMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification"
        },
        "PredictiveScalingMaxCapacityBehavior": {
          "type": "string"
        },
        "PredictiveScalingMaxCapacityBuffer": {
          "type": "number"
        },
        "PredictiveScalingMode": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        },
        "ScalableDimension": {
          "type": "string"
        },
        "ScalingPolicyUpdateBehavior": {
          "type": "string"
        },
        "ScheduledActionBufferTime": {
          "type": "number"
        },
        "ServiceNamespace": {
          "type": "string"
        },
        "TargetTrackingConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration"
          },
          "type": "array"
        }
      },
      "required": [
        "MaxCapacity",
        "MinCapacity",
        "ResourceId",
        "ScalableDimension",
        "ServiceNamespace",
        "TargetTrackingConfigurations"
      ],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.TagFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key"],
      "type": "object"
    },
    "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CustomizedScalingMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification"
        },
        "DisableScaleIn": {
          "type": "boolean"
        },
        "EstimatedInstanceWarmup": {
          "type": "number"
        },
        "PredefinedScalingMetricSpecification": {
          "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification"
        },
        "ScaleInCooldown": {
          "type": "number"
        },
        "ScaleOutCooldown": {
          "type": "number"
        },
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BackupPlan": {
              "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupPlanResourceType"
            },
            "BackupPlanTags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["BackupPlan"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Backup::BackupPlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType": {
      "additionalProperties": false,
      "properties": {
        "BackupOptions": {
          "type": "object"
        },
        "ResourceType": {
          "type": "string"
        }
      },
      "required": ["BackupOptions", "ResourceType"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan.BackupPlanResourceType": {
      "additionalProperties": false,
      "properties": {
        "AdvancedBackupSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType"
          },
          "type": "array"
        },
        "BackupPlanName": {
          "type": "string"
        },
        "BackupPlanRule": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupRuleResourceType"
          },
          "type": "array"
        }
      },
      "required": ["BackupPlanName", "BackupPlanRule"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan.BackupRuleResourceType": {
      "additionalProperties": false,
      "properties": {
        "CompletionWindowMinutes": {
          "type": "number"
        },
        "CopyActions": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupPlan.CopyActionResourceType"
          },
          "type": "array"
        },
        "EnableContinuousBackup": {
          "type": "boolean"
        },
        "Lifecycle": {
          "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType"
        },
        "RecoveryPointTags": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "RuleName": {
          "type": "string"
        },
        "ScheduleExpression": {
          "type": "string"
        },
        "StartWindowMinutes": {
          "type": "number"
        },
        "TargetBackupVault": {
          "type": "string"
        }
      },
      "required": ["RuleName", "TargetBackupVault"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan.CopyActionResourceType": {
      "additionalProperties": false,
      "properties": {
        "DestinationBackupVaultArn": {
          "type": "string"
        },
        "Lifecycle": {
          "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType"
        }
      },
      "required": ["DestinationBackupVaultArn"],
      "type": "object"
    },
    "AWS::Backup::BackupPlan.LifecycleResourceType": {
      "additionalProperties": false,
      "properties": {
        "DeleteAfterDays": {
          "type": "number"
        },
        "MoveToColdStorageAfterDays": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Backup::BackupSelection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BackupPlanId": {
              "type": "string"
            },
            "BackupSelection": {
              "$ref": "#/definitions/AWS::Backup::BackupSelection.BackupSelectionResourceType"
            }
          },
          "required": ["BackupPlanId", "BackupSelection"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Backup::BackupSelection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Backup::BackupSelection.BackupSelectionResourceType": {
      "additionalProperties": false,
      "properties": {
        "Conditions": {
          "$ref": "#/definitions/AWS::Backup::BackupSelection.Conditions"
        },
        "IamRoleArn": {
          "type": "string"
        },
        "ListOfTags": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionResourceType"
          },
          "type": "array"
        },
        "NotResources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SelectionName": {
          "type": "string"
        }
      },
      "required": ["IamRoleArn", "SelectionName"],
      "type": "object"
    },
    "AWS::Backup::BackupSelection.ConditionParameter": {
      "additionalProperties": false,
      "properties": {
        "ConditionKey": {
          "type": "string"
        },
        "ConditionValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Backup::BackupSelection.ConditionResourceType": {
      "additionalProperties": false,
      "properties": {
        "ConditionKey": {
          "type": "string"
        },
        "ConditionType": {
          "type": "string"
        },
        "ConditionValue": {
          "type": "string"
        }
      },
      "required": ["ConditionKey", "ConditionType", "ConditionValue"],
      "type": "object"
    },
    "AWS::Backup::BackupSelection.Conditions": {
      "additionalProperties": false,
      "properties": {
        "StringEquals": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter"
          },
          "type": "array"
        },
        "StringLike": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter"
          },
          "type": "array"
        },
        "StringNotEquals": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter"
          },
          "type": "array"
        },
        "StringNotLike": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Backup::BackupVault": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPolicy": {
              "type": "object"
            },
            "BackupVaultName": {
              "type": "string"
            },
            "BackupVaultTags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "EncryptionKeyArn": {
              "type": "string"
            },
            "LockConfiguration": {
              "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType"
            },
            "Notifications": {
              "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType"
            }
          },
          "required": ["BackupVaultName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Backup::BackupVault"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Backup::BackupVault.LockConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "ChangeableForDays": {
          "type": "number"
        },
        "MaxRetentionDays": {
          "type": "number"
        },
        "MinRetentionDays": {
          "type": "number"
        }
      },
      "required": ["MinRetentionDays"],
      "type": "object"
    },
    "AWS::Backup::BackupVault.NotificationObjectType": {
      "additionalProperties": false,
      "properties": {
        "BackupVaultEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SNSTopicArn": {
          "type": "string"
        }
      },
      "required": ["BackupVaultEvents", "SNSTopicArn"],
      "type": "object"
    },
    "AWS::Backup::Framework": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FrameworkControls": {
              "items": {
                "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl"
              },
              "type": "array"
            },
            "FrameworkDescription": {
              "type": "string"
            },
            "FrameworkName": {
              "type": "string"
            },
            "FrameworkTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FrameworkControls"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Backup::Framework"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Backup::Framework.ControlInputParameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterName", "ParameterValue"],
      "type": "object"
    },
    "AWS::Backup::Framework.ControlScope": {
      "additionalProperties": false,
      "properties": {
        "ComplianceResourceIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ComplianceResourceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Backup::Framework.FrameworkControl": {
      "additionalProperties": false,
      "properties": {
        "ControlInputParameters": {
          "items": {
            "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter"
          },
          "type": "array"
        },
        "ControlName": {
          "type": "string"
        },
        "ControlScope": {
          "$ref": "#/definitions/AWS::Backup::Framework.ControlScope"
        }
      },
      "required": ["ControlName"],
      "type": "object"
    },
    "AWS::Backup::ReportPlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ReportDeliveryChannel": {
              "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportDeliveryChannel"
            },
            "ReportPlanDescription": {
              "type": "string"
            },
            "ReportPlanName": {
              "type": "string"
            },
            "ReportPlanTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ReportSetting": {
              "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportSetting"
            }
          },
          "required": ["ReportDeliveryChannel", "ReportSetting"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Backup::ReportPlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Backup::ReportPlan.ReportDeliveryChannel": {
      "additionalProperties": false,
      "properties": {
        "Formats": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "S3BucketName": {
          "type": "string"
        },
        "S3KeyPrefix": {
          "type": "string"
        }
      },
      "required": ["S3BucketName"],
      "type": "object"
    },
    "AWS::Backup::ReportPlan.ReportSetting": {
      "additionalProperties": false,
      "properties": {
        "Accounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FrameworkArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OrganizationUnits": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Regions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ReportTemplate": {
          "type": "string"
        }
      },
      "required": ["ReportTemplate"],
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ComputeEnvironmentName": {
              "type": "string"
            },
            "ComputeResources": {
              "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources"
            },
            "EksConfiguration": {
              "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.EksConfiguration"
            },
            "ReplaceComputeEnvironment": {
              "type": "boolean"
            },
            "ServiceRole": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Type": {
              "type": "string"
            },
            "UnmanagedvCpus": {
              "type": "number"
            },
            "UpdatePolicy": {
              "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.UpdatePolicy"
            }
          },
          "required": ["Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Batch::ComputeEnvironment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment.ComputeResources": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "BidPercentage": {
          "type": "number"
        },
        "DesiredvCpus": {
          "type": "number"
        },
        "Ec2Configuration": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject"
          },
          "type": "array"
        },
        "Ec2KeyPair": {
          "type": "string"
        },
        "ImageId": {
          "type": "string"
        },
        "InstanceRole": {
          "type": "string"
        },
        "InstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LaunchTemplate": {
          "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification"
        },
        "MaxvCpus": {
          "type": "number"
        },
        "MinvCpus": {
          "type": "number"
        },
        "PlacementGroup": {
          "type": "string"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SpotIamFleetRole": {
          "type": "string"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Tags": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "type": "string"
        },
        "UpdateToLatestImageVersion": {
          "type": "boolean"
        }
      },
      "required": ["MaxvCpus", "Subnets", "Type"],
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": {
      "additionalProperties": false,
      "properties": {
        "ImageIdOverride": {
          "type": "string"
        },
        "ImageKubernetesVersion": {
          "type": "string"
        },
        "ImageType": {
          "type": "string"
        }
      },
      "required": ["ImageType"],
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment.EksConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EksClusterArn": {
          "type": "string"
        },
        "KubernetesNamespace": {
          "type": "string"
        }
      },
      "required": ["EksClusterArn", "KubernetesNamespace"],
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::ComputeEnvironment.UpdatePolicy": {
      "additionalProperties": false,
      "properties": {
        "JobExecutionTimeoutMinutes": {
          "type": "number"
        },
        "TerminateJobsOnUpdate": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerProperties": {
              "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties"
            },
            "EksProperties": {
              "$ref": "#/definitions/AWS::Batch::JobDefinition.EksProperties"
            },
            "JobDefinitionName": {
              "type": "string"
            },
            "NodeProperties": {
              "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties"
            },
            "Parameters": {
              "type": "object"
            },
            "PlatformCapabilities": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PropagateTags": {
              "type": "boolean"
            },
            "RetryStrategy": {
              "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy"
            },
            "SchedulingPriority": {
              "type": "number"
            },
            "Tags": {
              "type": "object"
            },
            "Timeout": {
              "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Batch::JobDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.AuthorizationConfig": {
      "additionalProperties": false,
      "properties": {
        "AccessPointId": {
          "type": "string"
        },
        "Iam": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.ContainerProperties": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Environment": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment"
          },
          "type": "array"
        },
        "ExecutionRoleArn": {
          "type": "string"
        },
        "FargatePlatformConfiguration": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.FargatePlatformConfiguration"
        },
        "Image": {
          "type": "string"
        },
        "InstanceType": {
          "type": "string"
        },
        "JobRoleArn": {
          "type": "string"
        },
        "LinuxParameters": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.LinuxParameters"
        },
        "LogConfiguration": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.LogConfiguration"
        },
        "Memory": {
          "type": "number"
        },
        "MountPoints": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints"
          },
          "type": "array"
        },
        "NetworkConfiguration": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.NetworkConfiguration"
        },
        "Privileged": {
          "type": "boolean"
        },
        "ReadonlyRootFilesystem": {
          "type": "boolean"
        },
        "ResourceRequirements": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.ResourceRequirement"
          },
          "type": "array"
        },
        "Secrets": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret"
          },
          "type": "array"
        },
        "Ulimits": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit"
          },
          "type": "array"
        },
        "User": {
          "type": "string"
        },
        "Vcpus": {
          "type": "number"
        },
        "Volumes": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes"
          },
          "type": "array"
        }
      },
      "required": ["Image"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Device": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "HostPath": {
          "type": "string"
        },
        "Permissions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EfsVolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationConfig": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.AuthorizationConfig"
        },
        "FileSystemId": {
          "type": "string"
        },
        "RootDirectory": {
          "type": "string"
        },
        "TransitEncryption": {
          "type": "string"
        },
        "TransitEncryptionPort": {
          "type": "number"
        }
      },
      "required": ["FileSystemId"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EksContainer": {
      "additionalProperties": false,
      "properties": {
        "Args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Env": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerEnvironmentVariable"
          },
          "type": "array"
        },
        "Image": {
          "type": "string"
        },
        "ImagePullPolicy": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Resources": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.Resources"
        },
        "SecurityContext": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.SecurityContext"
        },
        "VolumeMounts": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerVolumeMount"
          },
          "type": "array"
        }
      },
      "required": ["Image"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EksContainerEnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EksContainerVolumeMount": {
      "additionalProperties": false,
      "properties": {
        "MountPath": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "ReadOnly": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EksProperties": {
      "additionalProperties": false,
      "properties": {
        "PodProperties": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.PodProperties"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EksVolume": {
      "additionalProperties": false,
      "properties": {
        "EmptyDir": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.EmptyDir"
        },
        "HostPath": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.HostPath"
        },
        "Name": {
          "type": "string"
        },
        "Secret": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EmptyDir": {
      "additionalProperties": false,
      "properties": {
        "Medium": {
          "type": "string"
        },
        "SizeLimit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Environment": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.EvaluateOnExit": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "OnExitCode": {
          "type": "string"
        },
        "OnReason": {
          "type": "string"
        },
        "OnStatusReason": {
          "type": "string"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.FargatePlatformConfiguration": {
      "additionalProperties": false,
      "properties": {
        "PlatformVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.HostPath": {
      "additionalProperties": false,
      "properties": {
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.LinuxParameters": {
      "additionalProperties": false,
      "properties": {
        "Devices": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Device"
          },
          "type": "array"
        },
        "InitProcessEnabled": {
          "type": "boolean"
        },
        "MaxSwap": {
          "type": "number"
        },
        "SharedMemorySize": {
          "type": "number"
        },
        "Swappiness": {
          "type": "number"
        },
        "Tmpfs": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Tmpfs"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.LogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogDriver": {
          "type": "string"
        },
        "Options": {
          "type": "object"
        },
        "SecretOptions": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret"
          },
          "type": "array"
        }
      },
      "required": ["LogDriver"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.MountPoints": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "SourceVolume": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.NodeProperties": {
      "additionalProperties": false,
      "properties": {
        "MainNode": {
          "type": "number"
        },
        "NodeRangeProperties": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty"
          },
          "type": "array"
        },
        "NumNodes": {
          "type": "number"
        }
      },
      "required": ["MainNode", "NodeRangeProperties", "NumNodes"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.NodeRangeProperty": {
      "additionalProperties": false,
      "properties": {
        "Container": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties"
        },
        "TargetNodes": {
          "type": "string"
        }
      },
      "required": ["TargetNodes"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.PodProperties": {
      "additionalProperties": false,
      "properties": {
        "Containers": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainer"
          },
          "type": "array"
        },
        "DnsPolicy": {
          "type": "string"
        },
        "HostNetwork": {
          "type": "boolean"
        },
        "ServiceAccountName": {
          "type": "string"
        },
        "Volumes": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.EksVolume"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.ResourceRequirement": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Resources": {
      "additionalProperties": false,
      "properties": {
        "Limits": {
          "type": "object"
        },
        "Requests": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.RetryStrategy": {
      "additionalProperties": false,
      "properties": {
        "Attempts": {
          "type": "number"
        },
        "EvaluateOnExit": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::JobDefinition.EvaluateOnExit"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Secret": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ValueFrom": {
          "type": "string"
        }
      },
      "required": ["Name", "ValueFrom"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.SecurityContext": {
      "additionalProperties": false,
      "properties": {
        "Privileged": {
          "type": "boolean"
        },
        "ReadOnlyRootFilesystem": {
          "type": "boolean"
        },
        "RunAsGroup": {
          "type": "number"
        },
        "RunAsNonRoot": {
          "type": "boolean"
        },
        "RunAsUser": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Timeout": {
      "additionalProperties": false,
      "properties": {
        "AttemptDurationSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Tmpfs": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "MountOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Size": {
          "type": "number"
        }
      },
      "required": ["ContainerPath", "Size"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Ulimit": {
      "additionalProperties": false,
      "properties": {
        "HardLimit": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "SoftLimit": {
          "type": "number"
        }
      },
      "required": ["HardLimit", "Name", "SoftLimit"],
      "type": "object"
    },
    "AWS::Batch::JobDefinition.Volumes": {
      "additionalProperties": false,
      "properties": {
        "EfsVolumeConfiguration": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.EfsVolumeConfiguration"
        },
        "Host": {
          "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobDefinition.VolumesHost": {
      "additionalProperties": false,
      "properties": {
        "SourcePath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Batch::JobQueue": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ComputeEnvironmentOrder": {
              "items": {
                "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder"
              },
              "type": "array"
            },
            "JobQueueName": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            },
            "SchedulingPolicyArn": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["ComputeEnvironmentOrder", "Priority"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Batch::JobQueue"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Batch::JobQueue.ComputeEnvironmentOrder": {
      "additionalProperties": false,
      "properties": {
        "ComputeEnvironment": {
          "type": "string"
        },
        "Order": {
          "type": "number"
        }
      },
      "required": ["ComputeEnvironment", "Order"],
      "type": "object"
    },
    "AWS::Batch::SchedulingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FairsharePolicy": {
              "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Batch::SchedulingPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Batch::SchedulingPolicy.FairsharePolicy": {
      "additionalProperties": false,
      "properties": {
        "ComputeReservation": {
          "type": "number"
        },
        "ShareDecaySeconds": {
          "type": "number"
        },
        "ShareDistribution": {
          "items": {
            "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Batch::SchedulingPolicy.ShareAttributes": {
      "additionalProperties": false,
      "properties": {
        "ShareIdentifier": {
          "type": "string"
        },
        "WeightFactor": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::BillingConductor::BillingGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountGrouping": {
              "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.AccountGrouping"
            },
            "ComputationPreference": {
              "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.ComputationPreference"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PrimaryAccountId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "AccountGrouping",
            "ComputationPreference",
            "Name",
            "PrimaryAccountId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::BillingConductor::BillingGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::BillingConductor::BillingGroup.AccountGrouping": {
      "additionalProperties": false,
      "properties": {
        "LinkedAccountIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["LinkedAccountIds"],
      "type": "object"
    },
    "AWS::BillingConductor::BillingGroup.ComputationPreference": {
      "additionalProperties": false,
      "properties": {
        "PricingPlanArn": {
          "type": "string"
        }
      },
      "required": ["PricingPlanArn"],
      "type": "object"
    },
    "AWS::BillingConductor::CustomLineItem": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BillingGroupArn": {
              "type": "string"
            },
            "BillingPeriodRange": {
              "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.BillingPeriodRange"
            },
            "CustomLineItemChargeDetails": {
              "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["BillingGroupArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::BillingConductor::CustomLineItem"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::BillingConductor::CustomLineItem.BillingPeriodRange": {
      "additionalProperties": false,
      "properties": {
        "ExclusiveEndBillingPeriod": {
          "type": "string"
        },
        "InclusiveStartBillingPeriod": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails": {
      "additionalProperties": false,
      "properties": {
        "Flat": {
          "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails"
        },
        "Percentage": {
          "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails": {
      "additionalProperties": false,
      "properties": {
        "ChargeValue": {
          "type": "number"
        }
      },
      "required": ["ChargeValue"],
      "type": "object"
    },
    "AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails": {
      "additionalProperties": false,
      "properties": {
        "ChildAssociatedResources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PercentageValue": {
          "type": "number"
        }
      },
      "required": ["PercentageValue"],
      "type": "object"
    },
    "AWS::BillingConductor::PricingPlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PricingRuleArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::BillingConductor::PricingPlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::BillingConductor::PricingRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BillingEntity": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "ModifierPercentage": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Scope": {
              "type": "string"
            },
            "Service": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Tiering": {
              "$ref": "#/definitions/AWS::BillingConductor::PricingRule.Tiering"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "Scope", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::BillingConductor::PricingRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::BillingConductor::PricingRule.FreeTier": {
      "additionalProperties": false,
      "properties": {
        "Activated": {
          "type": "boolean"
        }
      },
      "required": ["Activated"],
      "type": "object"
    },
    "AWS::BillingConductor::PricingRule.Tiering": {
      "additionalProperties": false,
      "properties": {
        "FreeTier": {
          "$ref": "#/definitions/AWS::BillingConductor::PricingRule.FreeTier"
        }
      },
      "type": "object"
    },
    "AWS::Budgets::Budget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Budget": {
              "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData"
            },
            "NotificationsWithSubscribers": {
              "items": {
                "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers"
              },
              "type": "array"
            }
          },
          "required": ["Budget"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Budgets::Budget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Budgets::Budget.AutoAdjustData": {
      "additionalProperties": false,
      "properties": {
        "AutoAdjustType": {
          "type": "string"
        },
        "HistoricalOptions": {
          "$ref": "#/definitions/AWS::Budgets::Budget.HistoricalOptions"
        }
      },
      "required": ["AutoAdjustType"],
      "type": "object"
    },
    "AWS::Budgets::Budget.BudgetData": {
      "additionalProperties": false,
      "properties": {
        "AutoAdjustData": {
          "$ref": "#/definitions/AWS::Budgets::Budget.AutoAdjustData"
        },
        "BudgetLimit": {
          "$ref": "#/definitions/AWS::Budgets::Budget.Spend"
        },
        "BudgetName": {
          "type": "string"
        },
        "BudgetType": {
          "type": "string"
        },
        "CostFilters": {
          "type": "object"
        },
        "CostTypes": {
          "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes"
        },
        "PlannedBudgetLimits": {
          "type": "object"
        },
        "TimePeriod": {
          "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod"
        },
        "TimeUnit": {
          "type": "string"
        }
      },
      "required": ["BudgetType", "TimeUnit"],
      "type": "object"
    },
    "AWS::Budgets::Budget.CostTypes": {
      "additionalProperties": false,
      "properties": {
        "IncludeCredit": {
          "type": "boolean"
        },
        "IncludeDiscount": {
          "type": "boolean"
        },
        "IncludeOtherSubscription": {
          "type": "boolean"
        },
        "IncludeRecurring": {
          "type": "boolean"
        },
        "IncludeRefund": {
          "type": "boolean"
        },
        "IncludeSubscription": {
          "type": "boolean"
        },
        "IncludeSupport": {
          "type": "boolean"
        },
        "IncludeTax": {
          "type": "boolean"
        },
        "IncludeUpfront": {
          "type": "boolean"
        },
        "UseAmortized": {
          "type": "boolean"
        },
        "UseBlended": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Budgets::Budget.HistoricalOptions": {
      "additionalProperties": false,
      "properties": {
        "BudgetAdjustmentPeriod": {
          "type": "number"
        }
      },
      "required": ["BudgetAdjustmentPeriod"],
      "type": "object"
    },
    "AWS::Budgets::Budget.Notification": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "NotificationType": {
          "type": "string"
        },
        "Threshold": {
          "type": "number"
        },
        "ThresholdType": {
          "type": "string"
        }
      },
      "required": ["ComparisonOperator", "NotificationType", "Threshold"],
      "type": "object"
    },
    "AWS::Budgets::Budget.NotificationWithSubscribers": {
      "additionalProperties": false,
      "properties": {
        "Notification": {
          "$ref": "#/definitions/AWS::Budgets::Budget.Notification"
        },
        "Subscribers": {
          "items": {
            "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber"
          },
          "type": "array"
        }
      },
      "required": ["Notification", "Subscribers"],
      "type": "object"
    },
    "AWS::Budgets::Budget.Spend": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["Amount", "Unit"],
      "type": "object"
    },
    "AWS::Budgets::Budget.Subscriber": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "SubscriptionType": {
          "type": "string"
        }
      },
      "required": ["Address", "SubscriptionType"],
      "type": "object"
    },
    "AWS::Budgets::Budget.TimePeriod": {
      "additionalProperties": false,
      "properties": {
        "End": {
          "type": "string"
        },
        "Start": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActionThreshold": {
              "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ActionThreshold"
            },
            "ActionType": {
              "type": "string"
            },
            "ApprovalModel": {
              "type": "string"
            },
            "BudgetName": {
              "type": "string"
            },
            "Definition": {
              "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Definition"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "NotificationType": {
              "type": "string"
            },
            "Subscribers": {
              "items": {
                "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Subscriber"
              },
              "type": "array"
            }
          },
          "required": [
            "ActionThreshold",
            "ActionType",
            "BudgetName",
            "Definition",
            "ExecutionRoleArn",
            "NotificationType",
            "Subscribers"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Budgets::BudgetsAction"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.ActionThreshold": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.Definition": {
      "additionalProperties": false,
      "properties": {
        "IamActionDefinition": {
          "$ref": "#/definitions/AWS::Budgets::BudgetsAction.IamActionDefinition"
        },
        "ScpActionDefinition": {
          "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ScpActionDefinition"
        },
        "SsmActionDefinition": {
          "$ref": "#/definitions/AWS::Budgets::BudgetsAction.SsmActionDefinition"
        }
      },
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.IamActionDefinition": {
      "additionalProperties": false,
      "properties": {
        "Groups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PolicyArn": {
          "type": "string"
        },
        "Roles": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Users": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["PolicyArn"],
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.ScpActionDefinition": {
      "additionalProperties": false,
      "properties": {
        "PolicyId": {
          "type": "string"
        },
        "TargetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["PolicyId", "TargetIds"],
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.SsmActionDefinition": {
      "additionalProperties": false,
      "properties": {
        "InstanceIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Region": {
          "type": "string"
        },
        "Subtype": {
          "type": "string"
        }
      },
      "required": ["InstanceIds", "Region", "Subtype"],
      "type": "object"
    },
    "AWS::Budgets::BudgetsAction.Subscriber": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Address", "Type"],
      "type": "object"
    },
    "AWS::CE::AnomalyMonitor": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MonitorDimension": {
              "type": "string"
            },
            "MonitorName": {
              "type": "string"
            },
            "MonitorSpecification": {
              "type": "string"
            },
            "MonitorType": {
              "type": "string"
            },
            "ResourceTags": {
              "items": {
                "$ref": "#/definitions/AWS::CE::AnomalyMonitor.ResourceTag"
              },
              "type": "array"
            }
          },
          "required": ["MonitorName", "MonitorType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CE::AnomalyMonitor"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CE::AnomalyMonitor.ResourceTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::CE::AnomalySubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Frequency": {
              "type": "string"
            },
            "MonitorArnList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ResourceTags": {
              "items": {
                "$ref": "#/definitions/AWS::CE::AnomalySubscription.ResourceTag"
              },
              "type": "array"
            },
            "Subscribers": {
              "items": {
                "$ref": "#/definitions/AWS::CE::AnomalySubscription.Subscriber"
              },
              "type": "array"
            },
            "SubscriptionName": {
              "type": "string"
            },
            "Threshold": {
              "type": "number"
            }
          },
          "required": [
            "Frequency",
            "MonitorArnList",
            "Subscribers",
            "SubscriptionName",
            "Threshold"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CE::AnomalySubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CE::AnomalySubscription.ResourceTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::CE::AnomalySubscription.Subscriber": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Address", "Type"],
      "type": "object"
    },
    "AWS::CE::CostCategory": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultValue": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RuleVersion": {
              "type": "string"
            },
            "Rules": {
              "type": "string"
            },
            "SplitChargeRules": {
              "type": "string"
            }
          },
          "required": ["Name", "RuleVersion", "Rules"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CE::CostCategory"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CUR::ReportDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalArtifacts": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AdditionalSchemaElements": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BillingViewArn": {
              "type": "string"
            },
            "Compression": {
              "type": "string"
            },
            "Format": {
              "type": "string"
            },
            "RefreshClosedReports": {
              "type": "boolean"
            },
            "ReportName": {
              "type": "string"
            },
            "ReportVersioning": {
              "type": "string"
            },
            "S3Bucket": {
              "type": "string"
            },
            "S3Prefix": {
              "type": "string"
            },
            "S3Region": {
              "type": "string"
            },
            "TimeUnit": {
              "type": "string"
            }
          },
          "required": [
            "Compression",
            "Format",
            "RefreshClosedReports",
            "ReportName",
            "ReportVersioning",
            "S3Bucket",
            "S3Prefix",
            "S3Region",
            "TimeUnit"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CUR::ReportDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cassandra::Keyspace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "KeyspaceName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cassandra::Keyspace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Cassandra::Table": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BillingMode": {
              "$ref": "#/definitions/AWS::Cassandra::Table.BillingMode"
            },
            "ClusteringKeyColumns": {
              "items": {
                "$ref": "#/definitions/AWS::Cassandra::Table.ClusteringKeyColumn"
              },
              "type": "array"
            },
            "DefaultTimeToLive": {
              "type": "number"
            },
            "EncryptionSpecification": {
              "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification"
            },
            "KeyspaceName": {
              "type": "string"
            },
            "PartitionKeyColumns": {
              "items": {
                "$ref": "#/definitions/AWS::Cassandra::Table.Column"
              },
              "type": "array"
            },
            "PointInTimeRecoveryEnabled": {
              "type": "boolean"
            },
            "RegularColumns": {
              "items": {
                "$ref": "#/definitions/AWS::Cassandra::Table.Column"
              },
              "type": "array"
            },
            "TableName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KeyspaceName", "PartitionKeyColumns"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cassandra::Table"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cassandra::Table.BillingMode": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        },
        "ProvisionedThroughput": {
          "$ref": "#/definitions/AWS::Cassandra::Table.ProvisionedThroughput"
        }
      },
      "required": ["Mode"],
      "type": "object"
    },
    "AWS::Cassandra::Table.ClusteringKeyColumn": {
      "additionalProperties": false,
      "properties": {
        "Column": {
          "$ref": "#/definitions/AWS::Cassandra::Table.Column"
        },
        "OrderBy": {
          "type": "string"
        }
      },
      "required": ["Column"],
      "type": "object"
    },
    "AWS::Cassandra::Table.Column": {
      "additionalProperties": false,
      "properties": {
        "ColumnName": {
          "type": "string"
        },
        "ColumnType": {
          "type": "string"
        }
      },
      "required": ["ColumnName", "ColumnType"],
      "type": "object"
    },
    "AWS::Cassandra::Table.EncryptionSpecification": {
      "additionalProperties": false,
      "properties": {
        "EncryptionType": {
          "type": "string"
        },
        "KmsKeyIdentifier": {
          "type": "string"
        }
      },
      "required": ["EncryptionType"],
      "type": "object"
    },
    "AWS::Cassandra::Table.ProvisionedThroughput": {
      "additionalProperties": false,
      "properties": {
        "ReadCapacityUnits": {
          "type": "number"
        },
        "WriteCapacityUnits": {
          "type": "number"
        }
      },
      "required": ["ReadCapacityUnits", "WriteCapacityUnits"],
      "type": "object"
    },
    "AWS::CertificateManager::Account": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExpiryEventsConfiguration": {
              "$ref": "#/definitions/AWS::CertificateManager::Account.ExpiryEventsConfiguration"
            }
          },
          "required": ["ExpiryEventsConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CertificateManager::Account"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CertificateManager::Account.ExpiryEventsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DaysBeforeExpiry": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::CertificateManager::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateAuthorityArn": {
              "type": "string"
            },
            "CertificateTransparencyLoggingPreference": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "DomainValidationOptions": {
              "items": {
                "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption"
              },
              "type": "array"
            },
            "SubjectAlternativeNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ValidationMethod": {
              "type": "string"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CertificateManager::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CertificateManager::Certificate.DomainValidationOption": {
      "additionalProperties": false,
      "properties": {
        "DomainName": {
          "type": "string"
        },
        "HostedZoneId": {
          "type": "string"
        },
        "ValidationDomain": {
          "type": "string"
        }
      },
      "required": ["DomainName"],
      "type": "object"
    },
    "AWS::Chatbot::SlackChannelConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigurationName": {
              "type": "string"
            },
            "GuardrailPolicies": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "IamRoleArn": {
              "type": "string"
            },
            "LoggingLevel": {
              "type": "string"
            },
            "SlackChannelId": {
              "type": "string"
            },
            "SlackWorkspaceId": {
              "type": "string"
            },
            "SnsTopicArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "UserRoleRequired": {
              "type": "boolean"
            }
          },
          "required": [
            "ConfigurationName",
            "IamRoleArn",
            "SlackChannelId",
            "SlackWorkspaceId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Chatbot::SlackChannelConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cloud9::EnvironmentEC2": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutomaticStopTimeMinutes": {
              "type": "number"
            },
            "ConnectionType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "ImageId": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "OwnerArn": {
              "type": "string"
            },
            "Repositories": {
              "items": {
                "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InstanceType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cloud9::EnvironmentEC2"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cloud9::EnvironmentEC2.Repository": {
      "additionalProperties": false,
      "properties": {
        "PathComponent": {
          "type": "string"
        },
        "RepositoryUrl": {
          "type": "string"
        }
      },
      "required": ["PathComponent", "RepositoryUrl"],
      "type": "object"
    },
    "AWS::CloudFormation::CustomResource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ServiceToken": {
              "type": "string"
            }
          },
          "required": ["ServiceToken"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::CustomResource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::HookDefaultVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "TypeName": {
              "type": "string"
            },
            "TypeVersionArn": {
              "type": "string"
            },
            "VersionId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::HookDefaultVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::HookTypeConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Configuration": {
              "type": "string"
            },
            "ConfigurationAlias": {
              "type": "string"
            },
            "TypeArn": {
              "type": "string"
            },
            "TypeName": {
              "type": "string"
            }
          },
          "required": ["Configuration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::HookTypeConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::HookVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExecutionRoleArn": {
              "type": "string"
            },
            "LoggingConfig": {
              "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig"
            },
            "SchemaHandlerPackage": {
              "type": "string"
            },
            "TypeName": {
              "type": "string"
            }
          },
          "required": ["SchemaHandlerPackage", "TypeName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::HookVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::HookVersion.LoggingConfig": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        },
        "LogRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::Macro": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "FunctionName": {
              "type": "string"
            },
            "LogGroupName": {
              "type": "string"
            },
            "LogRoleARN": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["FunctionName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::Macro"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::ModuleDefaultVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Arn": {
              "type": "string"
            },
            "ModuleName": {
              "type": "string"
            },
            "VersionId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::ModuleDefaultVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::ModuleVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ModuleName": {
              "type": "string"
            },
            "ModulePackage": {
              "type": "string"
            }
          },
          "required": ["ModuleName", "ModulePackage"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::ModuleVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::PublicTypeVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Arn": {
              "type": "string"
            },
            "LogDeliveryBucket": {
              "type": "string"
            },
            "PublicVersionNumber": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "TypeName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::PublicTypeVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::Publisher": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptTermsAndConditions": {
              "type": "boolean"
            },
            "ConnectionArn": {
              "type": "string"
            }
          },
          "required": ["AcceptTermsAndConditions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::Publisher"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::ResourceDefaultVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "TypeName": {
              "type": "string"
            },
            "TypeVersionArn": {
              "type": "string"
            },
            "VersionId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::ResourceDefaultVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::ResourceVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExecutionRoleArn": {
              "type": "string"
            },
            "LoggingConfig": {
              "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion.LoggingConfig"
            },
            "SchemaHandlerPackage": {
              "type": "string"
            },
            "TypeName": {
              "type": "string"
            }
          },
          "required": ["SchemaHandlerPackage", "TypeName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::ResourceVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::ResourceVersion.LoggingConfig": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        },
        "LogRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::Stack": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "NotificationARNs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Parameters": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateURL": {
              "type": "string"
            },
            "TimeoutInMinutes": {
              "type": "number"
            }
          },
          "required": ["TemplateURL"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::Stack"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::StackSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdministrationRoleARN": {
              "type": "string"
            },
            "AutoDeployment": {
              "$ref": "#/definitions/AWS::CloudFormation::StackSet.AutoDeployment"
            },
            "CallAs": {
              "type": "string"
            },
            "Capabilities": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "ExecutionRoleName": {
              "type": "string"
            },
            "ManagedExecution": {
              "$ref": "#/definitions/AWS::CloudFormation::StackSet.ManagedExecution"
            },
            "OperationPreferences": {
              "$ref": "#/definitions/AWS::CloudFormation::StackSet.OperationPreferences"
            },
            "Parameters": {
              "items": {
                "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter"
              },
              "type": "array"
            },
            "PermissionModel": {
              "type": "string"
            },
            "StackInstancesGroup": {
              "items": {
                "$ref": "#/definitions/AWS::CloudFormation::StackSet.StackInstances"
              },
              "type": "array"
            },
            "StackSetName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateBody": {
              "type": "string"
            },
            "TemplateURL": {
              "type": "string"
            }
          },
          "required": ["PermissionModel", "StackSetName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::StackSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.AutoDeployment": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "RetainStacksOnAccountRemoval": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.DeploymentTargets": {
      "additionalProperties": false,
      "properties": {
        "AccountFilterType": {
          "type": "string"
        },
        "Accounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OrganizationalUnitIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.ManagedExecution": {
      "additionalProperties": false,
      "properties": {
        "Active": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.OperationPreferences": {
      "additionalProperties": false,
      "properties": {
        "FailureToleranceCount": {
          "type": "number"
        },
        "FailureTolerancePercentage": {
          "type": "number"
        },
        "MaxConcurrentCount": {
          "type": "number"
        },
        "MaxConcurrentPercentage": {
          "type": "number"
        },
        "RegionConcurrencyType": {
          "type": "string"
        },
        "RegionOrder": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.Parameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterKey": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterKey", "ParameterValue"],
      "type": "object"
    },
    "AWS::CloudFormation::StackSet.StackInstances": {
      "additionalProperties": false,
      "properties": {
        "DeploymentTargets": {
          "$ref": "#/definitions/AWS::CloudFormation::StackSet.DeploymentTargets"
        },
        "ParameterOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter"
          },
          "type": "array"
        },
        "Regions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["DeploymentTargets", "Regions"],
      "type": "object"
    },
    "AWS::CloudFormation::TypeActivation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoUpdate": {
              "type": "boolean"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "LoggingConfig": {
              "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig"
            },
            "MajorVersion": {
              "type": "string"
            },
            "PublicTypeArn": {
              "type": "string"
            },
            "PublisherId": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "TypeName": {
              "type": "string"
            },
            "TypeNameAlias": {
              "type": "string"
            },
            "VersionBump": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::TypeActivation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::TypeActivation.LoggingConfig": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        },
        "LogRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFormation::WaitCondition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "CreationPolicy": {
          "type": "object"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Count": {
              "type": "number"
            },
            "Handle": {
              "type": "string"
            },
            "Timeout": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::WaitCondition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFormation::WaitConditionHandle": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {},
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFormation::WaitConditionHandle"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CachePolicyConfig": {
              "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CachePolicyConfig"
            }
          },
          "required": ["CachePolicyConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::CachePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy.CachePolicyConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "DefaultTTL": {
          "type": "number"
        },
        "MaxTTL": {
          "type": "number"
        },
        "MinTTL": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "ParametersInCacheKeyAndForwardedToOrigin": {
          "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin"
        }
      },
      "required": [
        "DefaultTTL",
        "MaxTTL",
        "MinTTL",
        "Name",
        "ParametersInCacheKeyAndForwardedToOrigin"
      ],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy.CookiesConfig": {
      "additionalProperties": false,
      "properties": {
        "CookieBehavior": {
          "type": "string"
        },
        "Cookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CookieBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy.HeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "HeaderBehavior": {
          "type": "string"
        },
        "Headers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["HeaderBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin": {
      "additionalProperties": false,
      "properties": {
        "CookiesConfig": {
          "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig"
        },
        "EnableAcceptEncodingBrotli": {
          "type": "boolean"
        },
        "EnableAcceptEncodingGzip": {
          "type": "boolean"
        },
        "HeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig"
        },
        "QueryStringsConfig": {
          "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig"
        }
      },
      "required": [
        "CookiesConfig",
        "EnableAcceptEncodingGzip",
        "HeadersConfig",
        "QueryStringsConfig"
      ],
      "type": "object"
    },
    "AWS::CloudFront::CachePolicy.QueryStringsConfig": {
      "additionalProperties": false,
      "properties": {
        "QueryStringBehavior": {
          "type": "string"
        },
        "QueryStrings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["QueryStringBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::CloudFrontOriginAccessIdentity": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CloudFrontOriginAccessIdentityConfig": {
              "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig"
            }
          },
          "required": ["CloudFrontOriginAccessIdentityConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::CloudFrontOriginAccessIdentity"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        }
      },
      "required": ["Comment"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContinuousDeploymentPolicyConfig": {
              "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig"
            }
          },
          "required": ["ContinuousDeploymentPolicyConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::ContinuousDeploymentPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "StagingDistributionDnsNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TrafficConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.TrafficConfig"
        }
      },
      "required": ["Enabled", "StagingDistributionDnsNames"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig": {
      "additionalProperties": false,
      "properties": {
        "IdleTTL": {
          "type": "number"
        },
        "MaximumTTL": {
          "type": "number"
        }
      },
      "required": ["IdleTTL", "MaximumTTL"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Header", "Value"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig": {
      "additionalProperties": false,
      "properties": {
        "SessionStickinessConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["Weight"],
      "type": "object"
    },
    "AWS::CloudFront::ContinuousDeploymentPolicy.TrafficConfig": {
      "additionalProperties": false,
      "properties": {
        "SingleHeaderConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig"
        },
        "SingleWeightConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DistributionConfig": {
              "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DistributionConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::Distribution"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.CacheBehavior": {
      "additionalProperties": false,
      "properties": {
        "AllowedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CachePolicyId": {
          "type": "string"
        },
        "CachedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Compress": {
          "type": "boolean"
        },
        "DefaultTTL": {
          "type": "number"
        },
        "FieldLevelEncryptionId": {
          "type": "string"
        },
        "ForwardedValues": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues"
        },
        "FunctionAssociations": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation"
          },
          "type": "array"
        },
        "LambdaFunctionAssociations": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation"
          },
          "type": "array"
        },
        "MaxTTL": {
          "type": "number"
        },
        "MinTTL": {
          "type": "number"
        },
        "OriginRequestPolicyId": {
          "type": "string"
        },
        "PathPattern": {
          "type": "string"
        },
        "RealtimeLogConfigArn": {
          "type": "string"
        },
        "ResponseHeadersPolicyId": {
          "type": "string"
        },
        "SmoothStreaming": {
          "type": "boolean"
        },
        "TargetOriginId": {
          "type": "string"
        },
        "TrustedKeyGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TrustedSigners": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ViewerProtocolPolicy": {
          "type": "string"
        }
      },
      "required": ["PathPattern", "TargetOriginId", "ViewerProtocolPolicy"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.Cookies": {
      "additionalProperties": false,
      "properties": {
        "Forward": {
          "type": "string"
        },
        "WhitelistedNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Forward"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.CustomErrorResponse": {
      "additionalProperties": false,
      "properties": {
        "ErrorCachingMinTTL": {
          "type": "number"
        },
        "ErrorCode": {
          "type": "number"
        },
        "ResponseCode": {
          "type": "number"
        },
        "ResponsePagePath": {
          "type": "string"
        }
      },
      "required": ["ErrorCode"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.CustomOriginConfig": {
      "additionalProperties": false,
      "properties": {
        "HTTPPort": {
          "type": "number"
        },
        "HTTPSPort": {
          "type": "number"
        },
        "OriginKeepaliveTimeout": {
          "type": "number"
        },
        "OriginProtocolPolicy": {
          "type": "string"
        },
        "OriginReadTimeout": {
          "type": "number"
        },
        "OriginSSLProtocols": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["OriginProtocolPolicy"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.DefaultCacheBehavior": {
      "additionalProperties": false,
      "properties": {
        "AllowedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CachePolicyId": {
          "type": "string"
        },
        "CachedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Compress": {
          "type": "boolean"
        },
        "DefaultTTL": {
          "type": "number"
        },
        "FieldLevelEncryptionId": {
          "type": "string"
        },
        "ForwardedValues": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues"
        },
        "FunctionAssociations": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation"
          },
          "type": "array"
        },
        "LambdaFunctionAssociations": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation"
          },
          "type": "array"
        },
        "MaxTTL": {
          "type": "number"
        },
        "MinTTL": {
          "type": "number"
        },
        "OriginRequestPolicyId": {
          "type": "string"
        },
        "RealtimeLogConfigArn": {
          "type": "string"
        },
        "ResponseHeadersPolicyId": {
          "type": "string"
        },
        "SmoothStreaming": {
          "type": "boolean"
        },
        "TargetOriginId": {
          "type": "string"
        },
        "TrustedKeyGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TrustedSigners": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ViewerProtocolPolicy": {
          "type": "string"
        }
      },
      "required": ["TargetOriginId", "ViewerProtocolPolicy"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.DistributionConfig": {
      "additionalProperties": false,
      "properties": {
        "Aliases": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CNAMEs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CacheBehaviors": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior"
          },
          "type": "array"
        },
        "Comment": {
          "type": "string"
        },
        "ContinuousDeploymentPolicyId": {
          "type": "string"
        },
        "CustomErrorResponses": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse"
          },
          "type": "array"
        },
        "CustomOrigin": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyCustomOrigin"
        },
        "DefaultCacheBehavior": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior"
        },
        "DefaultRootObject": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "HttpVersion": {
          "type": "string"
        },
        "IPV6Enabled": {
          "type": "boolean"
        },
        "Logging": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging"
        },
        "OriginGroups": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroups"
        },
        "Origins": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin"
          },
          "type": "array"
        },
        "PriceClass": {
          "type": "string"
        },
        "Restrictions": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions"
        },
        "S3Origin": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyS3Origin"
        },
        "Staging": {
          "type": "boolean"
        },
        "ViewerCertificate": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate"
        },
        "WebACLId": {
          "type": "string"
        }
      },
      "required": ["DefaultCacheBehavior", "Enabled"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.ForwardedValues": {
      "additionalProperties": false,
      "properties": {
        "Cookies": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies"
        },
        "Headers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "QueryString": {
          "type": "boolean"
        },
        "QueryStringCacheKeys": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["QueryString"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.FunctionAssociation": {
      "additionalProperties": false,
      "properties": {
        "EventType": {
          "type": "string"
        },
        "FunctionARN": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::Distribution.GeoRestriction": {
      "additionalProperties": false,
      "properties": {
        "Locations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RestrictionType": {
          "type": "string"
        }
      },
      "required": ["RestrictionType"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.LambdaFunctionAssociation": {
      "additionalProperties": false,
      "properties": {
        "EventType": {
          "type": "string"
        },
        "IncludeBody": {
          "type": "boolean"
        },
        "LambdaFunctionARN": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::Distribution.LegacyCustomOrigin": {
      "additionalProperties": false,
      "properties": {
        "DNSName": {
          "type": "string"
        },
        "HTTPPort": {
          "type": "number"
        },
        "HTTPSPort": {
          "type": "number"
        },
        "OriginProtocolPolicy": {
          "type": "string"
        },
        "OriginSSLProtocols": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["DNSName", "OriginProtocolPolicy", "OriginSSLProtocols"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.LegacyS3Origin": {
      "additionalProperties": false,
      "properties": {
        "DNSName": {
          "type": "string"
        },
        "OriginAccessIdentity": {
          "type": "string"
        }
      },
      "required": ["DNSName"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.Logging": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "IncludeCookies": {
          "type": "boolean"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.Origin": {
      "additionalProperties": false,
      "properties": {
        "ConnectionAttempts": {
          "type": "number"
        },
        "ConnectionTimeout": {
          "type": "number"
        },
        "CustomOriginConfig": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig"
        },
        "DomainName": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "OriginAccessControlId": {
          "type": "string"
        },
        "OriginCustomHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader"
          },
          "type": "array"
        },
        "OriginPath": {
          "type": "string"
        },
        "OriginShield": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield"
        },
        "S3OriginConfig": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig"
        }
      },
      "required": ["DomainName", "Id"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginCustomHeader": {
      "additionalProperties": false,
      "properties": {
        "HeaderName": {
          "type": "string"
        },
        "HeaderValue": {
          "type": "string"
        }
      },
      "required": ["HeaderName", "HeaderValue"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginGroup": {
      "additionalProperties": false,
      "properties": {
        "FailoverCriteria": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupFailoverCriteria"
        },
        "Id": {
          "type": "string"
        },
        "Members": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMembers"
        }
      },
      "required": ["FailoverCriteria", "Id", "Members"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginGroupFailoverCriteria": {
      "additionalProperties": false,
      "properties": {
        "StatusCodes": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.StatusCodes"
        }
      },
      "required": ["StatusCodes"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginGroupMember": {
      "additionalProperties": false,
      "properties": {
        "OriginId": {
          "type": "string"
        }
      },
      "required": ["OriginId"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginGroupMembers": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMember"
          },
          "type": "array"
        },
        "Quantity": {
          "type": "number"
        }
      },
      "required": ["Items", "Quantity"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginGroups": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroup"
          },
          "type": "array"
        },
        "Quantity": {
          "type": "number"
        }
      },
      "required": ["Quantity"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.OriginShield": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "OriginShieldRegion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::Distribution.Restrictions": {
      "additionalProperties": false,
      "properties": {
        "GeoRestriction": {
          "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction"
        }
      },
      "required": ["GeoRestriction"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.S3OriginConfig": {
      "additionalProperties": false,
      "properties": {
        "OriginAccessIdentity": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::Distribution.StatusCodes": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Quantity": {
          "type": "number"
        }
      },
      "required": ["Items", "Quantity"],
      "type": "object"
    },
    "AWS::CloudFront::Distribution.ViewerCertificate": {
      "additionalProperties": false,
      "properties": {
        "AcmCertificateArn": {
          "type": "string"
        },
        "CloudFrontDefaultCertificate": {
          "type": "boolean"
        },
        "IamCertificateId": {
          "type": "string"
        },
        "MinimumProtocolVersion": {
          "type": "string"
        },
        "SslSupportMethod": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::Function": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoPublish": {
              "type": "boolean"
            },
            "FunctionCode": {
              "type": "string"
            },
            "FunctionConfig": {
              "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig"
            },
            "FunctionMetadata": {
              "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["FunctionCode", "FunctionConfig", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::Function"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::Function.FunctionConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "Runtime": {
          "type": "string"
        }
      },
      "required": ["Comment", "Runtime"],
      "type": "object"
    },
    "AWS::CloudFront::Function.FunctionMetadata": {
      "additionalProperties": false,
      "properties": {
        "FunctionARN": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::KeyGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "KeyGroupConfig": {
              "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig"
            }
          },
          "required": ["KeyGroupConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::KeyGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::KeyGroup.KeyGroupConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Items", "Name"],
      "type": "object"
    },
    "AWS::CloudFront::MonitoringSubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DistributionId": {
              "type": "string"
            },
            "MonitoringSubscription": {
              "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription.MonitoringSubscription"
            }
          },
          "required": ["DistributionId", "MonitoringSubscription"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::MonitoringSubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::MonitoringSubscription.MonitoringSubscription": {
      "additionalProperties": false,
      "properties": {
        "RealtimeMetricsSubscriptionConfig": {
          "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription.RealtimeMetricsSubscriptionConfig"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::MonitoringSubscription.RealtimeMetricsSubscriptionConfig": {
      "additionalProperties": false,
      "properties": {
        "RealtimeMetricsSubscriptionStatus": {
          "type": "string"
        }
      },
      "required": ["RealtimeMetricsSubscriptionStatus"],
      "type": "object"
    },
    "AWS::CloudFront::OriginAccessControl": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "OriginAccessControlConfig": {
              "$ref": "#/definitions/AWS::CloudFront::OriginAccessControl.OriginAccessControlConfig"
            }
          },
          "required": ["OriginAccessControlConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::OriginAccessControl"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::OriginAccessControl.OriginAccessControlConfig": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "OriginAccessControlOriginType": {
          "type": "string"
        },
        "SigningBehavior": {
          "type": "string"
        },
        "SigningProtocol": {
          "type": "string"
        }
      },
      "required": [
        "Name",
        "OriginAccessControlOriginType",
        "SigningBehavior",
        "SigningProtocol"
      ],
      "type": "object"
    },
    "AWS::CloudFront::OriginRequestPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "OriginRequestPolicyConfig": {
              "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig"
            }
          },
          "required": ["OriginRequestPolicyConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::OriginRequestPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::OriginRequestPolicy.CookiesConfig": {
      "additionalProperties": false,
      "properties": {
        "CookieBehavior": {
          "type": "string"
        },
        "Cookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CookieBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::OriginRequestPolicy.HeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "HeaderBehavior": {
          "type": "string"
        },
        "Headers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["HeaderBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "CookiesConfig": {
          "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.CookiesConfig"
        },
        "HeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.HeadersConfig"
        },
        "Name": {
          "type": "string"
        },
        "QueryStringsConfig": {
          "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig"
        }
      },
      "required": [
        "CookiesConfig",
        "HeadersConfig",
        "Name",
        "QueryStringsConfig"
      ],
      "type": "object"
    },
    "AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig": {
      "additionalProperties": false,
      "properties": {
        "QueryStringBehavior": {
          "type": "string"
        },
        "QueryStrings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["QueryStringBehavior"],
      "type": "object"
    },
    "AWS::CloudFront::PublicKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PublicKeyConfig": {
              "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig"
            }
          },
          "required": ["PublicKeyConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::PublicKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::PublicKey.PublicKeyConfig": {
      "additionalProperties": false,
      "properties": {
        "CallerReference": {
          "type": "string"
        },
        "Comment": {
          "type": "string"
        },
        "EncodedKey": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CallerReference", "EncodedKey", "Name"],
      "type": "object"
    },
    "AWS::CloudFront::RealtimeLogConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndPoints": {
              "items": {
                "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint"
              },
              "type": "array"
            },
            "Fields": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "SamplingRate": {
              "type": "number"
            }
          },
          "required": ["EndPoints", "Fields", "Name", "SamplingRate"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::RealtimeLogConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::RealtimeLogConfig.EndPoint": {
      "additionalProperties": false,
      "properties": {
        "KinesisStreamConfig": {
          "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig"
        },
        "StreamType": {
          "type": "string"
        }
      },
      "required": ["KinesisStreamConfig", "StreamType"],
      "type": "object"
    },
    "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "StreamArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "StreamArn"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResponseHeadersPolicyConfig": {
              "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig"
            }
          },
          "required": ["ResponseHeadersPolicyConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::ResponseHeadersPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": {
      "additionalProperties": false,
      "properties": {
        "ContentSecurityPolicy": {
          "type": "string"
        },
        "Override": {
          "type": "boolean"
        }
      },
      "required": ["ContentSecurityPolicy", "Override"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": {
      "additionalProperties": false,
      "properties": {
        "Override": {
          "type": "boolean"
        }
      },
      "required": ["Override"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": {
      "additionalProperties": false,
      "properties": {
        "AccessControlAllowCredentials": {
          "type": "boolean"
        },
        "AccessControlAllowHeaders": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders"
        },
        "AccessControlAllowMethods": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods"
        },
        "AccessControlAllowOrigins": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins"
        },
        "AccessControlExposeHeaders": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders"
        },
        "AccessControlMaxAgeSec": {
          "type": "number"
        },
        "OriginOverride": {
          "type": "boolean"
        }
      },
      "required": [
        "AccessControlAllowCredentials",
        "AccessControlAllowHeaders",
        "AccessControlAllowMethods",
        "AccessControlAllowOrigins",
        "OriginOverride"
      ],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "string"
        },
        "Override": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Header", "Override", "Value"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": {
      "additionalProperties": false,
      "properties": {
        "FrameOption": {
          "type": "string"
        },
        "Override": {
          "type": "boolean"
        }
      },
      "required": ["FrameOption", "Override"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": {
      "additionalProperties": false,
      "properties": {
        "Override": {
          "type": "boolean"
        },
        "ReferrerPolicy": {
          "type": "string"
        }
      },
      "required": ["Override", "ReferrerPolicy"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.RemoveHeader": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "string"
        }
      },
      "required": ["Header"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeader"
          },
          "type": "array"
        }
      },
      "required": ["Items"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "CorsConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig"
        },
        "CustomHeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig"
        },
        "Name": {
          "type": "string"
        },
        "RemoveHeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig"
        },
        "SecurityHeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig"
        },
        "ServerTimingHeadersConfig": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "ContentSecurityPolicy": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy"
        },
        "ContentTypeOptions": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions"
        },
        "FrameOptions": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions"
        },
        "ReferrerPolicy": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy"
        },
        "StrictTransportSecurity": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity"
        },
        "XSSProtection": {
          "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection"
        }
      },
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "SamplingRate": {
          "type": "number"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": {
      "additionalProperties": false,
      "properties": {
        "AccessControlMaxAgeSec": {
          "type": "number"
        },
        "IncludeSubdomains": {
          "type": "boolean"
        },
        "Override": {
          "type": "boolean"
        },
        "Preload": {
          "type": "boolean"
        }
      },
      "required": ["AccessControlMaxAgeSec", "Override"],
      "type": "object"
    },
    "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": {
      "additionalProperties": false,
      "properties": {
        "ModeBlock": {
          "type": "boolean"
        },
        "Override": {
          "type": "boolean"
        },
        "Protection": {
          "type": "boolean"
        },
        "ReportUri": {
          "type": "string"
        }
      },
      "required": ["Override", "Protection"],
      "type": "object"
    },
    "AWS::CloudFront::StreamingDistribution": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "StreamingDistributionConfig": {
              "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["StreamingDistributionConfig", "Tags"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudFront::StreamingDistribution"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudFront::StreamingDistribution.Logging": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Enabled", "Prefix"],
      "type": "object"
    },
    "AWS::CloudFront::StreamingDistribution.S3Origin": {
      "additionalProperties": false,
      "properties": {
        "DomainName": {
          "type": "string"
        },
        "OriginAccessIdentity": {
          "type": "string"
        }
      },
      "required": ["DomainName", "OriginAccessIdentity"],
      "type": "object"
    },
    "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": {
      "additionalProperties": false,
      "properties": {
        "Aliases": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Comment": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Logging": {
          "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging"
        },
        "PriceClass": {
          "type": "string"
        },
        "S3Origin": {
          "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin"
        },
        "TrustedSigners": {
          "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners"
        }
      },
      "required": ["Comment", "Enabled", "S3Origin", "TrustedSigners"],
      "type": "object"
    },
    "AWS::CloudFront::StreamingDistribution.TrustedSigners": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountNumbers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::CloudTrail::EventDataStore": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdvancedEventSelectors": {
              "items": {
                "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedEventSelector"
              },
              "type": "array"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MultiRegionEnabled": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "OrganizationEnabled": {
              "type": "boolean"
            },
            "RetentionPeriod": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TerminationProtectionEnabled": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudTrail::EventDataStore"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudTrail::EventDataStore.AdvancedEventSelector": {
      "additionalProperties": false,
      "properties": {
        "FieldSelectors": {
          "items": {
            "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedFieldSelector"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["FieldSelectors"],
      "type": "object"
    },
    "AWS::CloudTrail::EventDataStore.AdvancedFieldSelector": {
      "additionalProperties": false,
      "properties": {
        "EndsWith": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Equals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Field": {
          "type": "string"
        },
        "NotEndsWith": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "NotEquals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "NotStartsWith": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StartsWith": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Field"],
      "type": "object"
    },
    "AWS::CloudTrail::Trail": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CloudWatchLogsLogGroupArn": {
              "type": "string"
            },
            "CloudWatchLogsRoleArn": {
              "type": "string"
            },
            "EnableLogFileValidation": {
              "type": "boolean"
            },
            "EventSelectors": {
              "items": {
                "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector"
              },
              "type": "array"
            },
            "IncludeGlobalServiceEvents": {
              "type": "boolean"
            },
            "InsightSelectors": {
              "items": {
                "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector"
              },
              "type": "array"
            },
            "IsLogging": {
              "type": "boolean"
            },
            "IsMultiRegionTrail": {
              "type": "boolean"
            },
            "IsOrganizationTrail": {
              "type": "boolean"
            },
            "KMSKeyId": {
              "type": "string"
            },
            "S3BucketName": {
              "type": "string"
            },
            "S3KeyPrefix": {
              "type": "string"
            },
            "SnsTopicName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TrailName": {
              "type": "string"
            }
          },
          "required": ["IsLogging", "S3BucketName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudTrail::Trail"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudTrail::Trail.DataResource": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudTrail::Trail.EventSelector": {
      "additionalProperties": false,
      "properties": {
        "DataResources": {
          "items": {
            "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource"
          },
          "type": "array"
        },
        "ExcludeManagementEventSources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludeManagementEvents": {
          "type": "boolean"
        },
        "ReadWriteType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudTrail::Trail.InsightSelector": {
      "additionalProperties": false,
      "properties": {
        "InsightType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudWatch::Alarm": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActionsEnabled": {
              "type": "boolean"
            },
            "AlarmActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AlarmDescription": {
              "type": "string"
            },
            "AlarmName": {
              "type": "string"
            },
            "ComparisonOperator": {
              "type": "string"
            },
            "DatapointsToAlarm": {
              "type": "number"
            },
            "Dimensions": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension"
              },
              "type": "array"
            },
            "EvaluateLowSampleCountPercentile": {
              "type": "string"
            },
            "EvaluationPeriods": {
              "type": "number"
            },
            "ExtendedStatistic": {
              "type": "string"
            },
            "InsufficientDataActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MetricName": {
              "type": "string"
            },
            "Metrics": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery"
              },
              "type": "array"
            },
            "Namespace": {
              "type": "string"
            },
            "OKActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Period": {
              "type": "number"
            },
            "Statistic": {
              "type": "string"
            },
            "Threshold": {
              "type": "number"
            },
            "ThresholdMetricId": {
              "type": "string"
            },
            "TreatMissingData": {
              "type": "string"
            },
            "Unit": {
              "type": "string"
            }
          },
          "required": ["ComparisonOperator", "EvaluationPeriods"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::Alarm"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudWatch::Alarm.Dimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::CloudWatch::Alarm.Metric": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudWatch::Alarm.MetricDataQuery": {
      "additionalProperties": false,
      "properties": {
        "AccountId": {
          "type": "string"
        },
        "Expression": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Label": {
          "type": "string"
        },
        "MetricStat": {
          "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat"
        },
        "Period": {
          "type": "number"
        },
        "ReturnData": {
          "type": "boolean"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::CloudWatch::Alarm.MetricStat": {
      "additionalProperties": false,
      "properties": {
        "Metric": {
          "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric"
        },
        "Period": {
          "type": "number"
        },
        "Stat": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["Metric", "Period", "Stat"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Configuration": {
              "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Configuration"
            },
            "Dimensions": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension"
              },
              "type": "array"
            },
            "MetricMathAnomalyDetector": {
              "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector"
            },
            "MetricName": {
              "type": "string"
            },
            "Namespace": {
              "type": "string"
            },
            "SingleMetricAnomalyDetector": {
              "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector"
            },
            "Stat": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::AnomalyDetector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.Configuration": {
      "additionalProperties": false,
      "properties": {
        "ExcludedTimeRanges": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Range"
          },
          "type": "array"
        },
        "MetricTimeZone": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.Dimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.Metric": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": {
      "additionalProperties": false,
      "properties": {
        "AccountId": {
          "type": "string"
        },
        "Expression": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Label": {
          "type": "string"
        },
        "MetricStat": {
          "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat"
        },
        "Period": {
          "type": "number"
        },
        "ReturnData": {
          "type": "boolean"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector": {
      "additionalProperties": false,
      "properties": {
        "MetricDataQueries": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricDataQuery"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.MetricStat": {
      "additionalProperties": false,
      "properties": {
        "Metric": {
          "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric"
        },
        "Period": {
          "type": "number"
        },
        "Stat": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["Metric", "Period", "Stat"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.Range": {
      "additionalProperties": false,
      "properties": {
        "EndTime": {
          "type": "string"
        },
        "StartTime": {
          "type": "string"
        }
      },
      "required": ["EndTime", "StartTime"],
      "type": "object"
    },
    "AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Stat": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CloudWatch::CompositeAlarm": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActionsEnabled": {
              "type": "boolean"
            },
            "ActionsSuppressor": {
              "type": "string"
            },
            "ActionsSuppressorExtensionPeriod": {
              "type": "number"
            },
            "ActionsSuppressorWaitPeriod": {
              "type": "number"
            },
            "AlarmActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AlarmDescription": {
              "type": "string"
            },
            "AlarmName": {
              "type": "string"
            },
            "AlarmRule": {
              "type": "string"
            },
            "InsufficientDataActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "OKActions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["AlarmRule"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::CompositeAlarm"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudWatch::Dashboard": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DashboardBody": {
              "type": "string"
            },
            "DashboardName": {
              "type": "string"
            }
          },
          "required": ["DashboardBody"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::Dashboard"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudWatch::InsightRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RuleBody": {
              "type": "string"
            },
            "RuleName": {
              "type": "string"
            },
            "RuleState": {
              "type": "string"
            },
            "Tags": {
              "$ref": "#/definitions/AWS::CloudWatch::InsightRule.Tags"
            }
          },
          "required": ["RuleBody", "RuleName", "RuleState"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::InsightRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudWatch::InsightRule.Tags": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::CloudWatch::MetricStream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExcludeFilters": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter"
              },
              "type": "array"
            },
            "FirehoseArn": {
              "type": "string"
            },
            "IncludeFilters": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "OutputFormat": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "StatisticsConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamStatisticsConfiguration"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FirehoseArn", "OutputFormat", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CloudWatch::MetricStream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CloudWatch::MetricStream.MetricStreamFilter": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["Namespace"],
      "type": "object"
    },
    "AWS::CloudWatch::MetricStream.MetricStreamStatisticsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdditionalStatistics": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludeMetrics": {
          "items": {
            "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamStatisticsMetric"
          },
          "type": "array"
        }
      },
      "required": ["AdditionalStatistics", "IncludeMetrics"],
      "type": "object"
    },
    "AWS::CloudWatch::MetricStream.MetricStreamStatisticsMetric": {
      "additionalProperties": false,
      "properties": {
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["MetricName", "Namespace"],
      "type": "object"
    },
    "AWS::CodeArtifact::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainName": {
              "type": "string"
            },
            "EncryptionKey": {
              "type": "string"
            },
            "PermissionsPolicyDocument": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeArtifact::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeArtifact::Repository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "DomainOwner": {
              "type": "string"
            },
            "ExternalConnections": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PermissionsPolicyDocument": {
              "type": "object"
            },
            "RepositoryName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Upstreams": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["DomainName", "RepositoryName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeArtifact::Repository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeBuild::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Artifacts": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts"
            },
            "BadgeEnabled": {
              "type": "boolean"
            },
            "BuildBatchConfig": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectBuildBatchConfig"
            },
            "Cache": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache"
            },
            "ConcurrentBuildLimit": {
              "type": "number"
            },
            "Description": {
              "type": "string"
            },
            "EncryptionKey": {
              "type": "string"
            },
            "Environment": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.Environment"
            },
            "FileSystemLocations": {
              "items": {
                "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectFileSystemLocation"
              },
              "type": "array"
            },
            "LogsConfig": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig"
            },
            "Name": {
              "type": "string"
            },
            "QueuedTimeoutInMinutes": {
              "type": "number"
            },
            "ResourceAccessRole": {
              "type": "string"
            },
            "SecondaryArtifacts": {
              "items": {
                "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts"
              },
              "type": "array"
            },
            "SecondarySourceVersions": {
              "items": {
                "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectSourceVersion"
              },
              "type": "array"
            },
            "SecondarySources": {
              "items": {
                "$ref": "#/definitions/AWS::CodeBuild::Project.Source"
              },
              "type": "array"
            },
            "ServiceRole": {
              "type": "string"
            },
            "Source": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.Source"
            },
            "SourceVersion": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeoutInMinutes": {
              "type": "number"
            },
            "Triggers": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers"
            },
            "Visibility": {
              "type": "string"
            },
            "VpcConfig": {
              "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig"
            }
          },
          "required": ["Artifacts", "Environment", "ServiceRole", "Source"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeBuild::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.Artifacts": {
      "additionalProperties": false,
      "properties": {
        "ArtifactIdentifier": {
          "type": "string"
        },
        "EncryptionDisabled": {
          "type": "boolean"
        },
        "Location": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "NamespaceType": {
          "type": "string"
        },
        "OverrideArtifactName": {
          "type": "boolean"
        },
        "Packaging": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.BatchRestrictions": {
      "additionalProperties": false,
      "properties": {
        "ComputeTypesAllowed": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaximumBuildsAllowed": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.BuildStatusConfig": {
      "additionalProperties": false,
      "properties": {
        "Context": {
          "type": "string"
        },
        "TargetUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.CloudWatchLogsConfig": {
      "additionalProperties": false,
      "properties": {
        "GroupName": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "StreamName": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.Environment": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "type": "string"
        },
        "ComputeType": {
          "type": "string"
        },
        "EnvironmentVariables": {
          "items": {
            "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable"
          },
          "type": "array"
        },
        "Image": {
          "type": "string"
        },
        "ImagePullCredentialsType": {
          "type": "string"
        },
        "PrivilegedMode": {
          "type": "boolean"
        },
        "RegistryCredential": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["ComputeType", "Image", "Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.EnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.FilterGroup": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::CodeBuild::Project.GitSubmodulesConfig": {
      "additionalProperties": false,
      "properties": {
        "FetchSubmodules": {
          "type": "boolean"
        }
      },
      "required": ["FetchSubmodules"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.LogsConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogs": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig"
        },
        "S3Logs": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.ProjectBuildBatchConfig": {
      "additionalProperties": false,
      "properties": {
        "BatchReportMode": {
          "type": "string"
        },
        "CombineArtifacts": {
          "type": "boolean"
        },
        "Restrictions": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.BatchRestrictions"
        },
        "ServiceRole": {
          "type": "string"
        },
        "TimeoutInMins": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.ProjectCache": {
      "additionalProperties": false,
      "properties": {
        "Location": {
          "type": "string"
        },
        "Modes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.ProjectFileSystemLocation": {
      "additionalProperties": false,
      "properties": {
        "Identifier": {
          "type": "string"
        },
        "Location": {
          "type": "string"
        },
        "MountOptions": {
          "type": "string"
        },
        "MountPoint": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Identifier", "Location", "MountPoint", "Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.ProjectSourceVersion": {
      "additionalProperties": false,
      "properties": {
        "SourceIdentifier": {
          "type": "string"
        },
        "SourceVersion": {
          "type": "string"
        }
      },
      "required": ["SourceIdentifier"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.ProjectTriggers": {
      "additionalProperties": false,
      "properties": {
        "BuildType": {
          "type": "string"
        },
        "FilterGroups": {
          "items": {
            "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup"
          },
          "type": "array"
        },
        "Webhook": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.RegistryCredential": {
      "additionalProperties": false,
      "properties": {
        "Credential": {
          "type": "string"
        },
        "CredentialProvider": {
          "type": "string"
        }
      },
      "required": ["Credential", "CredentialProvider"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.S3LogsConfig": {
      "additionalProperties": false,
      "properties": {
        "EncryptionDisabled": {
          "type": "boolean"
        },
        "Location": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.Source": {
      "additionalProperties": false,
      "properties": {
        "Auth": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth"
        },
        "BuildSpec": {
          "type": "string"
        },
        "BuildStatusConfig": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.BuildStatusConfig"
        },
        "GitCloneDepth": {
          "type": "number"
        },
        "GitSubmodulesConfig": {
          "$ref": "#/definitions/AWS::CodeBuild::Project.GitSubmodulesConfig"
        },
        "InsecureSsl": {
          "type": "boolean"
        },
        "Location": {
          "type": "string"
        },
        "ReportBuildStatus": {
          "type": "boolean"
        },
        "SourceIdentifier": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.SourceAuth": {
      "additionalProperties": false,
      "properties": {
        "Resource": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeBuild::Project.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeBuild::Project.WebhookFilter": {
      "additionalProperties": false,
      "properties": {
        "ExcludeMatchedPattern": {
          "type": "boolean"
        },
        "Pattern": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Pattern", "Type"],
      "type": "object"
    },
    "AWS::CodeBuild::ReportGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeleteReports": {
              "type": "boolean"
            },
            "ExportConfig": {
              "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.ReportExportConfig"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["ExportConfig", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeBuild::ReportGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeBuild::ReportGroup.ReportExportConfig": {
      "additionalProperties": false,
      "properties": {
        "ExportConfigType": {
          "type": "string"
        },
        "S3Destination": {
          "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.S3ReportExportConfig"
        }
      },
      "required": ["ExportConfigType"],
      "type": "object"
    },
    "AWS::CodeBuild::ReportGroup.S3ReportExportConfig": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "BucketOwner": {
          "type": "string"
        },
        "EncryptionDisabled": {
          "type": "boolean"
        },
        "EncryptionKey": {
          "type": "string"
        },
        "Packaging": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::CodeBuild::SourceCredential": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthType": {
              "type": "string"
            },
            "ServerType": {
              "type": "string"
            },
            "Token": {
              "type": "string"
            },
            "Username": {
              "type": "string"
            }
          },
          "required": ["AuthType", "ServerType", "Token"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeBuild::SourceCredential"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeCommit::Repository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Code": {
              "$ref": "#/definitions/AWS::CodeCommit::Repository.Code"
            },
            "RepositoryDescription": {
              "type": "string"
            },
            "RepositoryName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Triggers": {
              "items": {
                "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger"
              },
              "type": "array"
            }
          },
          "required": ["RepositoryName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeCommit::Repository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeCommit::Repository.Code": {
      "additionalProperties": false,
      "properties": {
        "BranchName": {
          "type": "string"
        },
        "S3": {
          "$ref": "#/definitions/AWS::CodeCommit::Repository.S3"
        }
      },
      "required": ["S3"],
      "type": "object"
    },
    "AWS::CodeCommit::Repository.RepositoryTrigger": {
      "additionalProperties": false,
      "properties": {
        "Branches": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CustomData": {
          "type": "string"
        },
        "DestinationArn": {
          "type": "string"
        },
        "Events": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DestinationArn", "Events", "Name"],
      "type": "object"
    },
    "AWS::CodeCommit::Repository.S3": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::CodeDeploy::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "ComputePlatform": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeDeploy::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ComputePlatform": {
              "type": "string"
            },
            "DeploymentConfigName": {
              "type": "string"
            },
            "MinimumHealthyHosts": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts"
            },
            "TrafficRoutingConfig": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeDeploy::DeploymentConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary": {
      "additionalProperties": false,
      "properties": {
        "CanaryInterval": {
          "type": "number"
        },
        "CanaryPercentage": {
          "type": "number"
        }
      },
      "required": ["CanaryInterval", "CanaryPercentage"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear": {
      "additionalProperties": false,
      "properties": {
        "LinearInterval": {
          "type": "number"
        },
        "LinearPercentage": {
          "type": "number"
        }
      },
      "required": ["LinearInterval", "LinearPercentage"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig": {
      "additionalProperties": false,
      "properties": {
        "TimeBasedCanary": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary"
        },
        "TimeBasedLinear": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlarmConfiguration": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration"
            },
            "ApplicationName": {
              "type": "string"
            },
            "AutoRollbackConfiguration": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration"
            },
            "AutoScalingGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BlueGreenDeploymentConfiguration": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration"
            },
            "Deployment": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment"
            },
            "DeploymentConfigName": {
              "type": "string"
            },
            "DeploymentGroupName": {
              "type": "string"
            },
            "DeploymentStyle": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle"
            },
            "ECSServices": {
              "items": {
                "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ECSService"
              },
              "type": "array"
            },
            "Ec2TagFilters": {
              "items": {
                "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter"
              },
              "type": "array"
            },
            "Ec2TagSet": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet"
            },
            "LoadBalancerInfo": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo"
            },
            "OnPremisesInstanceTagFilters": {
              "items": {
                "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter"
              },
              "type": "array"
            },
            "OnPremisesTagSet": {
              "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet"
            },
            "OutdatedInstancesStrategy": {
              "type": "string"
            },
            "ServiceRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TriggerConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig"
              },
              "type": "array"
            }
          },
          "required": ["ApplicationName", "ServiceRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeDeploy::DeploymentGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.Alarm": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Alarms": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm"
          },
          "type": "array"
        },
        "Enabled": {
          "type": "boolean"
        },
        "IgnorePollAlarmFailure": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "Events": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DeploymentReadyOption": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption"
        },
        "GreenFleetProvisioningOption": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption"
        },
        "TerminateBlueInstancesOnDeploymentSuccess": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "TerminationWaitTimeInMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.Deployment": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "IgnoreApplicationStopFailures": {
          "type": "boolean"
        },
        "Revision": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation"
        }
      },
      "required": ["Revision"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption": {
      "additionalProperties": false,
      "properties": {
        "ActionOnTimeout": {
          "type": "string"
        },
        "WaitTimeInMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": {
      "additionalProperties": false,
      "properties": {
        "DeploymentOption": {
          "type": "string"
        },
        "DeploymentType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": {
      "additionalProperties": false,
      "properties": {
        "Ec2TagSetList": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": {
      "additionalProperties": false,
      "properties": {
        "Ec2TagGroup": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.ECSService": {
      "additionalProperties": false,
      "properties": {
        "ClusterName": {
          "type": "string"
        },
        "ServiceName": {
          "type": "string"
        }
      },
      "required": ["ClusterName", "ServiceName"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.ELBInfo": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": {
      "additionalProperties": false,
      "properties": {
        "CommitId": {
          "type": "string"
        },
        "Repository": {
          "type": "string"
        }
      },
      "required": ["CommitId", "Repository"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": {
      "additionalProperties": false,
      "properties": {
        "ElbInfoList": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo"
          },
          "type": "array"
        },
        "TargetGroupInfoList": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo"
          },
          "type": "array"
        },
        "TargetGroupPairInfoList": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": {
      "additionalProperties": false,
      "properties": {
        "OnPremisesTagSetList": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": {
      "additionalProperties": false,
      "properties": {
        "OnPremisesTagGroup": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": {
      "additionalProperties": false,
      "properties": {
        "GitHubLocation": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation"
        },
        "RevisionType": {
          "type": "string"
        },
        "S3Location": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "BundleType": {
          "type": "string"
        },
        "ETag": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.TagFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo": {
      "additionalProperties": false,
      "properties": {
        "ProdTrafficRoute": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TrafficRoute"
        },
        "TargetGroups": {
          "items": {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo"
          },
          "type": "array"
        },
        "TestTrafficRoute": {
          "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TrafficRoute"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.TrafficRoute": {
      "additionalProperties": false,
      "properties": {
        "ListenerArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": {
      "additionalProperties": false,
      "properties": {
        "TriggerEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TriggerName": {
          "type": "string"
        },
        "TriggerTargetArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodeGuruProfiler::ProfilingGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AgentPermissions": {
              "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions"
            },
            "AnomalyDetectionNotificationConfiguration": {
              "items": {
                "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.Channel"
              },
              "type": "array"
            },
            "ComputePlatform": {
              "type": "string"
            },
            "ProfilingGroupName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ProfilingGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeGuruProfiler::ProfilingGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions": {
      "additionalProperties": false,
      "properties": {
        "Principals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Principals"],
      "type": "object"
    },
    "AWS::CodeGuruProfiler::ProfilingGroup.Channel": {
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "channelUri": {
          "type": "string"
        }
      },
      "required": ["channelUri"],
      "type": "object"
    },
    "AWS::CodeGuruReviewer::RepositoryAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BucketName": {
              "type": "string"
            },
            "ConnectionArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Owner": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeGuruReviewer::RepositoryAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodePipeline::CustomActionType": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Category": {
              "type": "string"
            },
            "ConfigurationProperties": {
              "items": {
                "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties"
              },
              "type": "array"
            },
            "InputArtifactDetails": {
              "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails"
            },
            "OutputArtifactDetails": {
              "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails"
            },
            "Provider": {
              "type": "string"
            },
            "Settings": {
              "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Version": {
              "type": "string"
            }
          },
          "required": [
            "Category",
            "InputArtifactDetails",
            "OutputArtifactDetails",
            "Provider",
            "Version"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodePipeline::CustomActionType"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodePipeline::CustomActionType.ArtifactDetails": {
      "additionalProperties": false,
      "properties": {
        "MaximumCount": {
          "type": "number"
        },
        "MinimumCount": {
          "type": "number"
        }
      },
      "required": ["MaximumCount", "MinimumCount"],
      "type": "object"
    },
    "AWS::CodePipeline::CustomActionType.ConfigurationProperties": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Key": {
          "type": "boolean"
        },
        "Name": {
          "type": "string"
        },
        "Queryable": {
          "type": "boolean"
        },
        "Required": {
          "type": "boolean"
        },
        "Secret": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Key", "Name", "Required", "Secret"],
      "type": "object"
    },
    "AWS::CodePipeline::CustomActionType.Settings": {
      "additionalProperties": false,
      "properties": {
        "EntityUrlTemplate": {
          "type": "string"
        },
        "ExecutionUrlTemplate": {
          "type": "string"
        },
        "RevisionUrlTemplate": {
          "type": "string"
        },
        "ThirdPartyConfigurationUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ArtifactStore": {
              "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore"
            },
            "ArtifactStores": {
              "items": {
                "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap"
              },
              "type": "array"
            },
            "DisableInboundStageTransitions": {
              "items": {
                "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "RestartExecutionOnUpdate": {
              "type": "boolean"
            },
            "RoleArn": {
              "type": "string"
            },
            "Stages": {
              "items": {
                "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["RoleArn", "Stages"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodePipeline::Pipeline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.ActionDeclaration": {
      "additionalProperties": false,
      "properties": {
        "ActionTypeId": {
          "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId"
        },
        "Configuration": {
          "type": "object"
        },
        "InputArtifacts": {
          "items": {
            "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "OutputArtifacts": {
          "items": {
            "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact"
          },
          "type": "array"
        },
        "Region": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "RunOrder": {
          "type": "number"
        }
      },
      "required": ["ActionTypeId", "Name"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.ActionTypeId": {
      "additionalProperties": false,
      "properties": {
        "Category": {
          "type": "string"
        },
        "Owner": {
          "type": "string"
        },
        "Provider": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Category", "Owner", "Provider", "Version"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.ArtifactStore": {
      "additionalProperties": false,
      "properties": {
        "EncryptionKey": {
          "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey"
        },
        "Location": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Location", "Type"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.ArtifactStoreMap": {
      "additionalProperties": false,
      "properties": {
        "ArtifactStore": {
          "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore"
        },
        "Region": {
          "type": "string"
        }
      },
      "required": ["ArtifactStore", "Region"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.BlockerDeclaration": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.EncryptionKey": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Id", "Type"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.InputArtifact": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.OutputArtifact": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.StageDeclaration": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration"
          },
          "type": "array"
        },
        "Blockers": {
          "items": {
            "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Actions", "Name"],
      "type": "object"
    },
    "AWS::CodePipeline::Pipeline.StageTransition": {
      "additionalProperties": false,
      "properties": {
        "Reason": {
          "type": "string"
        },
        "StageName": {
          "type": "string"
        }
      },
      "required": ["Reason", "StageName"],
      "type": "object"
    },
    "AWS::CodePipeline::Webhook": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Authentication": {
              "type": "string"
            },
            "AuthenticationConfiguration": {
              "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration"
            },
            "Filters": {
              "items": {
                "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "RegisterWithThirdParty": {
              "type": "boolean"
            },
            "TargetAction": {
              "type": "string"
            },
            "TargetPipeline": {
              "type": "string"
            },
            "TargetPipelineVersion": {
              "type": "number"
            }
          },
          "required": [
            "Authentication",
            "AuthenticationConfiguration",
            "Filters",
            "TargetAction",
            "TargetPipeline",
            "TargetPipelineVersion"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodePipeline::Webhook"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedIPRange": {
          "type": "string"
        },
        "SecretToken": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CodePipeline::Webhook.WebhookFilterRule": {
      "additionalProperties": false,
      "properties": {
        "JsonPath": {
          "type": "string"
        },
        "MatchEquals": {
          "type": "string"
        }
      },
      "required": ["JsonPath"],
      "type": "object"
    },
    "AWS::CodeStar::GitHubRepository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Code": {
              "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code"
            },
            "ConnectionArn": {
              "type": "string"
            },
            "EnableIssues": {
              "type": "boolean"
            },
            "IsPrivate": {
              "type": "boolean"
            },
            "RepositoryAccessToken": {
              "type": "string"
            },
            "RepositoryDescription": {
              "type": "string"
            },
            "RepositoryName": {
              "type": "string"
            },
            "RepositoryOwner": {
              "type": "string"
            }
          },
          "required": ["RepositoryName", "RepositoryOwner"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeStar::GitHubRepository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeStar::GitHubRepository.Code": {
      "additionalProperties": false,
      "properties": {
        "S3": {
          "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.S3"
        }
      },
      "required": ["S3"],
      "type": "object"
    },
    "AWS::CodeStar::GitHubRepository.S3": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::CodeStarConnections::Connection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionName": {
              "type": "string"
            },
            "HostArn": {
              "type": "string"
            },
            "ProviderType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ConnectionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeStarConnections::Connection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeStarNotifications::NotificationRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CreatedBy": {
              "type": "string"
            },
            "DetailType": {
              "type": "string"
            },
            "EventTypeId": {
              "type": "string"
            },
            "EventTypeIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Resource": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "TargetAddress": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target"
              },
              "type": "array"
            }
          },
          "required": [
            "DetailType",
            "EventTypeIds",
            "Name",
            "Resource",
            "Targets"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CodeStarNotifications::NotificationRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CodeStarNotifications::NotificationRule.Target": {
      "additionalProperties": false,
      "properties": {
        "TargetAddress": {
          "type": "string"
        },
        "TargetType": {
          "type": "string"
        }
      },
      "required": ["TargetAddress", "TargetType"],
      "type": "object"
    },
    "AWS::Cognito::IdentityPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowClassicFlow": {
              "type": "boolean"
            },
            "AllowUnauthenticatedIdentities": {
              "type": "boolean"
            },
            "CognitoEvents": {
              "type": "object"
            },
            "CognitoIdentityProviders": {
              "items": {
                "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider"
              },
              "type": "array"
            },
            "CognitoStreams": {
              "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams"
            },
            "DeveloperProviderName": {
              "type": "string"
            },
            "IdentityPoolName": {
              "type": "string"
            },
            "OpenIdConnectProviderARNs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PushSync": {
              "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync"
            },
            "SamlProviderARNs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SupportedLoginProviders": {
              "type": "object"
            }
          },
          "required": ["AllowUnauthenticatedIdentities"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::IdentityPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::IdentityPool.CognitoIdentityProvider": {
      "additionalProperties": false,
      "properties": {
        "ClientId": {
          "type": "string"
        },
        "ProviderName": {
          "type": "string"
        },
        "ServerSideTokenCheck": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::IdentityPool.CognitoStreams": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "StreamName": {
          "type": "string"
        },
        "StreamingStatus": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::IdentityPool.PushSync": {
      "additionalProperties": false,
      "properties": {
        "ApplicationArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::IdentityPoolRoleAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IdentityPoolId": {
              "type": "string"
            },
            "RoleMappings": {
              "type": "object"
            },
            "Roles": {
              "type": "object"
            }
          },
          "required": ["IdentityPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::IdentityPoolRoleAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": {
      "additionalProperties": false,
      "properties": {
        "Claim": {
          "type": "string"
        },
        "MatchType": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Claim", "MatchType", "RoleARN", "Value"],
      "type": "object"
    },
    "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": {
      "additionalProperties": false,
      "properties": {
        "AmbiguousRoleResolution": {
          "type": "string"
        },
        "IdentityProvider": {
          "type": "string"
        },
        "RulesConfiguration": {
          "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::Cognito::UserPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountRecoverySetting": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.AccountRecoverySetting"
            },
            "AdminCreateUserConfig": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig"
            },
            "AliasAttributes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AutoVerifiedAttributes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DeletionProtection": {
              "type": "string"
            },
            "DeviceConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration"
            },
            "EmailConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration"
            },
            "EmailVerificationMessage": {
              "type": "string"
            },
            "EmailVerificationSubject": {
              "type": "string"
            },
            "EnabledMfas": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LambdaConfig": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig"
            },
            "MfaConfiguration": {
              "type": "string"
            },
            "Policies": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.Policies"
            },
            "Schema": {
              "items": {
                "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute"
              },
              "type": "array"
            },
            "SmsAuthenticationMessage": {
              "type": "string"
            },
            "SmsConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration"
            },
            "SmsVerificationMessage": {
              "type": "string"
            },
            "UserAttributeUpdateSettings": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.UserAttributeUpdateSettings"
            },
            "UserPoolAddOns": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.UserPoolAddOns"
            },
            "UserPoolName": {
              "type": "string"
            },
            "UserPoolTags": {
              "type": "object"
            },
            "UsernameAttributes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "UsernameConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.UsernameConfiguration"
            },
            "VerificationMessageTemplate": {
              "$ref": "#/definitions/AWS::Cognito::UserPool.VerificationMessageTemplate"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Cognito::UserPool.AccountRecoverySetting": {
      "additionalProperties": false,
      "properties": {
        "RecoveryMechanisms": {
          "items": {
            "$ref": "#/definitions/AWS::Cognito::UserPool.RecoveryOption"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.AdminCreateUserConfig": {
      "additionalProperties": false,
      "properties": {
        "AllowAdminCreateUserOnly": {
          "type": "boolean"
        },
        "InviteMessageTemplate": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate"
        },
        "UnusedAccountValidityDays": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.CustomEmailSender": {
      "additionalProperties": false,
      "properties": {
        "LambdaArn": {
          "type": "string"
        },
        "LambdaVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.CustomSMSSender": {
      "additionalProperties": false,
      "properties": {
        "LambdaArn": {
          "type": "string"
        },
        "LambdaVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.DeviceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ChallengeRequiredOnNewDevice": {
          "type": "boolean"
        },
        "DeviceOnlyRememberedOnUserPrompt": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.EmailConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ConfigurationSet": {
          "type": "string"
        },
        "EmailSendingAccount": {
          "type": "string"
        },
        "From": {
          "type": "string"
        },
        "ReplyToEmailAddress": {
          "type": "string"
        },
        "SourceArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.InviteMessageTemplate": {
      "additionalProperties": false,
      "properties": {
        "EmailMessage": {
          "type": "string"
        },
        "EmailSubject": {
          "type": "string"
        },
        "SMSMessage": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.LambdaConfig": {
      "additionalProperties": false,
      "properties": {
        "CreateAuthChallenge": {
          "type": "string"
        },
        "CustomEmailSender": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.CustomEmailSender"
        },
        "CustomMessage": {
          "type": "string"
        },
        "CustomSMSSender": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.CustomSMSSender"
        },
        "DefineAuthChallenge": {
          "type": "string"
        },
        "KMSKeyID": {
          "type": "string"
        },
        "PostAuthentication": {
          "type": "string"
        },
        "PostConfirmation": {
          "type": "string"
        },
        "PreAuthentication": {
          "type": "string"
        },
        "PreSignUp": {
          "type": "string"
        },
        "PreTokenGeneration": {
          "type": "string"
        },
        "UserMigration": {
          "type": "string"
        },
        "VerifyAuthChallengeResponse": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.NumberAttributeConstraints": {
      "additionalProperties": false,
      "properties": {
        "MaxValue": {
          "type": "string"
        },
        "MinValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.PasswordPolicy": {
      "additionalProperties": false,
      "properties": {
        "MinimumLength": {
          "type": "number"
        },
        "RequireLowercase": {
          "type": "boolean"
        },
        "RequireNumbers": {
          "type": "boolean"
        },
        "RequireSymbols": {
          "type": "boolean"
        },
        "RequireUppercase": {
          "type": "boolean"
        },
        "TemporaryPasswordValidityDays": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.Policies": {
      "additionalProperties": false,
      "properties": {
        "PasswordPolicy": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.RecoveryOption": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.SchemaAttribute": {
      "additionalProperties": false,
      "properties": {
        "AttributeDataType": {
          "type": "string"
        },
        "DeveloperOnlyAttribute": {
          "type": "boolean"
        },
        "Mutable": {
          "type": "boolean"
        },
        "Name": {
          "type": "string"
        },
        "NumberAttributeConstraints": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints"
        },
        "Required": {
          "type": "boolean"
        },
        "StringAttributeConstraints": {
          "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.SmsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ExternalId": {
          "type": "string"
        },
        "SnsCallerArn": {
          "type": "string"
        },
        "SnsRegion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.StringAttributeConstraints": {
      "additionalProperties": false,
      "properties": {
        "MaxLength": {
          "type": "string"
        },
        "MinLength": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.UserAttributeUpdateSettings": {
      "additionalProperties": false,
      "properties": {
        "AttributesRequireVerificationBeforeUpdate": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["AttributesRequireVerificationBeforeUpdate"],
      "type": "object"
    },
    "AWS::Cognito::UserPool.UserPoolAddOns": {
      "additionalProperties": false,
      "properties": {
        "AdvancedSecurityMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.UsernameConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CaseSensitive": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPool.VerificationMessageTemplate": {
      "additionalProperties": false,
      "properties": {
        "DefaultEmailOption": {
          "type": "string"
        },
        "EmailMessage": {
          "type": "string"
        },
        "EmailMessageByLink": {
          "type": "string"
        },
        "EmailSubject": {
          "type": "string"
        },
        "EmailSubjectByLink": {
          "type": "string"
        },
        "SmsMessage": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolClient": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessTokenValidity": {
              "type": "number"
            },
            "AllowedOAuthFlows": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AllowedOAuthFlowsUserPoolClient": {
              "type": "boolean"
            },
            "AllowedOAuthScopes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AnalyticsConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolClient.AnalyticsConfiguration"
            },
            "AuthSessionValidity": {
              "type": "number"
            },
            "CallbackURLs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClientName": {
              "type": "string"
            },
            "DefaultRedirectURI": {
              "type": "string"
            },
            "EnablePropagateAdditionalUserContextData": {
              "type": "boolean"
            },
            "EnableTokenRevocation": {
              "type": "boolean"
            },
            "ExplicitAuthFlows": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "GenerateSecret": {
              "type": "boolean"
            },
            "IdTokenValidity": {
              "type": "number"
            },
            "LogoutURLs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PreventUserExistenceErrors": {
              "type": "string"
            },
            "ReadAttributes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RefreshTokenValidity": {
              "type": "number"
            },
            "SupportedIdentityProviders": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "TokenValidityUnits": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolClient.TokenValidityUnits"
            },
            "UserPoolId": {
              "type": "string"
            },
            "WriteAttributes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolClient"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolClient.AnalyticsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationArn": {
          "type": "string"
        },
        "ApplicationId": {
          "type": "string"
        },
        "ExternalId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "UserDataShared": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolClient.TokenValidityUnits": {
      "additionalProperties": false,
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "IdToken": {
          "type": "string"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolDomain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomDomainConfig": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolDomain.CustomDomainConfigType"
            },
            "Domain": {
              "type": "string"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["Domain", "UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolDomain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolDomain.CustomDomainConfigType": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GroupName": {
              "type": "string"
            },
            "Precedence": {
              "type": "number"
            },
            "RoleArn": {
              "type": "string"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolIdentityProvider": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttributeMapping": {
              "type": "object"
            },
            "IdpIdentifiers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ProviderDetails": {
              "type": "object"
            },
            "ProviderName": {
              "type": "string"
            },
            "ProviderType": {
              "type": "string"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["ProviderName", "ProviderType", "UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolIdentityProvider"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolResourceServer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Identifier": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Scopes": {
              "items": {
                "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType"
              },
              "type": "array"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["Identifier", "Name", "UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolResourceServer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType": {
      "additionalProperties": false,
      "properties": {
        "ScopeDescription": {
          "type": "string"
        },
        "ScopeName": {
          "type": "string"
        }
      },
      "required": ["ScopeDescription", "ScopeName"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountTakeoverRiskConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType"
            },
            "ClientId": {
              "type": "string"
            },
            "CompromisedCredentialsRiskConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType"
            },
            "RiskExceptionConfiguration": {
              "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["ClientId", "UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolRiskConfigurationAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType": {
      "additionalProperties": false,
      "properties": {
        "EventAction": {
          "type": "string"
        },
        "Notify": {
          "type": "boolean"
        }
      },
      "required": ["EventAction", "Notify"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType": {
      "additionalProperties": false,
      "properties": {
        "HighAction": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType"
        },
        "LowAction": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType"
        },
        "MediumAction": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType"
        },
        "NotifyConfiguration": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType"
        }
      },
      "required": ["Actions"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType": {
      "additionalProperties": false,
      "properties": {
        "EventAction": {
          "type": "string"
        }
      },
      "required": ["EventAction"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType"
        },
        "EventFilter": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Actions"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "BlockEmail": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType"
        },
        "From": {
          "type": "string"
        },
        "MfaEmail": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType"
        },
        "NoActionEmail": {
          "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType"
        },
        "ReplyTo": {
          "type": "string"
        },
        "SourceArn": {
          "type": "string"
        }
      },
      "required": ["SourceArn"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType": {
      "additionalProperties": false,
      "properties": {
        "HtmlBody": {
          "type": "string"
        },
        "Subject": {
          "type": "string"
        },
        "TextBody": {
          "type": "string"
        }
      },
      "required": ["Subject"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType": {
      "additionalProperties": false,
      "properties": {
        "BlockedIPRangeList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SkippedIPRangeList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolUICustomizationAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CSS": {
              "type": "string"
            },
            "ClientId": {
              "type": "string"
            },
            "UserPoolId": {
              "type": "string"
            }
          },
          "required": ["ClientId", "UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolUICustomizationAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolUser": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientMetadata": {
              "type": "object"
            },
            "DesiredDeliveryMediums": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ForceAliasCreation": {
              "type": "boolean"
            },
            "MessageAction": {
              "type": "string"
            },
            "UserAttributes": {
              "items": {
                "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType"
              },
              "type": "array"
            },
            "UserPoolId": {
              "type": "string"
            },
            "Username": {
              "type": "string"
            },
            "ValidationData": {
              "items": {
                "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType"
              },
              "type": "array"
            }
          },
          "required": ["UserPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolUser"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Cognito::UserPoolUser.AttributeType": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Cognito::UserPoolUserToGroupAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupName": {
              "type": "string"
            },
            "UserPoolId": {
              "type": "string"
            },
            "Username": {
              "type": "string"
            }
          },
          "required": ["GroupName", "UserPoolId", "Username"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Cognito::UserPoolUserToGroupAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::AggregationAuthorization": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthorizedAccountId": {
              "type": "string"
            },
            "AuthorizedAwsRegion": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AuthorizedAccountId", "AuthorizedAwsRegion"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::AggregationAuthorization"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::ConfigRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigRuleName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "InputParameters": {
              "type": "object"
            },
            "MaximumExecutionFrequency": {
              "type": "string"
            },
            "Scope": {
              "$ref": "#/definitions/AWS::Config::ConfigRule.Scope"
            },
            "Source": {
              "$ref": "#/definitions/AWS::Config::ConfigRule.Source"
            }
          },
          "required": ["Source"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::ConfigRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::ConfigRule.CustomPolicyDetails": {
      "additionalProperties": false,
      "properties": {
        "EnableDebugLogDelivery": {
          "type": "boolean"
        },
        "PolicyRuntime": {
          "type": "string"
        },
        "PolicyText": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Config::ConfigRule.Scope": {
      "additionalProperties": false,
      "properties": {
        "ComplianceResourceId": {
          "type": "string"
        },
        "ComplianceResourceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TagKey": {
          "type": "string"
        },
        "TagValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Config::ConfigRule.Source": {
      "additionalProperties": false,
      "properties": {
        "CustomPolicyDetails": {
          "$ref": "#/definitions/AWS::Config::ConfigRule.CustomPolicyDetails"
        },
        "Owner": {
          "type": "string"
        },
        "SourceDetails": {
          "items": {
            "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail"
          },
          "type": "array"
        },
        "SourceIdentifier": {
          "type": "string"
        }
      },
      "required": ["Owner"],
      "type": "object"
    },
    "AWS::Config::ConfigRule.SourceDetail": {
      "additionalProperties": false,
      "properties": {
        "EventSource": {
          "type": "string"
        },
        "MaximumExecutionFrequency": {
          "type": "string"
        },
        "MessageType": {
          "type": "string"
        }
      },
      "required": ["EventSource", "MessageType"],
      "type": "object"
    },
    "AWS::Config::ConfigurationAggregator": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountAggregationSources": {
              "items": {
                "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource"
              },
              "type": "array"
            },
            "ConfigurationAggregatorName": {
              "type": "string"
            },
            "OrganizationAggregationSource": {
              "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::ConfigurationAggregator"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Config::ConfigurationAggregator.AccountAggregationSource": {
      "additionalProperties": false,
      "properties": {
        "AccountIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllAwsRegions": {
          "type": "boolean"
        },
        "AwsRegions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["AccountIds"],
      "type": "object"
    },
    "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": {
      "additionalProperties": false,
      "properties": {
        "AllAwsRegions": {
          "type": "boolean"
        },
        "AwsRegions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::Config::ConfigurationRecorder": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "RecordingGroup": {
              "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup"
            },
            "RoleARN": {
              "type": "string"
            }
          },
          "required": ["RoleARN"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::ConfigurationRecorder"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::ConfigurationRecorder.RecordingGroup": {
      "additionalProperties": false,
      "properties": {
        "AllSupported": {
          "type": "boolean"
        },
        "IncludeGlobalResourceTypes": {
          "type": "boolean"
        },
        "ResourceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Config::ConformancePack": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConformancePackInputParameters": {
              "items": {
                "$ref": "#/definitions/AWS::Config::ConformancePack.ConformancePackInputParameter"
              },
              "type": "array"
            },
            "ConformancePackName": {
              "type": "string"
            },
            "DeliveryS3Bucket": {
              "type": "string"
            },
            "DeliveryS3KeyPrefix": {
              "type": "string"
            },
            "TemplateBody": {
              "type": "string"
            },
            "TemplateS3Uri": {
              "type": "string"
            },
            "TemplateSSMDocumentDetails": {
              "$ref": "#/definitions/AWS::Config::ConformancePack.TemplateSSMDocumentDetails"
            }
          },
          "required": ["ConformancePackName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::ConformancePack"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::ConformancePack.ConformancePackInputParameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterName", "ParameterValue"],
      "type": "object"
    },
    "AWS::Config::ConformancePack.TemplateSSMDocumentDetails": {
      "additionalProperties": false,
      "properties": {
        "DocumentName": {
          "type": "string"
        },
        "DocumentVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Config::DeliveryChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigSnapshotDeliveryProperties": {
              "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties"
            },
            "Name": {
              "type": "string"
            },
            "S3BucketName": {
              "type": "string"
            },
            "S3KeyPrefix": {
              "type": "string"
            },
            "S3KmsKeyArn": {
              "type": "string"
            },
            "SnsTopicARN": {
              "type": "string"
            }
          },
          "required": ["S3BucketName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::DeliveryChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": {
      "additionalProperties": false,
      "properties": {
        "DeliveryFrequency": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Config::OrganizationConfigRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExcludedAccounts": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "OrganizationConfigRuleName": {
              "type": "string"
            },
            "OrganizationCustomCodeRuleMetadata": {
              "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata"
            },
            "OrganizationCustomRuleMetadata": {
              "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata"
            },
            "OrganizationManagedRuleMetadata": {
              "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata"
            }
          },
          "required": ["OrganizationConfigRuleName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::OrganizationConfigRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata": {
      "additionalProperties": false,
      "properties": {
        "CodeText": {
          "type": "string"
        },
        "DebugLogDeliveryAccounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "InputParameters": {
          "type": "string"
        },
        "MaximumExecutionFrequency": {
          "type": "string"
        },
        "OrganizationConfigRuleTriggerTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceIdScope": {
          "type": "string"
        },
        "ResourceTypesScope": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Runtime": {
          "type": "string"
        },
        "TagKeyScope": {
          "type": "string"
        },
        "TagValueScope": {
          "type": "string"
        }
      },
      "required": ["CodeText", "Runtime"],
      "type": "object"
    },
    "AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "InputParameters": {
          "type": "string"
        },
        "LambdaFunctionArn": {
          "type": "string"
        },
        "MaximumExecutionFrequency": {
          "type": "string"
        },
        "OrganizationConfigRuleTriggerTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceIdScope": {
          "type": "string"
        },
        "ResourceTypesScope": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TagKeyScope": {
          "type": "string"
        },
        "TagValueScope": {
          "type": "string"
        }
      },
      "required": ["LambdaFunctionArn", "OrganizationConfigRuleTriggerTypes"],
      "type": "object"
    },
    "AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "InputParameters": {
          "type": "string"
        },
        "MaximumExecutionFrequency": {
          "type": "string"
        },
        "ResourceIdScope": {
          "type": "string"
        },
        "ResourceTypesScope": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RuleIdentifier": {
          "type": "string"
        },
        "TagKeyScope": {
          "type": "string"
        },
        "TagValueScope": {
          "type": "string"
        }
      },
      "required": ["RuleIdentifier"],
      "type": "object"
    },
    "AWS::Config::OrganizationConformancePack": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConformancePackInputParameters": {
              "items": {
                "$ref": "#/definitions/AWS::Config::OrganizationConformancePack.ConformancePackInputParameter"
              },
              "type": "array"
            },
            "DeliveryS3Bucket": {
              "type": "string"
            },
            "DeliveryS3KeyPrefix": {
              "type": "string"
            },
            "ExcludedAccounts": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "OrganizationConformancePackName": {
              "type": "string"
            },
            "TemplateBody": {
              "type": "string"
            },
            "TemplateS3Uri": {
              "type": "string"
            }
          },
          "required": ["OrganizationConformancePackName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::OrganizationConformancePack"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::OrganizationConformancePack.ConformancePackInputParameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterName", "ParameterValue"],
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Automatic": {
              "type": "boolean"
            },
            "ConfigRuleName": {
              "type": "string"
            },
            "ExecutionControls": {
              "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ExecutionControls"
            },
            "MaximumAutomaticAttempts": {
              "type": "number"
            },
            "Parameters": {
              "type": "object"
            },
            "ResourceType": {
              "type": "string"
            },
            "RetryAttemptSeconds": {
              "type": "number"
            },
            "TargetId": {
              "type": "string"
            },
            "TargetType": {
              "type": "string"
            },
            "TargetVersion": {
              "type": "string"
            }
          },
          "required": ["ConfigRuleName", "TargetId", "TargetType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::RemediationConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration.ExecutionControls": {
      "additionalProperties": false,
      "properties": {
        "SsmControls": {
          "$ref": "#/definitions/AWS::Config::RemediationConfiguration.SsmControls"
        }
      },
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration.RemediationParameterValue": {
      "additionalProperties": false,
      "properties": {
        "ResourceValue": {
          "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ResourceValue"
        },
        "StaticValue": {
          "$ref": "#/definitions/AWS::Config::RemediationConfiguration.StaticValue"
        }
      },
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration.ResourceValue": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration.SsmControls": {
      "additionalProperties": false,
      "properties": {
        "ConcurrentExecutionRatePercentage": {
          "type": "number"
        },
        "ErrorPercentage": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Config::RemediationConfiguration.StaticValue": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Config::StoredQuery": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "QueryDescription": {
              "type": "string"
            },
            "QueryExpression": {
              "type": "string"
            },
            "QueryName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["QueryExpression", "QueryName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Config::StoredQuery"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::ContactFlow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Content": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Content", "InstanceArn", "Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::ContactFlow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::ContactFlowModule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Content": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Content", "InstanceArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::ContactFlowModule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::HoursOfOperation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Config": {
              "items": {
                "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeZone": {
              "type": "string"
            }
          },
          "required": ["Config", "InstanceArn", "Name", "TimeZone"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::HoursOfOperation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": {
      "additionalProperties": false,
      "properties": {
        "Day": {
          "type": "string"
        },
        "EndTime": {
          "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice"
        },
        "StartTime": {
          "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice"
        }
      },
      "required": ["Day", "EndTime", "StartTime"],
      "type": "object"
    },
    "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": {
      "additionalProperties": false,
      "properties": {
        "Hours": {
          "type": "number"
        },
        "Minutes": {
          "type": "number"
        }
      },
      "required": ["Hours", "Minutes"],
      "type": "object"
    },
    "AWS::Connect::Instance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Attributes": {
              "$ref": "#/definitions/AWS::Connect::Instance.Attributes"
            },
            "DirectoryId": {
              "type": "string"
            },
            "IdentityManagementType": {
              "type": "string"
            },
            "InstanceAlias": {
              "type": "string"
            }
          },
          "required": ["Attributes", "IdentityManagementType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::Instance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::Instance.Attributes": {
      "additionalProperties": false,
      "properties": {
        "AutoResolveBestVoices": {
          "type": "boolean"
        },
        "ContactLens": {
          "type": "boolean"
        },
        "ContactflowLogs": {
          "type": "boolean"
        },
        "EarlyMedia": {
          "type": "boolean"
        },
        "InboundCalls": {
          "type": "boolean"
        },
        "OutboundCalls": {
          "type": "boolean"
        },
        "UseCustomTTSVoices": {
          "type": "boolean"
        }
      },
      "required": ["InboundCalls", "OutboundCalls"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InstanceArn": {
              "type": "string"
            },
            "KinesisFirehoseConfig": {
              "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisFirehoseConfig"
            },
            "KinesisStreamConfig": {
              "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisStreamConfig"
            },
            "KinesisVideoStreamConfig": {
              "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisVideoStreamConfig"
            },
            "ResourceType": {
              "type": "string"
            },
            "S3Config": {
              "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.S3Config"
            },
            "StorageType": {
              "type": "string"
            }
          },
          "required": ["InstanceArn", "ResourceType", "StorageType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::InstanceStorageConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig.EncryptionConfig": {
      "additionalProperties": false,
      "properties": {
        "EncryptionType": {
          "type": "string"
        },
        "KeyId": {
          "type": "string"
        }
      },
      "required": ["EncryptionType", "KeyId"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig.KinesisFirehoseConfig": {
      "additionalProperties": false,
      "properties": {
        "FirehoseArn": {
          "type": "string"
        }
      },
      "required": ["FirehoseArn"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig.KinesisStreamConfig": {
      "additionalProperties": false,
      "properties": {
        "StreamArn": {
          "type": "string"
        }
      },
      "required": ["StreamArn"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig.KinesisVideoStreamConfig": {
      "additionalProperties": false,
      "properties": {
        "EncryptionConfig": {
          "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.EncryptionConfig"
        },
        "Prefix": {
          "type": "string"
        },
        "RetentionPeriodHours": {
          "type": "number"
        }
      },
      "required": ["Prefix", "RetentionPeriodHours"],
      "type": "object"
    },
    "AWS::Connect::InstanceStorageConfig.S3Config": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "EncryptionConfig": {
          "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.EncryptionConfig"
        }
      },
      "required": ["BucketName", "BucketPrefix"],
      "type": "object"
    },
    "AWS::Connect::PhoneNumber": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CountryCode": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Prefix": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetArn": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["CountryCode", "TargetArn", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::PhoneNumber"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::QuickConnect": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "QuickConnectConfig": {
              "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InstanceArn", "Name", "QuickConnectConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::QuickConnect"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": {
      "additionalProperties": false,
      "properties": {
        "PhoneNumber": {
          "type": "string"
        }
      },
      "required": ["PhoneNumber"],
      "type": "object"
    },
    "AWS::Connect::QuickConnect.QueueQuickConnectConfig": {
      "additionalProperties": false,
      "properties": {
        "ContactFlowArn": {
          "type": "string"
        },
        "QueueArn": {
          "type": "string"
        }
      },
      "required": ["ContactFlowArn", "QueueArn"],
      "type": "object"
    },
    "AWS::Connect::QuickConnect.QuickConnectConfig": {
      "additionalProperties": false,
      "properties": {
        "PhoneConfig": {
          "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig"
        },
        "QueueConfig": {
          "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig"
        },
        "QuickConnectType": {
          "type": "string"
        },
        "UserConfig": {
          "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig"
        }
      },
      "required": ["QuickConnectType"],
      "type": "object"
    },
    "AWS::Connect::QuickConnect.UserQuickConnectConfig": {
      "additionalProperties": false,
      "properties": {
        "ContactFlowArn": {
          "type": "string"
        },
        "UserArn": {
          "type": "string"
        }
      },
      "required": ["ContactFlowArn", "UserArn"],
      "type": "object"
    },
    "AWS::Connect::Rule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "$ref": "#/definitions/AWS::Connect::Rule.Actions"
            },
            "Function": {
              "type": "string"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PublishStatus": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TriggerEventSource": {
              "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource"
            }
          },
          "required": [
            "Actions",
            "Function",
            "InstanceArn",
            "Name",
            "PublishStatus",
            "TriggerEventSource"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::Rule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::Rule.Actions": {
      "additionalProperties": false,
      "properties": {
        "AssignContactCategoryActions": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "EventBridgeActions": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction"
          },
          "type": "array"
        },
        "SendNotificationActions": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction"
          },
          "type": "array"
        },
        "TaskActions": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::Rule.TaskAction"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Connect::Rule.EventBridgeAction": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Connect::Rule.NotificationRecipientType": {
      "additionalProperties": false,
      "properties": {
        "UserArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UserTags": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Connect::Rule.Reference": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::Connect::Rule.RuleTriggerEventSource": {
      "additionalProperties": false,
      "properties": {
        "EventSourceName": {
          "type": "string"
        },
        "IntegrationAssociationArn": {
          "type": "string"
        }
      },
      "required": ["EventSourceName"],
      "type": "object"
    },
    "AWS::Connect::Rule.SendNotificationAction": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        },
        "DeliveryMethod": {
          "type": "string"
        },
        "Recipient": {
          "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType"
        },
        "Subject": {
          "type": "string"
        }
      },
      "required": ["Content", "ContentType", "DeliveryMethod", "Recipient"],
      "type": "object"
    },
    "AWS::Connect::Rule.TaskAction": {
      "additionalProperties": false,
      "properties": {
        "ContactFlowArn": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "References": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::Connect::Rule.Reference"
            }
          },
          "type": "object"
        }
      },
      "required": ["ContactFlowArn", "Name"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientToken": {
              "type": "string"
            },
            "Constraints": {
              "$ref": "#/definitions/AWS::Connect::TaskTemplate.Constraints"
            },
            "ContactFlowArn": {
              "type": "string"
            },
            "Defaults": {
              "items": {
                "$ref": "#/definitions/AWS::Connect::TaskTemplate.DefaultFieldValue"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Fields": {
              "items": {
                "$ref": "#/definitions/AWS::Connect::TaskTemplate.Field"
              },
              "type": "array"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InstanceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::TaskTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.Constraints": {
      "additionalProperties": false,
      "properties": {
        "InvisibleFields": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::TaskTemplate.InvisibleFieldInfo"
          },
          "type": "array"
        },
        "ReadOnlyFields": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::TaskTemplate.ReadOnlyFieldInfo"
          },
          "type": "array"
        },
        "RequiredFields": {
          "items": {
            "$ref": "#/definitions/AWS::Connect::TaskTemplate.RequiredFieldInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.DefaultFieldValue": {
      "additionalProperties": false,
      "properties": {
        "DefaultValue": {
          "type": "string"
        },
        "Id": {
          "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier"
        }
      },
      "required": ["DefaultValue", "Id"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.Field": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Id": {
          "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier"
        },
        "SingleSelectOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Id", "Type"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.FieldIdentifier": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.InvisibleFieldInfo": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.ReadOnlyFieldInfo": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::Connect::TaskTemplate.RequiredFieldInfo": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::Connect::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DirectoryUserId": {
              "type": "string"
            },
            "HierarchyGroupArn": {
              "type": "string"
            },
            "IdentityInfo": {
              "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo"
            },
            "InstanceArn": {
              "type": "string"
            },
            "Password": {
              "type": "string"
            },
            "PhoneConfig": {
              "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig"
            },
            "RoutingProfileArn": {
              "type": "string"
            },
            "SecurityProfileArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Username": {
              "type": "string"
            }
          },
          "required": [
            "InstanceArn",
            "PhoneConfig",
            "RoutingProfileArn",
            "SecurityProfileArns",
            "Username"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Connect::User.UserIdentityInfo": {
      "additionalProperties": false,
      "properties": {
        "Email": {
          "type": "string"
        },
        "FirstName": {
          "type": "string"
        },
        "LastName": {
          "type": "string"
        },
        "Mobile": {
          "type": "string"
        },
        "SecondaryEmail": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Connect::User.UserPhoneConfig": {
      "additionalProperties": false,
      "properties": {
        "AfterContactWorkTimeLimit": {
          "type": "number"
        },
        "AutoAccept": {
          "type": "boolean"
        },
        "DeskPhoneNumber": {
          "type": "string"
        },
        "PhoneType": {
          "type": "string"
        }
      },
      "required": ["PhoneType"],
      "type": "object"
    },
    "AWS::Connect::UserHierarchyGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InstanceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ParentGroupArn": {
              "type": "string"
            }
          },
          "required": ["InstanceArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Connect::UserHierarchyGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ConnectCampaigns::Campaign": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectInstanceArn": {
              "type": "string"
            },
            "DialerConfig": {
              "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.DialerConfig"
            },
            "Name": {
              "type": "string"
            },
            "OutboundCallConfig": {
              "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.OutboundCallConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "ConnectInstanceArn",
            "DialerConfig",
            "Name",
            "OutboundCallConfig"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ConnectCampaigns::Campaign"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ConnectCampaigns::Campaign.DialerConfig": {
      "additionalProperties": false,
      "properties": {
        "PredictiveDialerConfig": {
          "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.PredictiveDialerConfig"
        },
        "ProgressiveDialerConfig": {
          "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.ProgressiveDialerConfig"
        }
      },
      "type": "object"
    },
    "AWS::ConnectCampaigns::Campaign.OutboundCallConfig": {
      "additionalProperties": false,
      "properties": {
        "ConnectContactFlowArn": {
          "type": "string"
        },
        "ConnectQueueArn": {
          "type": "string"
        },
        "ConnectSourcePhoneNumber": {
          "type": "string"
        }
      },
      "required": ["ConnectContactFlowArn", "ConnectQueueArn"],
      "type": "object"
    },
    "AWS::ConnectCampaigns::Campaign.PredictiveDialerConfig": {
      "additionalProperties": false,
      "properties": {
        "BandwidthAllocation": {
          "type": "number"
        }
      },
      "required": ["BandwidthAllocation"],
      "type": "object"
    },
    "AWS::ConnectCampaigns::Campaign.ProgressiveDialerConfig": {
      "additionalProperties": false,
      "properties": {
        "BandwidthAllocation": {
          "type": "number"
        }
      },
      "required": ["BandwidthAllocation"],
      "type": "object"
    },
    "AWS::ControlTower::EnabledControl": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ControlIdentifier": {
              "type": "string"
            },
            "TargetIdentifier": {
              "type": "string"
            }
          },
          "required": ["ControlIdentifier", "TargetIdentifier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ControlTower::EnabledControl"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeadLetterQueueUrl": {
              "type": "string"
            },
            "DefaultEncryptionKey": {
              "type": "string"
            },
            "DefaultExpirationDays": {
              "type": "number"
            },
            "DomainName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CustomerProfiles::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainName": {
              "type": "string"
            },
            "FlowDefinition": {
              "$ref": "#/definitions/AWS::CustomerProfiles::Integration.FlowDefinition"
            },
            "ObjectTypeName": {
              "type": "string"
            },
            "ObjectTypeNames": {
              "items": {
                "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Uri": {
              "type": "string"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CustomerProfiles::Integration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.ConnectorOperator": {
      "additionalProperties": false,
      "properties": {
        "Marketo": {
          "type": "string"
        },
        "S3": {
          "type": "string"
        },
        "Salesforce": {
          "type": "string"
        },
        "ServiceNow": {
          "type": "string"
        },
        "Zendesk": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.FlowDefinition": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "FlowName": {
          "type": "string"
        },
        "KmsArn": {
          "type": "string"
        },
        "SourceFlowConfig": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceFlowConfig"
        },
        "Tasks": {
          "items": {
            "$ref": "#/definitions/AWS::CustomerProfiles::Integration.Task"
          },
          "type": "array"
        },
        "TriggerConfig": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerConfig"
        }
      },
      "required": [
        "FlowName",
        "KmsArn",
        "SourceFlowConfig",
        "Tasks",
        "TriggerConfig"
      ],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.IncrementalPullConfig": {
      "additionalProperties": false,
      "properties": {
        "DatetimeTypeFieldName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.MarketoSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.ObjectTypeMapping": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.S3SourceProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.SalesforceSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "EnableDynamicFieldUpdate": {
          "type": "boolean"
        },
        "IncludeDeletedRecords": {
          "type": "boolean"
        },
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.ScheduledTriggerProperties": {
      "additionalProperties": false,
      "properties": {
        "DataPullMode": {
          "type": "string"
        },
        "FirstExecutionFrom": {
          "type": "number"
        },
        "ScheduleEndTime": {
          "type": "number"
        },
        "ScheduleExpression": {
          "type": "string"
        },
        "ScheduleOffset": {
          "type": "number"
        },
        "ScheduleStartTime": {
          "type": "number"
        },
        "Timezone": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.ServiceNowSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.SourceConnectorProperties": {
      "additionalProperties": false,
      "properties": {
        "Marketo": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.MarketoSourceProperties"
        },
        "S3": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.S3SourceProperties"
        },
        "Salesforce": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SalesforceSourceProperties"
        },
        "ServiceNow": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ServiceNowSourceProperties"
        },
        "Zendesk": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ZendeskSourceProperties"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.SourceFlowConfig": {
      "additionalProperties": false,
      "properties": {
        "ConnectorProfileName": {
          "type": "string"
        },
        "ConnectorType": {
          "type": "string"
        },
        "IncrementalPullConfig": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.IncrementalPullConfig"
        },
        "SourceConnectorProperties": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceConnectorProperties"
        }
      },
      "required": ["ConnectorType", "SourceConnectorProperties"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.Task": {
      "additionalProperties": false,
      "properties": {
        "ConnectorOperator": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ConnectorOperator"
        },
        "DestinationField": {
          "type": "string"
        },
        "SourceFields": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TaskProperties": {
          "items": {
            "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TaskPropertiesMap"
          },
          "type": "array"
        },
        "TaskType": {
          "type": "string"
        }
      },
      "required": ["SourceFields", "TaskType"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.TaskPropertiesMap": {
      "additionalProperties": false,
      "properties": {
        "OperatorPropertyKey": {
          "type": "string"
        },
        "Property": {
          "type": "string"
        }
      },
      "required": ["OperatorPropertyKey", "Property"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.TriggerConfig": {
      "additionalProperties": false,
      "properties": {
        "TriggerProperties": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerProperties"
        },
        "TriggerType": {
          "type": "string"
        }
      },
      "required": ["TriggerType"],
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.TriggerProperties": {
      "additionalProperties": false,
      "properties": {
        "Scheduled": {
          "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ScheduledTriggerProperties"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::Integration.ZendeskSourceProperties": {
      "additionalProperties": false,
      "properties": {
        "Object": {
          "type": "string"
        }
      },
      "required": ["Object"],
      "type": "object"
    },
    "AWS::CustomerProfiles::ObjectType": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowProfileCreation": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "EncryptionKey": {
              "type": "string"
            },
            "ExpirationDays": {
              "type": "number"
            },
            "Fields": {
              "items": {
                "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.FieldMap"
              },
              "type": "array"
            },
            "Keys": {
              "items": {
                "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.KeyMap"
              },
              "type": "array"
            },
            "ObjectTypeName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateId": {
              "type": "string"
            }
          },
          "required": ["DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::CustomerProfiles::ObjectType"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::CustomerProfiles::ObjectType.FieldMap": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ObjectTypeField": {
          "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeField"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::ObjectType.KeyMap": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ObjectTypeKeyList": {
          "items": {
            "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeKey"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::ObjectType.ObjectTypeField": {
      "additionalProperties": false,
      "properties": {
        "ContentType": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::CustomerProfiles::ObjectType.ObjectTypeKey": {
      "additionalProperties": false,
      "properties": {
        "FieldNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StandardIdentifiers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DAX::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClusterEndpointEncryptionType": {
              "type": "string"
            },
            "ClusterName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "IAMRoleARN": {
              "type": "string"
            },
            "NodeType": {
              "type": "string"
            },
            "NotificationTopicARN": {
              "type": "string"
            },
            "ParameterGroupName": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "ReplicationFactor": {
              "type": "number"
            },
            "SSESpecification": {
              "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetGroupName": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["IAMRoleARN", "NodeType", "ReplicationFactor"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DAX::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DAX::Cluster.SSESpecification": {
      "additionalProperties": false,
      "properties": {
        "SSEEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DAX::ParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "ParameterGroupName": {
              "type": "string"
            },
            "ParameterNameValues": {
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DAX::ParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DAX::SubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "SubnetGroupName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DAX::SubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "PolicyDetails": {
              "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails"
            },
            "State": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DLM::LifecyclePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.Action": {
      "additionalProperties": false,
      "properties": {
        "CrossRegionCopy": {
          "items": {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CrossRegionCopy", "Name"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.ArchiveRetainRule": {
      "additionalProperties": false,
      "properties": {
        "RetentionArchiveTier": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetentionArchiveTier"
        }
      },
      "required": ["RetentionArchiveTier"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.ArchiveRule": {
      "additionalProperties": false,
      "properties": {
        "RetainRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ArchiveRetainRule"
        }
      },
      "required": ["RetainRule"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.CreateRule": {
      "additionalProperties": false,
      "properties": {
        "CronExpression": {
          "type": "string"
        },
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        },
        "Location": {
          "type": "string"
        },
        "Times": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": {
      "additionalProperties": false,
      "properties": {
        "EncryptionConfiguration": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration"
        },
        "RetainRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule"
        },
        "Target": {
          "type": "string"
        }
      },
      "required": ["EncryptionConfiguration", "Target"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule": {
      "additionalProperties": false,
      "properties": {
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "required": ["Interval", "IntervalUnit"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": {
      "additionalProperties": false,
      "properties": {
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "required": ["Interval", "IntervalUnit"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.CrossRegionCopyRule": {
      "additionalProperties": false,
      "properties": {
        "CmkArn": {
          "type": "string"
        },
        "CopyTags": {
          "type": "boolean"
        },
        "DeprecateRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "RetainRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule"
        },
        "Target": {
          "type": "string"
        },
        "TargetRegion": {
          "type": "string"
        }
      },
      "required": ["Encrypted"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.DeprecateRule": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CmkArn": {
          "type": "string"
        },
        "Encrypted": {
          "type": "boolean"
        }
      },
      "required": ["Encrypted"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.EventParameters": {
      "additionalProperties": false,
      "properties": {
        "DescriptionRegex": {
          "type": "string"
        },
        "EventType": {
          "type": "string"
        },
        "SnapshotOwner": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["EventType", "SnapshotOwner"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.EventSource": {
      "additionalProperties": false,
      "properties": {
        "Parameters": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.FastRestoreRule": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZones": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Count": {
          "type": "number"
        },
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.Parameters": {
      "additionalProperties": false,
      "properties": {
        "ExcludeBootVolume": {
          "type": "boolean"
        },
        "ExcludeDataVolumeTags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "NoReboot": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.PolicyDetails": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action"
          },
          "type": "array"
        },
        "EventSource": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource"
        },
        "Parameters": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters"
        },
        "PolicyType": {
          "type": "string"
        },
        "ResourceLocations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Schedules": {
          "items": {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule"
          },
          "type": "array"
        },
        "TargetTags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.RetainRule": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.RetentionArchiveTier": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Interval": {
          "type": "number"
        },
        "IntervalUnit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.Schedule": {
      "additionalProperties": false,
      "properties": {
        "ArchiveRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ArchiveRule"
        },
        "CopyTags": {
          "type": "boolean"
        },
        "CreateRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule"
        },
        "CrossRegionCopyRules": {
          "items": {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRule"
          },
          "type": "array"
        },
        "DeprecateRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.DeprecateRule"
        },
        "FastRestoreRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.FastRestoreRule"
        },
        "Name": {
          "type": "string"
        },
        "RetainRule": {
          "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule"
        },
        "ShareRules": {
          "items": {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule"
          },
          "type": "array"
        },
        "TagsToAdd": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "VariableTags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DLM::LifecyclePolicy.ShareRule": {
      "additionalProperties": false,
      "properties": {
        "TargetAccounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UnshareInterval": {
          "type": "number"
        },
        "UnshareIntervalUnit": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateIdentifier": {
              "type": "string"
            },
            "CertificatePem": {
              "type": "string"
            },
            "CertificateWallet": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DMS::Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateArn": {
              "type": "string"
            },
            "DatabaseName": {
              "type": "string"
            },
            "DocDbSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.DocDbSettings"
            },
            "DynamoDbSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings"
            },
            "ElasticsearchSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings"
            },
            "EndpointIdentifier": {
              "type": "string"
            },
            "EndpointType": {
              "type": "string"
            },
            "EngineName": {
              "type": "string"
            },
            "ExtraConnectionAttributes": {
              "type": "string"
            },
            "GcpMySQLSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.GcpMySQLSettings"
            },
            "IbmDb2Settings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.IbmDb2Settings"
            },
            "KafkaSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.KafkaSettings"
            },
            "KinesisSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MicrosoftSqlServerSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.MicrosoftSqlServerSettings"
            },
            "MongoDbSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings"
            },
            "MySqlSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.MySqlSettings"
            },
            "NeptuneSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.NeptuneSettings"
            },
            "OracleSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.OracleSettings"
            },
            "Password": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "PostgreSqlSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings"
            },
            "RedisSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings"
            },
            "RedshiftSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings"
            },
            "ResourceIdentifier": {
              "type": "string"
            },
            "S3Settings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings"
            },
            "ServerName": {
              "type": "string"
            },
            "SslMode": {
              "type": "string"
            },
            "SybaseSettings": {
              "$ref": "#/definitions/AWS::DMS::Endpoint.SybaseSettings"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Username": {
              "type": "string"
            }
          },
          "required": ["EndpointType", "EngineName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::Endpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DMS::Endpoint.DocDbSettings": {
      "additionalProperties": false,
      "properties": {
        "DocsToInvestigate": {
          "type": "number"
        },
        "ExtractDocId": {
          "type": "boolean"
        },
        "NestingLevel": {
          "type": "string"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.DynamoDbSettings": {
      "additionalProperties": false,
      "properties": {
        "ServiceAccessRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.ElasticsearchSettings": {
      "additionalProperties": false,
      "properties": {
        "EndpointUri": {
          "type": "string"
        },
        "ErrorRetryDuration": {
          "type": "number"
        },
        "FullLoadErrorPercentage": {
          "type": "number"
        },
        "ServiceAccessRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.GcpMySQLSettings": {
      "additionalProperties": false,
      "properties": {
        "AfterConnectScript": {
          "type": "string"
        },
        "CleanSourceMetadataOnMismatch": {
          "type": "boolean"
        },
        "DatabaseName": {
          "type": "string"
        },
        "EventsPollInterval": {
          "type": "number"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "ParallelLoadThreads": {
          "type": "number"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "ServerName": {
          "type": "string"
        },
        "ServerTimezone": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.IbmDb2Settings": {
      "additionalProperties": false,
      "properties": {
        "CurrentLsn": {
          "type": "string"
        },
        "MaxKBytesPerRead": {
          "type": "number"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "SetDataCaptureChanges": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.KafkaSettings": {
      "additionalProperties": false,
      "properties": {
        "Broker": {
          "type": "string"
        },
        "IncludeControlDetails": {
          "type": "boolean"
        },
        "IncludeNullAndEmpty": {
          "type": "boolean"
        },
        "IncludePartitionValue": {
          "type": "boolean"
        },
        "IncludeTableAlterOperations": {
          "type": "boolean"
        },
        "IncludeTransactionDetails": {
          "type": "boolean"
        },
        "MessageFormat": {
          "type": "string"
        },
        "MessageMaxBytes": {
          "type": "number"
        },
        "NoHexPrefix": {
          "type": "boolean"
        },
        "PartitionIncludeSchemaTable": {
          "type": "boolean"
        },
        "SaslPassword": {
          "type": "string"
        },
        "SaslUserName": {
          "type": "string"
        },
        "SecurityProtocol": {
          "type": "string"
        },
        "SslCaCertificateArn": {
          "type": "string"
        },
        "SslClientCertificateArn": {
          "type": "string"
        },
        "SslClientKeyArn": {
          "type": "string"
        },
        "SslClientKeyPassword": {
          "type": "string"
        },
        "Topic": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.KinesisSettings": {
      "additionalProperties": false,
      "properties": {
        "IncludeControlDetails": {
          "type": "boolean"
        },
        "IncludeNullAndEmpty": {
          "type": "boolean"
        },
        "IncludePartitionValue": {
          "type": "boolean"
        },
        "IncludeTableAlterOperations": {
          "type": "boolean"
        },
        "IncludeTransactionDetails": {
          "type": "boolean"
        },
        "MessageFormat": {
          "type": "string"
        },
        "NoHexPrefix": {
          "type": "boolean"
        },
        "PartitionIncludeSchemaTable": {
          "type": "boolean"
        },
        "ServiceAccessRoleArn": {
          "type": "string"
        },
        "StreamArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.MicrosoftSqlServerSettings": {
      "additionalProperties": false,
      "properties": {
        "BcpPacketSize": {
          "type": "number"
        },
        "ControlTablesFileGroup": {
          "type": "string"
        },
        "QuerySingleAlwaysOnNode": {
          "type": "boolean"
        },
        "ReadBackupOnly": {
          "type": "boolean"
        },
        "SafeguardPolicy": {
          "type": "string"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "UseBcpFullLoad": {
          "type": "boolean"
        },
        "UseThirdPartyBackupDevice": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.MongoDbSettings": {
      "additionalProperties": false,
      "properties": {
        "AuthMechanism": {
          "type": "string"
        },
        "AuthSource": {
          "type": "string"
        },
        "AuthType": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DocsToInvestigate": {
          "type": "string"
        },
        "ExtractDocId": {
          "type": "string"
        },
        "NestingLevel": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "ServerName": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.MySqlSettings": {
      "additionalProperties": false,
      "properties": {
        "AfterConnectScript": {
          "type": "string"
        },
        "CleanSourceMetadataOnMismatch": {
          "type": "boolean"
        },
        "EventsPollInterval": {
          "type": "number"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "ParallelLoadThreads": {
          "type": "number"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "ServerTimezone": {
          "type": "string"
        },
        "TargetDbType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.NeptuneSettings": {
      "additionalProperties": false,
      "properties": {
        "ErrorRetryDuration": {
          "type": "number"
        },
        "IamAuthEnabled": {
          "type": "boolean"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "MaxRetryCount": {
          "type": "number"
        },
        "S3BucketFolder": {
          "type": "string"
        },
        "S3BucketName": {
          "type": "string"
        },
        "ServiceAccessRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.OracleSettings": {
      "additionalProperties": false,
      "properties": {
        "AccessAlternateDirectly": {
          "type": "boolean"
        },
        "AddSupplementalLogging": {
          "type": "boolean"
        },
        "AdditionalArchivedLogDestId": {
          "type": "number"
        },
        "AllowSelectNestedTables": {
          "type": "boolean"
        },
        "ArchivedLogDestId": {
          "type": "number"
        },
        "ArchivedLogsOnly": {
          "type": "boolean"
        },
        "AsmPassword": {
          "type": "string"
        },
        "AsmServer": {
          "type": "string"
        },
        "AsmUser": {
          "type": "string"
        },
        "CharLengthSemantics": {
          "type": "string"
        },
        "DirectPathNoLog": {
          "type": "boolean"
        },
        "DirectPathParallelLoad": {
          "type": "boolean"
        },
        "EnableHomogenousTablespace": {
          "type": "boolean"
        },
        "ExtraArchivedLogDestIds": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "FailTasksOnLobTruncation": {
          "type": "boolean"
        },
        "NumberDatatypeScale": {
          "type": "number"
        },
        "OraclePathPrefix": {
          "type": "string"
        },
        "ParallelAsmReadThreads": {
          "type": "number"
        },
        "ReadAheadBlocks": {
          "type": "number"
        },
        "ReadTableSpaceName": {
          "type": "boolean"
        },
        "ReplacePathPrefix": {
          "type": "boolean"
        },
        "RetryInterval": {
          "type": "number"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerOracleAsmAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerOracleAsmSecretId": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "SecurityDbEncryption": {
          "type": "string"
        },
        "SecurityDbEncryptionName": {
          "type": "string"
        },
        "SpatialDataOptionToGeoJsonFunctionName": {
          "type": "string"
        },
        "StandbyDelayTime": {
          "type": "number"
        },
        "UseAlternateFolderForOnline": {
          "type": "boolean"
        },
        "UseBFile": {
          "type": "boolean"
        },
        "UseDirectPathFullLoad": {
          "type": "boolean"
        },
        "UseLogminerReader": {
          "type": "boolean"
        },
        "UsePathPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.PostgreSqlSettings": {
      "additionalProperties": false,
      "properties": {
        "AfterConnectScript": {
          "type": "string"
        },
        "CaptureDdls": {
          "type": "boolean"
        },
        "DdlArtifactsSchema": {
          "type": "string"
        },
        "ExecuteTimeout": {
          "type": "number"
        },
        "FailTasksOnLobTruncation": {
          "type": "boolean"
        },
        "HeartbeatEnable": {
          "type": "boolean"
        },
        "HeartbeatFrequency": {
          "type": "number"
        },
        "HeartbeatSchema": {
          "type": "string"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "PluginName": {
          "type": "string"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "SlotName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.RedisSettings": {
      "additionalProperties": false,
      "properties": {
        "AuthPassword": {
          "type": "string"
        },
        "AuthType": {
          "type": "string"
        },
        "AuthUserName": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "ServerName": {
          "type": "string"
        },
        "SslCaCertificateArn": {
          "type": "string"
        },
        "SslSecurityProtocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.RedshiftSettings": {
      "additionalProperties": false,
      "properties": {
        "AcceptAnyDate": {
          "type": "boolean"
        },
        "AfterConnectScript": {
          "type": "string"
        },
        "BucketFolder": {
          "type": "string"
        },
        "BucketName": {
          "type": "string"
        },
        "CaseSensitiveNames": {
          "type": "boolean"
        },
        "CompUpdate": {
          "type": "boolean"
        },
        "ConnectionTimeout": {
          "type": "number"
        },
        "DateFormat": {
          "type": "string"
        },
        "EmptyAsNull": {
          "type": "boolean"
        },
        "EncryptionMode": {
          "type": "string"
        },
        "ExplicitIds": {
          "type": "boolean"
        },
        "FileTransferUploadStreams": {
          "type": "number"
        },
        "LoadTimeout": {
          "type": "number"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "RemoveQuotes": {
          "type": "boolean"
        },
        "ReplaceChars": {
          "type": "string"
        },
        "ReplaceInvalidChars": {
          "type": "string"
        },
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        },
        "ServerSideEncryptionKmsKeyId": {
          "type": "string"
        },
        "ServiceAccessRoleArn": {
          "type": "string"
        },
        "TimeFormat": {
          "type": "string"
        },
        "TrimBlanks": {
          "type": "boolean"
        },
        "TruncateColumns": {
          "type": "boolean"
        },
        "WriteBufferSize": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.S3Settings": {
      "additionalProperties": false,
      "properties": {
        "AddColumnName": {
          "type": "boolean"
        },
        "BucketFolder": {
          "type": "string"
        },
        "BucketName": {
          "type": "string"
        },
        "CannedAclForObjects": {
          "type": "string"
        },
        "CdcInsertsAndUpdates": {
          "type": "boolean"
        },
        "CdcInsertsOnly": {
          "type": "boolean"
        },
        "CdcMaxBatchInterval": {
          "type": "number"
        },
        "CdcMinFileSize": {
          "type": "number"
        },
        "CdcPath": {
          "type": "string"
        },
        "CompressionType": {
          "type": "string"
        },
        "CsvDelimiter": {
          "type": "string"
        },
        "CsvNoSupValue": {
          "type": "string"
        },
        "CsvNullValue": {
          "type": "string"
        },
        "CsvRowDelimiter": {
          "type": "string"
        },
        "DataFormat": {
          "type": "string"
        },
        "DataPageSize": {
          "type": "number"
        },
        "DatePartitionDelimiter": {
          "type": "string"
        },
        "DatePartitionEnabled": {
          "type": "boolean"
        },
        "DatePartitionSequence": {
          "type": "string"
        },
        "DatePartitionTimezone": {
          "type": "string"
        },
        "DictPageSizeLimit": {
          "type": "number"
        },
        "EnableStatistics": {
          "type": "boolean"
        },
        "EncodingType": {
          "type": "string"
        },
        "EncryptionMode": {
          "type": "string"
        },
        "ExternalTableDefinition": {
          "type": "string"
        },
        "IgnoreHeaderRows": {
          "type": "number"
        },
        "IncludeOpForFullLoad": {
          "type": "boolean"
        },
        "MaxFileSize": {
          "type": "number"
        },
        "ParquetTimestampInMillisecond": {
          "type": "boolean"
        },
        "ParquetVersion": {
          "type": "string"
        },
        "PreserveTransactions": {
          "type": "boolean"
        },
        "Rfc4180": {
          "type": "boolean"
        },
        "RowGroupLength": {
          "type": "number"
        },
        "ServerSideEncryptionKmsKeyId": {
          "type": "string"
        },
        "ServiceAccessRoleArn": {
          "type": "string"
        },
        "TimestampColumnName": {
          "type": "string"
        },
        "UseCsvNoSupValue": {
          "type": "boolean"
        },
        "UseTaskStartTimeForFullLoadTimestamp": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DMS::Endpoint.SybaseSettings": {
      "additionalProperties": false,
      "properties": {
        "SecretsManagerAccessRoleArn": {
          "type": "string"
        },
        "SecretsManagerSecretId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DMS::EventSubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enabled": {
              "type": "boolean"
            },
            "EventCategories": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnsTopicArn": {
              "type": "string"
            },
            "SourceIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SourceType": {
              "type": "string"
            },
            "SubscriptionName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SnsTopicArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::EventSubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DMS::ReplicationInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocatedStorage": {
              "type": "number"
            },
            "AllowMajorVersionUpgrade": {
              "type": "boolean"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MultiAZ": {
              "type": "boolean"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "ReplicationInstanceClass": {
              "type": "string"
            },
            "ReplicationInstanceIdentifier": {
              "type": "string"
            },
            "ReplicationSubnetGroupIdentifier": {
              "type": "string"
            },
            "ResourceIdentifier": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["ReplicationInstanceClass"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::ReplicationInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DMS::ReplicationSubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ReplicationSubnetGroupDescription": {
              "type": "string"
            },
            "ReplicationSubnetGroupIdentifier": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ReplicationSubnetGroupDescription", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::ReplicationSubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DMS::ReplicationTask": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CdcStartPosition": {
              "type": "string"
            },
            "CdcStartTime": {
              "type": "number"
            },
            "CdcStopPosition": {
              "type": "string"
            },
            "MigrationType": {
              "type": "string"
            },
            "ReplicationInstanceArn": {
              "type": "string"
            },
            "ReplicationTaskIdentifier": {
              "type": "string"
            },
            "ReplicationTaskSettings": {
              "type": "string"
            },
            "ResourceIdentifier": {
              "type": "string"
            },
            "SourceEndpointArn": {
              "type": "string"
            },
            "TableMappings": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetEndpointArn": {
              "type": "string"
            },
            "TaskData": {
              "type": "string"
            }
          },
          "required": [
            "MigrationType",
            "ReplicationInstanceArn",
            "SourceEndpointArn",
            "TableMappings",
            "TargetEndpointArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DMS::ReplicationTask"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Format": {
              "type": "string"
            },
            "FormatOptions": {
              "$ref": "#/definitions/AWS::DataBrew::Dataset.FormatOptions"
            },
            "Input": {
              "$ref": "#/definitions/AWS::DataBrew::Dataset.Input"
            },
            "Name": {
              "type": "string"
            },
            "PathOptions": {
              "$ref": "#/definitions/AWS::DataBrew::Dataset.PathOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Input", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Dataset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.CsvOptions": {
      "additionalProperties": false,
      "properties": {
        "Delimiter": {
          "type": "string"
        },
        "HeaderRow": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.DataCatalogInputDefinition": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "TempDirectory": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.DatabaseInputDefinition": {
      "additionalProperties": false,
      "properties": {
        "DatabaseTableName": {
          "type": "string"
        },
        "GlueConnectionName": {
          "type": "string"
        },
        "QueryString": {
          "type": "string"
        },
        "TempDirectory": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location"
        }
      },
      "required": ["GlueConnectionName"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.DatasetParameter": {
      "additionalProperties": false,
      "properties": {
        "CreateColumn": {
          "type": "boolean"
        },
        "DatetimeOptions": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.DatetimeOptions"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.DatetimeOptions": {
      "additionalProperties": false,
      "properties": {
        "Format": {
          "type": "string"
        },
        "LocaleCode": {
          "type": "string"
        },
        "TimezoneOffset": {
          "type": "string"
        }
      },
      "required": ["Format"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.ExcelOptions": {
      "additionalProperties": false,
      "properties": {
        "HeaderRow": {
          "type": "boolean"
        },
        "SheetIndexes": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "SheetNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.FilesLimit": {
      "additionalProperties": false,
      "properties": {
        "MaxFiles": {
          "type": "number"
        },
        "Order": {
          "type": "string"
        },
        "OrderedBy": {
          "type": "string"
        }
      },
      "required": ["MaxFiles"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.FilterExpression": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "ValuesMap": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterValue"
          },
          "type": "array"
        }
      },
      "required": ["Expression", "ValuesMap"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.FilterValue": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        },
        "ValueReference": {
          "type": "string"
        }
      },
      "required": ["Value", "ValueReference"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.FormatOptions": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.CsvOptions"
        },
        "Excel": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.ExcelOptions"
        },
        "Json": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.JsonOptions"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.Input": {
      "additionalProperties": false,
      "properties": {
        "DataCatalogInputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.DataCatalogInputDefinition"
        },
        "DatabaseInputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.DatabaseInputDefinition"
        },
        "Metadata": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.Metadata"
        },
        "S3InputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.JsonOptions": {
      "additionalProperties": false,
      "properties": {
        "MultiLine": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.Metadata": {
      "additionalProperties": false,
      "properties": {
        "SourceArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.PathOptions": {
      "additionalProperties": false,
      "properties": {
        "FilesLimit": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.FilesLimit"
        },
        "LastModifiedDateCondition": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression"
        },
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Dataset.PathParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Dataset.PathParameter": {
      "additionalProperties": false,
      "properties": {
        "DatasetParameter": {
          "$ref": "#/definitions/AWS::DataBrew::Dataset.DatasetParameter"
        },
        "PathParameterName": {
          "type": "string"
        }
      },
      "required": ["DatasetParameter", "PathParameterName"],
      "type": "object"
    },
    "AWS::DataBrew::Dataset.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::DataBrew::Job": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataCatalogOutputs": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Job.DataCatalogOutput"
              },
              "type": "array"
            },
            "DatabaseOutputs": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseOutput"
              },
              "type": "array"
            },
            "DatasetName": {
              "type": "string"
            },
            "EncryptionKeyArn": {
              "type": "string"
            },
            "EncryptionMode": {
              "type": "string"
            },
            "JobSample": {
              "$ref": "#/definitions/AWS::DataBrew::Job.JobSample"
            },
            "LogSubscription": {
              "type": "string"
            },
            "MaxCapacity": {
              "type": "number"
            },
            "MaxRetries": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "OutputLocation": {
              "$ref": "#/definitions/AWS::DataBrew::Job.OutputLocation"
            },
            "Outputs": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Job.Output"
              },
              "type": "array"
            },
            "ProfileConfiguration": {
              "$ref": "#/definitions/AWS::DataBrew::Job.ProfileConfiguration"
            },
            "ProjectName": {
              "type": "string"
            },
            "Recipe": {
              "$ref": "#/definitions/AWS::DataBrew::Job.Recipe"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Timeout": {
              "type": "number"
            },
            "Type": {
              "type": "string"
            },
            "ValidationConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Job.ValidationConfiguration"
              },
              "type": "array"
            }
          },
          "required": ["Name", "RoleArn", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Job"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Job.AllowedStatistics": {
      "additionalProperties": false,
      "properties": {
        "Statistics": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Statistics"],
      "type": "object"
    },
    "AWS::DataBrew::Job.ColumnSelector": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Regex": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.ColumnStatisticsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Selectors": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector"
          },
          "type": "array"
        },
        "Statistics": {
          "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration"
        }
      },
      "required": ["Statistics"],
      "type": "object"
    },
    "AWS::DataBrew::Job.CsvOutputOptions": {
      "additionalProperties": false,
      "properties": {
        "Delimiter": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.DataCatalogOutput": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DatabaseOptions": {
          "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions"
        },
        "Overwrite": {
          "type": "boolean"
        },
        "S3Options": {
          "$ref": "#/definitions/AWS::DataBrew::Job.S3TableOutputOptions"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["DatabaseName", "TableName"],
      "type": "object"
    },
    "AWS::DataBrew::Job.DatabaseOutput": {
      "additionalProperties": false,
      "properties": {
        "DatabaseOptions": {
          "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions"
        },
        "DatabaseOutputMode": {
          "type": "string"
        },
        "GlueConnectionName": {
          "type": "string"
        }
      },
      "required": ["DatabaseOptions", "GlueConnectionName"],
      "type": "object"
    },
    "AWS::DataBrew::Job.DatabaseTableOutputOptions": {
      "additionalProperties": false,
      "properties": {
        "TableName": {
          "type": "string"
        },
        "TempDirectory": {
          "$ref": "#/definitions/AWS::DataBrew::Job.S3Location"
        }
      },
      "required": ["TableName"],
      "type": "object"
    },
    "AWS::DataBrew::Job.EntityDetectorConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedStatistics": {
          "$ref": "#/definitions/AWS::DataBrew::Job.AllowedStatistics"
        },
        "EntityTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["EntityTypes"],
      "type": "object"
    },
    "AWS::DataBrew::Job.JobSample": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        },
        "Size": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.Output": {
      "additionalProperties": false,
      "properties": {
        "CompressionFormat": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        },
        "FormatOptions": {
          "$ref": "#/definitions/AWS::DataBrew::Job.OutputFormatOptions"
        },
        "Location": {
          "$ref": "#/definitions/AWS::DataBrew::Job.S3Location"
        },
        "MaxOutputFiles": {
          "type": "number"
        },
        "Overwrite": {
          "type": "boolean"
        },
        "PartitionColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Location"],
      "type": "object"
    },
    "AWS::DataBrew::Job.OutputFormatOptions": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::DataBrew::Job.CsvOutputOptions"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.OutputLocation": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "BucketOwner": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::DataBrew::Job.ProfileConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ColumnStatisticsConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Job.ColumnStatisticsConfiguration"
          },
          "type": "array"
        },
        "DatasetStatisticsConfiguration": {
          "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration"
        },
        "EntityDetectorConfiguration": {
          "$ref": "#/definitions/AWS::DataBrew::Job.EntityDetectorConfiguration"
        },
        "ProfileColumns": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.Recipe": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::DataBrew::Job.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "BucketOwner": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::DataBrew::Job.S3TableOutputOptions": {
      "additionalProperties": false,
      "properties": {
        "Location": {
          "$ref": "#/definitions/AWS::DataBrew::Job.S3Location"
        }
      },
      "required": ["Location"],
      "type": "object"
    },
    "AWS::DataBrew::Job.StatisticOverride": {
      "additionalProperties": false,
      "properties": {
        "Parameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Statistic": {
          "type": "string"
        }
      },
      "required": ["Parameters", "Statistic"],
      "type": "object"
    },
    "AWS::DataBrew::Job.StatisticsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "IncludedStatistics": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Overrides": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Job.StatisticOverride"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Job.ValidationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "RulesetArn": {
          "type": "string"
        },
        "ValidationMode": {
          "type": "string"
        }
      },
      "required": ["RulesetArn"],
      "type": "object"
    },
    "AWS::DataBrew::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatasetName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RecipeName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Sample": {
              "$ref": "#/definitions/AWS::DataBrew::Project.Sample"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DatasetName", "Name", "RecipeName", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Project.Sample": {
      "additionalProperties": false,
      "properties": {
        "Size": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Steps": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "Steps"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Recipe"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe.Action": {
      "additionalProperties": false,
      "properties": {
        "Operation": {
          "type": "string"
        },
        "Parameters": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeParameters"
        }
      },
      "required": ["Operation"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe.ConditionExpression": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "TargetColumn": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Condition", "TargetColumn"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe.DataCatalogInputDefinition": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "TempDirectory": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Recipe.Input": {
      "additionalProperties": false,
      "properties": {
        "DataCatalogInputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition"
        },
        "S3InputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Recipe.RecipeParameters": {
      "additionalProperties": false,
      "properties": {
        "AggregateFunction": {
          "type": "string"
        },
        "Base": {
          "type": "string"
        },
        "CaseStatement": {
          "type": "string"
        },
        "CategoryMap": {
          "type": "string"
        },
        "CharsToRemove": {
          "type": "string"
        },
        "CollapseConsecutiveWhitespace": {
          "type": "string"
        },
        "ColumnDataType": {
          "type": "string"
        },
        "ColumnRange": {
          "type": "string"
        },
        "Count": {
          "type": "string"
        },
        "CustomCharacters": {
          "type": "string"
        },
        "CustomStopWords": {
          "type": "string"
        },
        "CustomValue": {
          "type": "string"
        },
        "DatasetsColumns": {
          "type": "string"
        },
        "DateAddValue": {
          "type": "string"
        },
        "DateTimeFormat": {
          "type": "string"
        },
        "DateTimeParameters": {
          "type": "string"
        },
        "DeleteOtherRows": {
          "type": "string"
        },
        "Delimiter": {
          "type": "string"
        },
        "EndPattern": {
          "type": "string"
        },
        "EndPosition": {
          "type": "string"
        },
        "EndValue": {
          "type": "string"
        },
        "ExpandContractions": {
          "type": "string"
        },
        "Exponent": {
          "type": "string"
        },
        "FalseString": {
          "type": "string"
        },
        "GroupByAggFunctionOptions": {
          "type": "string"
        },
        "GroupByColumns": {
          "type": "string"
        },
        "HiddenColumns": {
          "type": "string"
        },
        "IgnoreCase": {
          "type": "string"
        },
        "IncludeInSplit": {
          "type": "string"
        },
        "Input": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.Input"
        },
        "Interval": {
          "type": "string"
        },
        "IsText": {
          "type": "string"
        },
        "JoinKeys": {
          "type": "string"
        },
        "JoinType": {
          "type": "string"
        },
        "LeftColumns": {
          "type": "string"
        },
        "Limit": {
          "type": "string"
        },
        "LowerBound": {
          "type": "string"
        },
        "MapType": {
          "type": "string"
        },
        "ModeType": {
          "type": "string"
        },
        "MultiLine": {
          "type": "boolean"
        },
        "NumRows": {
          "type": "string"
        },
        "NumRowsAfter": {
          "type": "string"
        },
        "NumRowsBefore": {
          "type": "string"
        },
        "OrderByColumn": {
          "type": "string"
        },
        "OrderByColumns": {
          "type": "string"
        },
        "Other": {
          "type": "string"
        },
        "Pattern": {
          "type": "string"
        },
        "PatternOption1": {
          "type": "string"
        },
        "PatternOption2": {
          "type": "string"
        },
        "PatternOptions": {
          "type": "string"
        },
        "Period": {
          "type": "string"
        },
        "Position": {
          "type": "string"
        },
        "RemoveAllPunctuation": {
          "type": "string"
        },
        "RemoveAllQuotes": {
          "type": "string"
        },
        "RemoveAllWhitespace": {
          "type": "string"
        },
        "RemoveCustomCharacters": {
          "type": "string"
        },
        "RemoveCustomValue": {
          "type": "string"
        },
        "RemoveLeadingAndTrailingPunctuation": {
          "type": "string"
        },
        "RemoveLeadingAndTrailingQuotes": {
          "type": "string"
        },
        "RemoveLeadingAndTrailingWhitespace": {
          "type": "string"
        },
        "RemoveLetters": {
          "type": "string"
        },
        "RemoveNumbers": {
          "type": "string"
        },
        "RemoveSourceColumn": {
          "type": "string"
        },
        "RemoveSpecialCharacters": {
          "type": "string"
        },
        "RightColumns": {
          "type": "string"
        },
        "SampleSize": {
          "type": "string"
        },
        "SampleType": {
          "type": "string"
        },
        "SecondInput": {
          "type": "string"
        },
        "SecondaryInputs": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput"
          },
          "type": "array"
        },
        "SheetIndexes": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "SheetNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourceColumn": {
          "type": "string"
        },
        "SourceColumn1": {
          "type": "string"
        },
        "SourceColumn2": {
          "type": "string"
        },
        "SourceColumns": {
          "type": "string"
        },
        "StartColumnIndex": {
          "type": "string"
        },
        "StartPattern": {
          "type": "string"
        },
        "StartPosition": {
          "type": "string"
        },
        "StartValue": {
          "type": "string"
        },
        "StemmingMode": {
          "type": "string"
        },
        "StepCount": {
          "type": "string"
        },
        "StepIndex": {
          "type": "string"
        },
        "StopWordsMode": {
          "type": "string"
        },
        "Strategy": {
          "type": "string"
        },
        "TargetColumn": {
          "type": "string"
        },
        "TargetColumnNames": {
          "type": "string"
        },
        "TargetDateFormat": {
          "type": "string"
        },
        "TargetIndex": {
          "type": "string"
        },
        "TimeZone": {
          "type": "string"
        },
        "TokenizerPattern": {
          "type": "string"
        },
        "TrueString": {
          "type": "string"
        },
        "UdfLang": {
          "type": "string"
        },
        "Units": {
          "type": "string"
        },
        "UnpivotColumn": {
          "type": "string"
        },
        "UpperBound": {
          "type": "string"
        },
        "UseNewDataFrame": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        },
        "Value1": {
          "type": "string"
        },
        "Value2": {
          "type": "string"
        },
        "ValueColumn": {
          "type": "string"
        },
        "ViewFrame": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Recipe.RecipeStep": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.Action"
        },
        "ConditionExpressions": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression"
          },
          "type": "array"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::DataBrew::Recipe.SecondaryInput": {
      "additionalProperties": false,
      "properties": {
        "DataCatalogInputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition"
        },
        "S3InputDefinition": {
          "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Ruleset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::DataBrew::Ruleset.Rule"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetArn": {
              "type": "string"
            }
          },
          "required": ["Name", "Rules", "TargetArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Ruleset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataBrew::Ruleset.ColumnSelector": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Regex": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataBrew::Ruleset.Rule": {
      "additionalProperties": false,
      "properties": {
        "CheckExpression": {
          "type": "string"
        },
        "ColumnSelectors": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Ruleset.ColumnSelector"
          },
          "type": "array"
        },
        "Disabled": {
          "type": "boolean"
        },
        "Name": {
          "type": "string"
        },
        "SubstitutionMap": {
          "items": {
            "$ref": "#/definitions/AWS::DataBrew::Ruleset.SubstitutionValue"
          },
          "type": "array"
        },
        "Threshold": {
          "$ref": "#/definitions/AWS::DataBrew::Ruleset.Threshold"
        }
      },
      "required": ["CheckExpression", "Name"],
      "type": "object"
    },
    "AWS::DataBrew::Ruleset.SubstitutionValue": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        },
        "ValueReference": {
          "type": "string"
        }
      },
      "required": ["Value", "ValueReference"],
      "type": "object"
    },
    "AWS::DataBrew::Ruleset.Threshold": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::DataBrew::Schedule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CronExpression": {
              "type": "string"
            },
            "JobNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["CronExpression", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataBrew::Schedule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Activate": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ParameterObjects": {
              "items": {
                "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject"
              },
              "type": "array"
            },
            "ParameterValues": {
              "items": {
                "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue"
              },
              "type": "array"
            },
            "PipelineObjects": {
              "items": {
                "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject"
              },
              "type": "array"
            },
            "PipelineTags": {
              "items": {
                "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataPipeline::Pipeline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.Field": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "RefValue": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "required": ["Key"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.ParameterAttribute": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "required": ["Key", "StringValue"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.ParameterObject": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute"
          },
          "type": "array"
        },
        "Id": {
          "type": "string"
        }
      },
      "required": ["Attributes", "Id"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.ParameterValue": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "required": ["Id", "StringValue"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.PipelineObject": {
      "additionalProperties": false,
      "properties": {
        "Fields": {
          "items": {
            "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field"
          },
          "type": "array"
        },
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Fields", "Id", "Name"],
      "type": "object"
    },
    "AWS::DataPipeline::Pipeline.PipelineTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::DataSync::Agent": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActivationKey": {
              "type": "string"
            },
            "AgentName": {
              "type": "string"
            },
            "SecurityGroupArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcEndpointId": {
              "type": "string"
            }
          },
          "required": ["ActivationKey"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::Agent"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationEFS": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPointArn": {
              "type": "string"
            },
            "Ec2Config": {
              "$ref": "#/definitions/AWS::DataSync::LocationEFS.Ec2Config"
            },
            "EfsFilesystemArn": {
              "type": "string"
            },
            "FileSystemAccessRoleArn": {
              "type": "string"
            },
            "InTransitEncryption": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Ec2Config"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationEFS"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationEFS.Ec2Config": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetArn": {
          "type": "string"
        }
      },
      "required": ["SecurityGroupArns", "SubnetArn"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxLustre": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FsxFilesystemArn": {
              "type": "string"
            },
            "SecurityGroupArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SecurityGroupArns"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationFSxLustre"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Protocol": {
              "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.Protocol"
            },
            "SecurityGroupArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StorageVirtualMachineArn": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "Protocol",
            "SecurityGroupArns",
            "StorageVirtualMachineArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationFSxONTAP"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP.NFS": {
      "additionalProperties": false,
      "properties": {
        "MountOptions": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.NfsMountOptions"
        }
      },
      "required": ["MountOptions"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP.NfsMountOptions": {
      "additionalProperties": false,
      "properties": {
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP.Protocol": {
      "additionalProperties": false,
      "properties": {
        "NFS": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.NFS"
        },
        "SMB": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.SMB"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP.SMB": {
      "additionalProperties": false,
      "properties": {
        "Domain": {
          "type": "string"
        },
        "MountOptions": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.SmbMountOptions"
        },
        "Password": {
          "type": "string"
        },
        "User": {
          "type": "string"
        }
      },
      "required": ["MountOptions", "Password", "User"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxONTAP.SmbMountOptions": {
      "additionalProperties": false,
      "properties": {
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationFSxOpenZFS": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FsxFilesystemArn": {
              "type": "string"
            },
            "Protocol": {
              "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.Protocol"
            },
            "SecurityGroupArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FsxFilesystemArn", "Protocol", "SecurityGroupArns"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationFSxOpenZFS"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxOpenZFS.MountOptions": {
      "additionalProperties": false,
      "properties": {
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationFSxOpenZFS.NFS": {
      "additionalProperties": false,
      "properties": {
        "MountOptions": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.MountOptions"
        }
      },
      "required": ["MountOptions"],
      "type": "object"
    },
    "AWS::DataSync::LocationFSxOpenZFS.Protocol": {
      "additionalProperties": false,
      "properties": {
        "NFS": {
          "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.NFS"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationFSxWindows": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Domain": {
              "type": "string"
            },
            "FsxFilesystemArn": {
              "type": "string"
            },
            "Password": {
              "type": "string"
            },
            "SecurityGroupArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "User": {
              "type": "string"
            }
          },
          "required": ["SecurityGroupArns", "User"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationFSxWindows"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationHDFS": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AgentArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AuthenticationType": {
              "type": "string"
            },
            "BlockSize": {
              "type": "number"
            },
            "KerberosKeytab": {
              "type": "string"
            },
            "KerberosKrb5Conf": {
              "type": "string"
            },
            "KerberosPrincipal": {
              "type": "string"
            },
            "KmsKeyProviderUri": {
              "type": "string"
            },
            "NameNodes": {
              "items": {
                "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode"
              },
              "type": "array"
            },
            "QopConfiguration": {
              "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration"
            },
            "ReplicationFactor": {
              "type": "number"
            },
            "SimpleUser": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AgentArns", "AuthenticationType", "NameNodes"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationHDFS"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationHDFS.NameNode": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Hostname", "Port"],
      "type": "object"
    },
    "AWS::DataSync::LocationHDFS.QopConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DataTransferProtection": {
          "type": "string"
        },
        "RpcProtection": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationNFS": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MountOptions": {
              "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions"
            },
            "OnPremConfig": {
              "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig"
            },
            "ServerHostname": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["OnPremConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationNFS"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationNFS.MountOptions": {
      "additionalProperties": false,
      "properties": {
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::LocationNFS.OnPremConfig": {
      "additionalProperties": false,
      "properties": {
        "AgentArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["AgentArns"],
      "type": "object"
    },
    "AWS::DataSync::LocationObjectStorage": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessKey": {
              "type": "string"
            },
            "AgentArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BucketName": {
              "type": "string"
            },
            "SecretKey": {
              "type": "string"
            },
            "ServerHostname": {
              "type": "string"
            },
            "ServerPort": {
              "type": "number"
            },
            "ServerProtocol": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AgentArns"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationObjectStorage"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationS3": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "S3BucketArn": {
              "type": "string"
            },
            "S3Config": {
              "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config"
            },
            "S3StorageClass": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["S3BucketArn", "S3Config"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationS3"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationS3.S3Config": {
      "additionalProperties": false,
      "properties": {
        "BucketAccessRoleArn": {
          "type": "string"
        }
      },
      "required": ["BucketAccessRoleArn"],
      "type": "object"
    },
    "AWS::DataSync::LocationSMB": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AgentArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Domain": {
              "type": "string"
            },
            "MountOptions": {
              "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions"
            },
            "Password": {
              "type": "string"
            },
            "ServerHostname": {
              "type": "string"
            },
            "Subdirectory": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "User": {
              "type": "string"
            }
          },
          "required": ["AgentArns", "User"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::LocationSMB"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::LocationSMB.MountOptions": {
      "additionalProperties": false,
      "properties": {
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::Task": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CloudWatchLogGroupArn": {
              "type": "string"
            },
            "DestinationLocationArn": {
              "type": "string"
            },
            "Excludes": {
              "items": {
                "$ref": "#/definitions/AWS::DataSync::Task.FilterRule"
              },
              "type": "array"
            },
            "Includes": {
              "items": {
                "$ref": "#/definitions/AWS::DataSync::Task.FilterRule"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Options": {
              "$ref": "#/definitions/AWS::DataSync::Task.Options"
            },
            "Schedule": {
              "$ref": "#/definitions/AWS::DataSync::Task.TaskSchedule"
            },
            "SourceLocationArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DestinationLocationArn", "SourceLocationArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DataSync::Task"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DataSync::Task.FilterRule": {
      "additionalProperties": false,
      "properties": {
        "FilterType": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::Task.Options": {
      "additionalProperties": false,
      "properties": {
        "Atime": {
          "type": "string"
        },
        "BytesPerSecond": {
          "type": "number"
        },
        "Gid": {
          "type": "string"
        },
        "LogLevel": {
          "type": "string"
        },
        "Mtime": {
          "type": "string"
        },
        "ObjectTags": {
          "type": "string"
        },
        "OverwriteMode": {
          "type": "string"
        },
        "PosixPermissions": {
          "type": "string"
        },
        "PreserveDeletedFiles": {
          "type": "string"
        },
        "PreserveDevices": {
          "type": "string"
        },
        "SecurityDescriptorCopyFlags": {
          "type": "string"
        },
        "TaskQueueing": {
          "type": "string"
        },
        "TransferMode": {
          "type": "string"
        },
        "Uid": {
          "type": "string"
        },
        "VerifyMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DataSync::Task.TaskSchedule": {
      "additionalProperties": false,
      "properties": {
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::Detective::Graph": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Detective::Graph"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Detective::MemberInvitation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DisableEmailNotification": {
              "type": "boolean"
            },
            "GraphArn": {
              "type": "string"
            },
            "MemberEmailAddress": {
              "type": "string"
            },
            "MemberId": {
              "type": "string"
            },
            "Message": {
              "type": "string"
            }
          },
          "required": ["GraphArn", "MemberEmailAddress", "MemberId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Detective::MemberInvitation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DevOpsGuru::NotificationChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Config": {
              "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig"
            }
          },
          "required": ["Config"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DevOpsGuru::NotificationChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig": {
      "additionalProperties": false,
      "properties": {
        "Filters": {
          "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationFilterConfig"
        },
        "Sns": {
          "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig"
        }
      },
      "type": "object"
    },
    "AWS::DevOpsGuru::NotificationChannel.NotificationFilterConfig": {
      "additionalProperties": false,
      "properties": {
        "MessageTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Severities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig": {
      "additionalProperties": false,
      "properties": {
        "TopicArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DevOpsGuru::ResourceCollection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceCollectionFilter": {
              "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter"
            }
          },
          "required": ["ResourceCollectionFilter"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DevOpsGuru::ResourceCollection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter": {
      "additionalProperties": false,
      "properties": {
        "StackNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter": {
      "additionalProperties": false,
      "properties": {
        "CloudFormation": {
          "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.TagCollection"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DevOpsGuru::ResourceCollection.TagCollection": {
      "additionalProperties": false,
      "properties": {
        "AppBoundaryKey": {
          "type": "string"
        },
        "TagValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DirectoryService::MicrosoftAD": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CreateAlias": {
              "type": "boolean"
            },
            "Edition": {
              "type": "string"
            },
            "EnableSso": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "Password": {
              "type": "string"
            },
            "ShortName": {
              "type": "string"
            },
            "VpcSettings": {
              "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings"
            }
          },
          "required": ["Name", "Password", "VpcSettings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DirectoryService::MicrosoftAD"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DirectoryService::MicrosoftAD.VpcSettings": {
      "additionalProperties": false,
      "properties": {
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "required": ["SubnetIds", "VpcId"],
      "type": "object"
    },
    "AWS::DirectoryService::SimpleAD": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CreateAlias": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "EnableSso": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "Password": {
              "type": "string"
            },
            "ShortName": {
              "type": "string"
            },
            "Size": {
              "type": "string"
            },
            "VpcSettings": {
              "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings"
            }
          },
          "required": ["Name", "Size", "VpcSettings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DirectoryService::SimpleAD"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DirectoryService::SimpleAD.VpcSettings": {
      "additionalProperties": false,
      "properties": {
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "required": ["SubnetIds", "VpcId"],
      "type": "object"
    },
    "AWS::DocDB::DBCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BackupRetentionPeriod": {
              "type": "number"
            },
            "CopyTagsToSnapshot": {
              "type": "boolean"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBClusterParameterGroupName": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "DeletionProtection": {
              "type": "boolean"
            },
            "EnableCloudwatchLogsExports": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EngineVersion": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MasterUserPassword": {
              "type": "string"
            },
            "MasterUsername": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "RestoreToTime": {
              "type": "string"
            },
            "RestoreType": {
              "type": "string"
            },
            "SnapshotIdentifier": {
              "type": "string"
            },
            "SourceDBClusterIdentifier": {
              "type": "string"
            },
            "StorageEncrypted": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UseLatestRestorableTime": {
              "type": "boolean"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DocDB::DBCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::DocDB::DBClusterParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "Family", "Parameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DocDB::DBClusterParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DocDB::DBInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBInstanceClass": {
              "type": "string"
            },
            "DBInstanceIdentifier": {
              "type": "string"
            },
            "EnablePerformanceInsights": {
              "type": "boolean"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBClusterIdentifier", "DBInstanceClass"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DocDB::DBInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DocDB::DBSubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBSubnetGroupDescription": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBSubnetGroupDescription", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DocDB::DBSubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DocDBElastic::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdminUserName": {
              "type": "string"
            },
            "AdminUserPassword": {
              "type": "string"
            },
            "AuthType": {
              "type": "string"
            },
            "ClusterName": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "ShardCapacity": {
              "type": "number"
            },
            "ShardCount": {
              "type": "number"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "AdminUserName",
            "AuthType",
            "ClusterName",
            "ShardCapacity",
            "ShardCount"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DocDBElastic::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttributeDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.AttributeDefinition"
              },
              "type": "array"
            },
            "BillingMode": {
              "type": "string"
            },
            "GlobalSecondaryIndexes": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex"
              },
              "type": "array"
            },
            "KeySchema": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema"
              },
              "type": "array"
            },
            "LocalSecondaryIndexes": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.LocalSecondaryIndex"
              },
              "type": "array"
            },
            "Replicas": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSpecification"
              },
              "type": "array"
            },
            "SSESpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.SSESpecification"
            },
            "StreamSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.StreamSpecification"
            },
            "TableName": {
              "type": "string"
            },
            "TimeToLiveSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TimeToLiveSpecification"
            },
            "WriteProvisionedThroughputSettings": {
              "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings"
            }
          },
          "required": ["AttributeDefinitions", "KeySchema", "Replicas"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DynamoDB::GlobalTable"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.AttributeDefinition": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "AttributeType": {
          "type": "string"
        }
      },
      "required": ["AttributeName", "AttributeType"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        },
        "SeedCapacity": {
          "type": "number"
        },
        "TargetTrackingScalingPolicyConfiguration": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration"
        }
      },
      "required": [
        "MaxCapacity",
        "MinCapacity",
        "TargetTrackingScalingPolicyConfiguration"
      ],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex": {
      "additionalProperties": false,
      "properties": {
        "IndexName": {
          "type": "string"
        },
        "KeySchema": {
          "items": {
            "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema"
          },
          "type": "array"
        },
        "Projection": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection"
        },
        "WriteProvisionedThroughputSettings": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings"
        }
      },
      "required": ["IndexName", "KeySchema", "Projection"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.KeySchema": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        }
      },
      "required": ["AttributeName", "KeyType"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.LocalSecondaryIndex": {
      "additionalProperties": false,
      "properties": {
        "IndexName": {
          "type": "string"
        },
        "KeySchema": {
          "items": {
            "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema"
          },
          "type": "array"
        },
        "Projection": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection"
        }
      },
      "required": ["IndexName", "KeySchema", "Projection"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification": {
      "additionalProperties": false,
      "properties": {
        "PointInTimeRecoveryEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.Projection": {
      "additionalProperties": false,
      "properties": {
        "NonKeyAttributes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ProjectionType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings": {
      "additionalProperties": false,
      "properties": {
        "ReadCapacityAutoScalingSettings": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings"
        },
        "ReadCapacityUnits": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContributorInsightsSpecification": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification"
        },
        "IndexName": {
          "type": "string"
        },
        "ReadProvisionedThroughputSettings": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings"
        }
      },
      "required": ["IndexName"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.ReplicaSSESpecification": {
      "additionalProperties": false,
      "properties": {
        "KMSMasterKeyId": {
          "type": "string"
        }
      },
      "required": ["KMSMasterKeyId"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.ReplicaSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContributorInsightsSpecification": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification"
        },
        "GlobalSecondaryIndexes": {
          "items": {
            "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification"
          },
          "type": "array"
        },
        "PointInTimeRecoverySpecification": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification"
        },
        "ReadProvisionedThroughputSettings": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings"
        },
        "Region": {
          "type": "string"
        },
        "SSESpecification": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification"
        },
        "TableClass": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "required": ["Region"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.SSESpecification": {
      "additionalProperties": false,
      "properties": {
        "SSEEnabled": {
          "type": "boolean"
        },
        "SSEType": {
          "type": "string"
        }
      },
      "required": ["SSEEnabled"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.StreamSpecification": {
      "additionalProperties": false,
      "properties": {
        "StreamViewType": {
          "type": "string"
        }
      },
      "required": ["StreamViewType"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DisableScaleIn": {
          "type": "boolean"
        },
        "ScaleInCooldown": {
          "type": "number"
        },
        "ScaleOutCooldown": {
          "type": "number"
        },
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.TimeToLiveSpecification": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings": {
      "additionalProperties": false,
      "properties": {
        "WriteCapacityAutoScalingSettings": {
          "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::Table": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttributeDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition"
              },
              "type": "array"
            },
            "BillingMode": {
              "type": "string"
            },
            "ContributorInsightsSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification"
            },
            "GlobalSecondaryIndexes": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex"
              },
              "type": "array"
            },
            "ImportSourceSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification"
            },
            "KeySchema": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema"
              },
              "type": "array"
            },
            "KinesisStreamSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.KinesisStreamSpecification"
            },
            "LocalSecondaryIndexes": {
              "items": {
                "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex"
              },
              "type": "array"
            },
            "PointInTimeRecoverySpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification"
            },
            "ProvisionedThroughput": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput"
            },
            "SSESpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification"
            },
            "StreamSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification"
            },
            "TableClass": {
              "type": "string"
            },
            "TableName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeToLiveSpecification": {
              "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification"
            }
          },
          "required": ["KeySchema"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::DynamoDB::Table"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.AttributeDefinition": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "AttributeType": {
          "type": "string"
        }
      },
      "required": ["AttributeName", "AttributeType"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.ContributorInsightsSpecification": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.Csv": {
      "additionalProperties": false,
      "properties": {
        "Delimiter": {
          "type": "string"
        },
        "HeaderList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::Table.GlobalSecondaryIndex": {
      "additionalProperties": false,
      "properties": {
        "ContributorInsightsSpecification": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification"
        },
        "IndexName": {
          "type": "string"
        },
        "KeySchema": {
          "items": {
            "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema"
          },
          "type": "array"
        },
        "Projection": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.Projection"
        },
        "ProvisionedThroughput": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput"
        }
      },
      "required": ["IndexName", "KeySchema", "Projection"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.ImportSourceSpecification": {
      "additionalProperties": false,
      "properties": {
        "InputCompressionType": {
          "type": "string"
        },
        "InputFormat": {
          "type": "string"
        },
        "InputFormatOptions": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions"
        },
        "S3BucketSource": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource"
        }
      },
      "required": ["InputFormat", "S3BucketSource"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.InputFormatOptions": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.Csv"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::Table.KeySchema": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        }
      },
      "required": ["AttributeName", "KeyType"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.KinesisStreamSpecification": {
      "additionalProperties": false,
      "properties": {
        "StreamArn": {
          "type": "string"
        }
      },
      "required": ["StreamArn"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.LocalSecondaryIndex": {
      "additionalProperties": false,
      "properties": {
        "IndexName": {
          "type": "string"
        },
        "KeySchema": {
          "items": {
            "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema"
          },
          "type": "array"
        },
        "Projection": {
          "$ref": "#/definitions/AWS::DynamoDB::Table.Projection"
        }
      },
      "required": ["IndexName", "KeySchema", "Projection"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": {
      "additionalProperties": false,
      "properties": {
        "PointInTimeRecoveryEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::Table.Projection": {
      "additionalProperties": false,
      "properties": {
        "NonKeyAttributes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ProjectionType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::DynamoDB::Table.ProvisionedThroughput": {
      "additionalProperties": false,
      "properties": {
        "ReadCapacityUnits": {
          "type": "number"
        },
        "WriteCapacityUnits": {
          "type": "number"
        }
      },
      "required": ["ReadCapacityUnits", "WriteCapacityUnits"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.S3BucketSource": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3BucketOwner": {
          "type": "string"
        },
        "S3KeyPrefix": {
          "type": "string"
        }
      },
      "required": ["S3Bucket"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.SSESpecification": {
      "additionalProperties": false,
      "properties": {
        "KMSMasterKeyId": {
          "type": "string"
        },
        "SSEEnabled": {
          "type": "boolean"
        },
        "SSEType": {
          "type": "string"
        }
      },
      "required": ["SSEEnabled"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.StreamSpecification": {
      "additionalProperties": false,
      "properties": {
        "StreamViewType": {
          "type": "string"
        }
      },
      "required": ["StreamViewType"],
      "type": "object"
    },
    "AWS::DynamoDB::Table.TimeToLiveSpecification": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["AttributeName", "Enabled"],
      "type": "object"
    },
    "AWS::EC2::CapacityReservation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZone": {
              "type": "string"
            },
            "EbsOptimized": {
              "type": "boolean"
            },
            "EndDate": {
              "type": "string"
            },
            "EndDateType": {
              "type": "string"
            },
            "EphemeralStorage": {
              "type": "boolean"
            },
            "InstanceCount": {
              "type": "number"
            },
            "InstanceMatchCriteria": {
              "type": "string"
            },
            "InstancePlatform": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "OutPostArn": {
              "type": "string"
            },
            "PlacementGroupArn": {
              "type": "string"
            },
            "TagSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification"
              },
              "type": "array"
            },
            "Tenancy": {
              "type": "string"
            }
          },
          "required": [
            "AvailabilityZone",
            "InstanceCount",
            "InstancePlatform",
            "InstanceType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::CapacityReservation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::CapacityReservation.TagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::CapacityReservationFleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocationStrategy": {
              "type": "string"
            },
            "EndDate": {
              "type": "string"
            },
            "InstanceMatchCriteria": {
              "type": "string"
            },
            "InstanceTypeSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification"
              },
              "type": "array"
            },
            "NoRemoveEndDate": {
              "type": "boolean"
            },
            "RemoveEndDate": {
              "type": "boolean"
            },
            "TagSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification"
              },
              "type": "array"
            },
            "Tenancy": {
              "type": "string"
            },
            "TotalTargetCapacity": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::CapacityReservationFleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "AvailabilityZoneId": {
          "type": "string"
        },
        "EbsOptimized": {
          "type": "boolean"
        },
        "InstancePlatform": {
          "type": "string"
        },
        "InstanceType": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "Weight": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::CapacityReservationFleet.TagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::CarrierGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::CarrierGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnAuthorizationRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessGroupId": {
              "type": "string"
            },
            "AuthorizeAllGroups": {
              "type": "boolean"
            },
            "ClientVpnEndpointId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "TargetNetworkCidr": {
              "type": "string"
            }
          },
          "required": ["ClientVpnEndpointId", "TargetNetworkCidr"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::ClientVpnAuthorizationRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationOptions": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest"
              },
              "type": "array"
            },
            "ClientCidrBlock": {
              "type": "string"
            },
            "ClientConnectOptions": {
              "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions"
            },
            "ClientLoginBannerOptions": {
              "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions"
            },
            "ConnectionLogOptions": {
              "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions"
            },
            "Description": {
              "type": "string"
            },
            "DnsServers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SelfServicePortal": {
              "type": "string"
            },
            "ServerCertificateArn": {
              "type": "string"
            },
            "SessionTimeoutHours": {
              "type": "number"
            },
            "SplitTunnel": {
              "type": "boolean"
            },
            "TagSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.TagSpecification"
              },
              "type": "array"
            },
            "TransportProtocol": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            },
            "VpnPort": {
              "type": "number"
            }
          },
          "required": [
            "AuthenticationOptions",
            "ClientCidrBlock",
            "ConnectionLogOptions",
            "ServerCertificateArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::ClientVpnEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest": {
      "additionalProperties": false,
      "properties": {
        "ClientRootCertificateChainArn": {
          "type": "string"
        }
      },
      "required": ["ClientRootCertificateChainArn"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest": {
      "additionalProperties": false,
      "properties": {
        "ActiveDirectory": {
          "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest"
        },
        "FederatedAuthentication": {
          "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest"
        },
        "MutualAuthentication": {
          "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "LambdaFunctionArn": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions": {
      "additionalProperties": false,
      "properties": {
        "BannerText": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": {
      "additionalProperties": false,
      "properties": {
        "CloudwatchLogGroup": {
          "type": "string"
        },
        "CloudwatchLogStream": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest": {
      "additionalProperties": false,
      "properties": {
        "DirectoryId": {
          "type": "string"
        }
      },
      "required": ["DirectoryId"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest": {
      "additionalProperties": false,
      "properties": {
        "SAMLProviderArn": {
          "type": "string"
        },
        "SelfServiceSAMLProviderArn": {
          "type": "string"
        }
      },
      "required": ["SAMLProviderArn"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnEndpoint.TagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "required": ["ResourceType", "Tags"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnRoute": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientVpnEndpointId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DestinationCidrBlock": {
              "type": "string"
            },
            "TargetVpcSubnetId": {
              "type": "string"
            }
          },
          "required": [
            "ClientVpnEndpointId",
            "DestinationCidrBlock",
            "TargetVpcSubnetId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::ClientVpnRoute"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::ClientVpnTargetNetworkAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientVpnEndpointId": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["ClientVpnEndpointId", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::ClientVpnTargetNetworkAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::CustomerGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BgpAsn": {
              "type": "number"
            },
            "IpAddress": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["BgpAsn", "IpAddress", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::CustomerGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::DHCPOptions": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainName": {
              "type": "string"
            },
            "DomainNameServers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "NetbiosNameServers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "NetbiosNodeType": {
              "type": "number"
            },
            "NtpServers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::DHCPOptions"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::EC2Fleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Context": {
              "type": "string"
            },
            "ExcessCapacityTerminationPolicy": {
              "type": "string"
            },
            "LaunchTemplateConfigs": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest"
              },
              "type": "array"
            },
            "OnDemandOptions": {
              "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest"
            },
            "ReplaceUnhealthyInstances": {
              "type": "boolean"
            },
            "SpotOptions": {
              "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest"
            },
            "TagSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification"
              },
              "type": "array"
            },
            "TargetCapacitySpecification": {
              "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest"
            },
            "TerminateInstancesWithExpiration": {
              "type": "boolean"
            },
            "Type": {
              "type": "string"
            },
            "ValidFrom": {
              "type": "string"
            },
            "ValidUntil": {
              "type": "string"
            }
          },
          "required": ["LaunchTemplateConfigs", "TargetCapacitySpecification"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::EC2Fleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.AcceleratorCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.CapacityRebalance": {
      "additionalProperties": false,
      "properties": {
        "ReplacementStrategy": {
          "type": "string"
        },
        "TerminationDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": {
      "additionalProperties": false,
      "properties": {
        "UsageStrategy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateSpecification": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest"
        },
        "Overrides": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "InstanceRequirements": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest"
        },
        "InstanceType": {
          "type": "string"
        },
        "MaxPrice": {
          "type": "string"
        },
        "Placement": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.Placement"
        },
        "Priority": {
          "type": "number"
        },
        "SubnetId": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Version"],
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": {
      "additionalProperties": false,
      "properties": {
        "AcceleratorCount": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest"
        },
        "AcceleratorManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorTotalMemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest"
        },
        "AcceleratorTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BareMetal": {
          "type": "string"
        },
        "BaselineEbsBandwidthMbps": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest"
        },
        "BurstablePerformance": {
          "type": "string"
        },
        "CpuManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InstanceGenerations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LocalStorage": {
          "type": "string"
        },
        "LocalStorageTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MemoryGiBPerVCpu": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest"
        },
        "MemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest"
        },
        "NetworkBandwidthGbps": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest"
        },
        "NetworkInterfaceCount": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest"
        },
        "OnDemandMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "RequireHibernateSupport": {
          "type": "boolean"
        },
        "SpotMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "TotalLocalStorageGB": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest"
        },
        "VCpuCount": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.MaintenanceStrategies": {
      "additionalProperties": false,
      "properties": {
        "CapacityRebalance": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.MemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "CapacityReservationOptions": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest"
        },
        "MaxTotalPrice": {
          "type": "string"
        },
        "MinTargetCapacity": {
          "type": "number"
        },
        "SingleAvailabilityZone": {
          "type": "boolean"
        },
        "SingleInstanceType": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.Placement": {
      "additionalProperties": false,
      "properties": {
        "Affinity": {
          "type": "string"
        },
        "AvailabilityZone": {
          "type": "string"
        },
        "GroupName": {
          "type": "string"
        },
        "HostId": {
          "type": "string"
        },
        "HostResourceGroupArn": {
          "type": "string"
        },
        "PartitionNumber": {
          "type": "number"
        },
        "SpreadDomain": {
          "type": "string"
        },
        "Tenancy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.SpotOptionsRequest": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "InstanceInterruptionBehavior": {
          "type": "string"
        },
        "InstancePoolsToUseCount": {
          "type": "number"
        },
        "MaintenanceStrategies": {
          "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies"
        },
        "MaxTotalPrice": {
          "type": "string"
        },
        "MinTargetCapacity": {
          "type": "number"
        },
        "SingleAvailabilityZone": {
          "type": "boolean"
        },
        "SingleInstanceType": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.TagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": {
      "additionalProperties": false,
      "properties": {
        "DefaultTargetCapacityType": {
          "type": "string"
        },
        "OnDemandTargetCapacity": {
          "type": "number"
        },
        "SpotTargetCapacity": {
          "type": "number"
        },
        "TargetCapacityUnitType": {
          "type": "string"
        },
        "TotalTargetCapacity": {
          "type": "number"
        }
      },
      "required": ["TotalTargetCapacity"],
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::EIP": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Domain": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "NetworkBorderGroup": {
              "type": "string"
            },
            "PublicIpv4Pool": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransferAddress": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::EIP"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::EIPAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocationId": {
              "type": "string"
            },
            "EIP": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "PrivateIpAddress": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::EIPAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::EgressOnlyInternetGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::EgressOnlyInternetGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::EnclaveCertificateIamRoleAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateArn": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["CertificateArn", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::EnclaveCertificateIamRoleAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::FlowLog": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeliverLogsPermissionArn": {
              "type": "string"
            },
            "DestinationOptions": {
              "$ref": "#/definitions/AWS::EC2::FlowLog.DestinationOptions"
            },
            "LogDestination": {
              "type": "string"
            },
            "LogDestinationType": {
              "type": "string"
            },
            "LogFormat": {
              "type": "string"
            },
            "LogGroupName": {
              "type": "string"
            },
            "MaxAggregationInterval": {
              "type": "number"
            },
            "ResourceId": {
              "type": "string"
            },
            "ResourceType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TrafficType": {
              "type": "string"
            }
          },
          "required": ["ResourceId", "ResourceType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::FlowLog"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::FlowLog.DestinationOptions": {
      "additionalProperties": false,
      "properties": {
        "FileFormat": {
          "type": "string"
        },
        "HiveCompatiblePartitions": {
          "type": "boolean"
        },
        "PerHourPartition": {
          "type": "boolean"
        }
      },
      "required": [
        "FileFormat",
        "HiveCompatiblePartitions",
        "PerHourPartition"
      ],
      "type": "object"
    },
    "AWS::EC2::GatewayRouteTableAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GatewayId": {
              "type": "string"
            },
            "RouteTableId": {
              "type": "string"
            }
          },
          "required": ["GatewayId", "RouteTableId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::GatewayRouteTableAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::Host": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoPlacement": {
              "type": "string"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "HostRecovery": {
              "type": "string"
            },
            "InstanceFamily": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "OutpostArn": {
              "type": "string"
            }
          },
          "required": ["AvailabilityZone"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::Host"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::IPAM": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "OperatingRegions": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::IPAM.IpamOperatingRegion"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::IPAM"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::IPAM.IpamOperatingRegion": {
      "additionalProperties": false,
      "properties": {
        "RegionName": {
          "type": "string"
        }
      },
      "required": ["RegionName"],
      "type": "object"
    },
    "AWS::EC2::IPAMAllocation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Cidr": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "IpamPoolId": {
              "type": "string"
            },
            "NetmaskLength": {
              "type": "number"
            }
          },
          "required": ["IpamPoolId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::IPAMAllocation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::IPAMPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddressFamily": {
              "type": "string"
            },
            "AllocationDefaultNetmaskLength": {
              "type": "number"
            },
            "AllocationMaxNetmaskLength": {
              "type": "number"
            },
            "AllocationMinNetmaskLength": {
              "type": "number"
            },
            "AllocationResourceTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "AutoImport": {
              "type": "boolean"
            },
            "AwsService": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "IpamScopeId": {
              "type": "string"
            },
            "Locale": {
              "type": "string"
            },
            "ProvisionedCidrs": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::IPAMPool.ProvisionedCidr"
              },
              "type": "array"
            },
            "PubliclyAdvertisable": {
              "type": "boolean"
            },
            "SourceIpamPoolId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AddressFamily", "IpamScopeId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::IPAMPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::IPAMPool.ProvisionedCidr": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        }
      },
      "required": ["Cidr"],
      "type": "object"
    },
    "AWS::EC2::IPAMScope": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "IpamId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["IpamId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::IPAMScope"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::Instance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "CreationPolicy": {
          "type": "object"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalInfo": {
              "type": "string"
            },
            "Affinity": {
              "type": "string"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "BlockDeviceMappings": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping"
              },
              "type": "array"
            },
            "CpuOptions": {
              "$ref": "#/definitions/AWS::EC2::Instance.CpuOptions"
            },
            "CreditSpecification": {
              "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification"
            },
            "DisableApiTermination": {
              "type": "boolean"
            },
            "EbsOptimized": {
              "type": "boolean"
            },
            "ElasticGpuSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification"
              },
              "type": "array"
            },
            "ElasticInferenceAccelerators": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator"
              },
              "type": "array"
            },
            "EnclaveOptions": {
              "$ref": "#/definitions/AWS::EC2::Instance.EnclaveOptions"
            },
            "HibernationOptions": {
              "$ref": "#/definitions/AWS::EC2::Instance.HibernationOptions"
            },
            "HostId": {
              "type": "string"
            },
            "HostResourceGroupArn": {
              "type": "string"
            },
            "IamInstanceProfile": {
              "type": "string"
            },
            "ImageId": {
              "type": "string"
            },
            "InstanceInitiatedShutdownBehavior": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "Ipv6AddressCount": {
              "type": "number"
            },
            "Ipv6Addresses": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address"
              },
              "type": "array"
            },
            "KernelId": {
              "type": "string"
            },
            "KeyName": {
              "type": "string"
            },
            "LaunchTemplate": {
              "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification"
            },
            "LicenseSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification"
              },
              "type": "array"
            },
            "Monitoring": {
              "type": "boolean"
            },
            "NetworkInterfaces": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface"
              },
              "type": "array"
            },
            "PlacementGroupName": {
              "type": "string"
            },
            "PrivateDnsNameOptions": {
              "$ref": "#/definitions/AWS::EC2::Instance.PrivateDnsNameOptions"
            },
            "PrivateIpAddress": {
              "type": "string"
            },
            "PropagateTagsToVolumeOnCreation": {
              "type": "boolean"
            },
            "RamdiskId": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SourceDestCheck": {
              "type": "boolean"
            },
            "SsmAssociations": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Tenancy": {
              "type": "string"
            },
            "UserData": {
              "type": "string"
            },
            "Volumes": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::Instance.Volume"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::Instance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::Instance.AssociationParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EC2::Instance.BlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::EC2::Instance.Ebs"
        },
        "NoDevice": {
          "$ref": "#/definitions/AWS::EC2::Instance.NoDevice"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "required": ["DeviceName"],
      "type": "object"
    },
    "AWS::EC2::Instance.CpuOptions": {
      "additionalProperties": false,
      "properties": {
        "CoreCount": {
          "type": "number"
        },
        "ThreadsPerCore": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.CreditSpecification": {
      "additionalProperties": false,
      "properties": {
        "CPUCredits": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.Ebs": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "SnapshotId": {
          "type": "string"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.ElasticGpuSpecification": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::Instance.ElasticInferenceAccelerator": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::Instance.EnclaveOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.HibernationOptions": {
      "additionalProperties": false,
      "properties": {
        "Configured": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.InstanceIpv6Address": {
      "additionalProperties": false,
      "properties": {
        "Ipv6Address": {
          "type": "string"
        }
      },
      "required": ["Ipv6Address"],
      "type": "object"
    },
    "AWS::EC2::Instance.LaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Version"],
      "type": "object"
    },
    "AWS::EC2::Instance.LicenseSpecification": {
      "additionalProperties": false,
      "properties": {
        "LicenseConfigurationArn": {
          "type": "string"
        }
      },
      "required": ["LicenseConfigurationArn"],
      "type": "object"
    },
    "AWS::EC2::Instance.NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "AssociateCarrierIpAddress": {
          "type": "boolean"
        },
        "AssociatePublicIpAddress": {
          "type": "boolean"
        },
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Description": {
          "type": "string"
        },
        "DeviceIndex": {
          "type": "string"
        },
        "GroupSet": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Ipv6AddressCount": {
          "type": "number"
        },
        "Ipv6Addresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address"
          },
          "type": "array"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "PrivateIpAddress": {
          "type": "string"
        },
        "PrivateIpAddresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification"
          },
          "type": "array"
        },
        "SecondaryPrivateIpAddressCount": {
          "type": "number"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "required": ["DeviceIndex"],
      "type": "object"
    },
    "AWS::EC2::Instance.NoDevice": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::EC2::Instance.PrivateDnsNameOptions": {
      "additionalProperties": false,
      "properties": {
        "EnableResourceNameDnsAAAARecord": {
          "type": "boolean"
        },
        "EnableResourceNameDnsARecord": {
          "type": "boolean"
        },
        "HostnameType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Instance.PrivateIpAddressSpecification": {
      "additionalProperties": false,
      "properties": {
        "Primary": {
          "type": "boolean"
        },
        "PrivateIpAddress": {
          "type": "string"
        }
      },
      "required": ["Primary", "PrivateIpAddress"],
      "type": "object"
    },
    "AWS::EC2::Instance.SsmAssociation": {
      "additionalProperties": false,
      "properties": {
        "AssociationParameters": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter"
          },
          "type": "array"
        },
        "DocumentName": {
          "type": "string"
        }
      },
      "required": ["DocumentName"],
      "type": "object"
    },
    "AWS::EC2::Instance.Volume": {
      "additionalProperties": false,
      "properties": {
        "Device": {
          "type": "string"
        },
        "VolumeId": {
          "type": "string"
        }
      },
      "required": ["Device", "VolumeId"],
      "type": "object"
    },
    "AWS::EC2::InternetGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::InternetGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::KeyPair": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "KeyName": {
              "type": "string"
            },
            "KeyType": {
              "type": "string"
            },
            "PublicKeyMaterial": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KeyName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::KeyPair"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LaunchTemplateData": {
              "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData"
            },
            "LaunchTemplateName": {
              "type": "string"
            },
            "TagSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification"
              },
              "type": "array"
            },
            "VersionDescription": {
              "type": "string"
            }
          },
          "required": ["LaunchTemplateData"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::LaunchTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.AcceleratorCount": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.BlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs"
        },
        "NoDevice": {
          "type": "string"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": {
      "additionalProperties": false,
      "properties": {
        "CapacityReservationPreference": {
          "type": "string"
        },
        "CapacityReservationTarget": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.CapacityReservationTarget": {
      "additionalProperties": false,
      "properties": {
        "CapacityReservationId": {
          "type": "string"
        },
        "CapacityReservationResourceGroupArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.CpuOptions": {
      "additionalProperties": false,
      "properties": {
        "CoreCount": {
          "type": "number"
        },
        "ThreadsPerCore": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.CreditSpecification": {
      "additionalProperties": false,
      "properties": {
        "CpuCredits": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Ebs": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "SnapshotId": {
          "type": "string"
        },
        "Throughput": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.EnclaveOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.HibernationOptions": {
      "additionalProperties": false,
      "properties": {
        "Configured": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.IamInstanceProfile": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.InstanceMarketOptions": {
      "additionalProperties": false,
      "properties": {
        "MarketType": {
          "type": "string"
        },
        "SpotOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.InstanceRequirements": {
      "additionalProperties": false,
      "properties": {
        "AcceleratorCount": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorCount"
        },
        "AcceleratorManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorTotalMemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB"
        },
        "AcceleratorTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BareMetal": {
          "type": "string"
        },
        "BaselineEbsBandwidthMbps": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps"
        },
        "BurstablePerformance": {
          "type": "string"
        },
        "CpuManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InstanceGenerations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LocalStorage": {
          "type": "string"
        },
        "LocalStorageTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MemoryGiBPerVCpu": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu"
        },
        "MemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryMiB"
        },
        "NetworkBandwidthGbps": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkBandwidthGbps"
        },
        "NetworkInterfaceCount": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterfaceCount"
        },
        "OnDemandMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "RequireHibernateSupport": {
          "type": "boolean"
        },
        "SpotMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "TotalLocalStorageGB": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TotalLocalStorageGB"
        },
        "VCpuCount": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.VCpuCount"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification": {
      "additionalProperties": false,
      "properties": {
        "Ipv4Prefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Ipv6Add": {
      "additionalProperties": false,
      "properties": {
        "Ipv6Address": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification": {
      "additionalProperties": false,
      "properties": {
        "Ipv6Prefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.LaunchTemplateData": {
      "additionalProperties": false,
      "properties": {
        "BlockDeviceMappings": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping"
          },
          "type": "array"
        },
        "CapacityReservationSpecification": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification"
        },
        "CpuOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions"
        },
        "CreditSpecification": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification"
        },
        "DisableApiStop": {
          "type": "boolean"
        },
        "DisableApiTermination": {
          "type": "boolean"
        },
        "EbsOptimized": {
          "type": "boolean"
        },
        "ElasticGpuSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification"
          },
          "type": "array"
        },
        "ElasticInferenceAccelerators": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator"
          },
          "type": "array"
        },
        "EnclaveOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions"
        },
        "HibernationOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions"
        },
        "IamInstanceProfile": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile"
        },
        "ImageId": {
          "type": "string"
        },
        "InstanceInitiatedShutdownBehavior": {
          "type": "string"
        },
        "InstanceMarketOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions"
        },
        "InstanceRequirements": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceRequirements"
        },
        "InstanceType": {
          "type": "string"
        },
        "KernelId": {
          "type": "string"
        },
        "KeyName": {
          "type": "string"
        },
        "LicenseSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification"
          },
          "type": "array"
        },
        "MaintenanceOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MaintenanceOptions"
        },
        "MetadataOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MetadataOptions"
        },
        "Monitoring": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring"
        },
        "NetworkInterfaces": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface"
          },
          "type": "array"
        },
        "Placement": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement"
        },
        "PrivateDnsNameOptions": {
          "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateDnsNameOptions"
        },
        "RamDiskId": {
          "type": "string"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TagSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification"
          },
          "type": "array"
        },
        "UserData": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.LicenseSpecification": {
      "additionalProperties": false,
      "properties": {
        "LicenseConfigurationArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.MaintenanceOptions": {
      "additionalProperties": false,
      "properties": {
        "AutoRecovery": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.MemoryMiB": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.MetadataOptions": {
      "additionalProperties": false,
      "properties": {
        "HttpEndpoint": {
          "type": "string"
        },
        "HttpProtocolIpv6": {
          "type": "string"
        },
        "HttpPutResponseHopLimit": {
          "type": "number"
        },
        "HttpTokens": {
          "type": "string"
        },
        "InstanceMetadataTags": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Monitoring": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.NetworkBandwidthGbps": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "AssociateCarrierIpAddress": {
          "type": "boolean"
        },
        "AssociatePublicIpAddress": {
          "type": "boolean"
        },
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Description": {
          "type": "string"
        },
        "DeviceIndex": {
          "type": "number"
        },
        "Groups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InterfaceType": {
          "type": "string"
        },
        "Ipv4PrefixCount": {
          "type": "number"
        },
        "Ipv4Prefixes": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification"
          },
          "type": "array"
        },
        "Ipv6AddressCount": {
          "type": "number"
        },
        "Ipv6Addresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add"
          },
          "type": "array"
        },
        "Ipv6PrefixCount": {
          "type": "number"
        },
        "Ipv6Prefixes": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification"
          },
          "type": "array"
        },
        "NetworkCardIndex": {
          "type": "number"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "PrivateIpAddress": {
          "type": "string"
        },
        "PrivateIpAddresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd"
          },
          "type": "array"
        },
        "SecondaryPrivateIpAddressCount": {
          "type": "number"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.Placement": {
      "additionalProperties": false,
      "properties": {
        "Affinity": {
          "type": "string"
        },
        "AvailabilityZone": {
          "type": "string"
        },
        "GroupId": {
          "type": "string"
        },
        "GroupName": {
          "type": "string"
        },
        "HostId": {
          "type": "string"
        },
        "HostResourceGroupArn": {
          "type": "string"
        },
        "PartitionNumber": {
          "type": "number"
        },
        "SpreadDomain": {
          "type": "string"
        },
        "Tenancy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.PrivateDnsNameOptions": {
      "additionalProperties": false,
      "properties": {
        "EnableResourceNameDnsAAAARecord": {
          "type": "boolean"
        },
        "EnableResourceNameDnsARecord": {
          "type": "boolean"
        },
        "HostnameType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.PrivateIpAdd": {
      "additionalProperties": false,
      "properties": {
        "Primary": {
          "type": "boolean"
        },
        "PrivateIpAddress": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.SpotOptions": {
      "additionalProperties": false,
      "properties": {
        "BlockDurationMinutes": {
          "type": "number"
        },
        "InstanceInterruptionBehavior": {
          "type": "string"
        },
        "MaxPrice": {
          "type": "string"
        },
        "SpotInstanceType": {
          "type": "string"
        },
        "ValidUntil": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.TagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LaunchTemplate.VCpuCount": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::LocalGatewayRoute": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationCidrBlock": {
              "type": "string"
            },
            "LocalGatewayRouteTableId": {
              "type": "string"
            },
            "LocalGatewayVirtualInterfaceGroupId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            }
          },
          "required": ["DestinationCidrBlock", "LocalGatewayRouteTableId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::LocalGatewayRoute"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::LocalGatewayRouteTableVPCAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LocalGatewayRouteTableId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["LocalGatewayRouteTableId", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::LocalGatewayRouteTableVPCAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NatGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocationId": {
              "type": "string"
            },
            "ConnectivityType": {
              "type": "string"
            },
            "PrivateIpAddress": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NatGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkAcl": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkAcl"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkAclEntry": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CidrBlock": {
              "type": "string"
            },
            "Egress": {
              "type": "boolean"
            },
            "Icmp": {
              "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp"
            },
            "Ipv6CidrBlock": {
              "type": "string"
            },
            "NetworkAclId": {
              "type": "string"
            },
            "PortRange": {
              "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange"
            },
            "Protocol": {
              "type": "number"
            },
            "RuleAction": {
              "type": "string"
            },
            "RuleNumber": {
              "type": "number"
            }
          },
          "required": ["NetworkAclId", "Protocol", "RuleAction", "RuleNumber"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkAclEntry"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkAclEntry.Icmp": {
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "number"
        },
        "Type": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkAclEntry.PortRange": {
      "additionalProperties": false,
      "properties": {
        "From": {
          "type": "number"
        },
        "To": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExcludePaths": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest"
              },
              "type": "array"
            },
            "MatchPaths": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInsightsAccessScope"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest"
        },
        "Source": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest"
        },
        "ThroughResources": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest": {
      "additionalProperties": false,
      "properties": {
        "DestinationAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DestinationPorts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DestinationPrefixLists": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Protocols": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourceAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourcePorts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourcePrefixLists": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest": {
      "additionalProperties": false,
      "properties": {
        "PacketHeaderStatement": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest"
        },
        "ResourceStatement": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest": {
      "additionalProperties": false,
      "properties": {
        "ResourceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest": {
      "additionalProperties": false,
      "properties": {
        "ResourceStatement": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAccessScopeAnalysis": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "NetworkInsightsAccessScopeId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["NetworkInsightsAccessScopeId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInsightsAccessScopeAnalysis"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalAccounts": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "FilterInArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "NetworkInsightsPathId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["NetworkInsightsPathId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInsightsAnalysis"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail": {
      "additionalProperties": false,
      "properties": {
        "AdditionalDetailType": {
          "type": "string"
        },
        "Component": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AlternatePathHint": {
      "additionalProperties": false,
      "properties": {
        "ComponentArn": {
          "type": "string"
        },
        "ComponentId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        },
        "Egress": {
          "type": "boolean"
        },
        "PortRange": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange"
        },
        "Protocol": {
          "type": "string"
        },
        "RuleAction": {
          "type": "string"
        },
        "RuleNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener": {
      "additionalProperties": false,
      "properties": {
        "InstancePort": {
          "type": "number"
        },
        "LoadBalancerPort": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "AvailabilityZone": {
          "type": "string"
        },
        "Instance": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Port": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader": {
      "additionalProperties": false,
      "properties": {
        "DestinationAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DestinationPortRanges": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange"
          },
          "type": "array"
        },
        "Protocol": {
          "type": "string"
        },
        "SourceAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourcePortRanges": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute": {
      "additionalProperties": false,
      "properties": {
        "NatGatewayId": {
          "type": "string"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "Origin": {
          "type": "string"
        },
        "State": {
          "type": "string"
        },
        "TransitGatewayId": {
          "type": "string"
        },
        "VpcPeeringConnectionId": {
          "type": "string"
        },
        "destinationCidr": {
          "type": "string"
        },
        "destinationPrefixListId": {
          "type": "string"
        },
        "egressOnlyInternetGatewayId": {
          "type": "string"
        },
        "gatewayId": {
          "type": "string"
        },
        "instanceId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        },
        "Direction": {
          "type": "string"
        },
        "PortRange": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange"
        },
        "PrefixListId": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "SecurityGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.Explanation": {
      "additionalProperties": false,
      "properties": {
        "Acl": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "AclRule": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule"
        },
        "Address": {
          "type": "string"
        },
        "Addresses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AttachedTo": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "AvailabilityZones": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Cidrs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ClassicLoadBalancerListener": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener"
        },
        "Component": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "ComponentAccount": {
          "type": "string"
        },
        "ComponentRegion": {
          "type": "string"
        },
        "CustomerGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "DestinationVpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Direction": {
          "type": "string"
        },
        "ElasticLoadBalancerListener": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "ExplanationCode": {
          "type": "string"
        },
        "IngressRouteTable": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "InternetGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "LoadBalancerArn": {
          "type": "string"
        },
        "LoadBalancerListenerPort": {
          "type": "number"
        },
        "LoadBalancerTarget": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget"
        },
        "LoadBalancerTargetGroup": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "LoadBalancerTargetGroups": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
          },
          "type": "array"
        },
        "LoadBalancerTargetPort": {
          "type": "number"
        },
        "MissingComponent": {
          "type": "string"
        },
        "NatGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "NetworkInterface": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "PacketField": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "PortRanges": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange"
          },
          "type": "array"
        },
        "PrefixList": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Protocols": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RouteTable": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "RouteTableRoute": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute"
        },
        "SecurityGroup": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "SecurityGroupRule": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule"
        },
        "SecurityGroups": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
          },
          "type": "array"
        },
        "SourceVpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "State": {
          "type": "string"
        },
        "Subnet": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "SubnetRouteTable": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGatewayAttachment": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGatewayRouteTable": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGatewayRouteTableRoute": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute"
        },
        "Vpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "VpcPeeringConnection": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "VpnConnection": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "VpnGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "vpcEndpoint": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.PathComponent": {
      "additionalProperties": false,
      "properties": {
        "AclRule": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule"
        },
        "AdditionalDetails": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail"
          },
          "type": "array"
        },
        "Component": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "DestinationVpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "ElasticLoadBalancerListener": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Explanations": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.Explanation"
          },
          "type": "array"
        },
        "InboundHeader": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader"
        },
        "OutboundHeader": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader"
        },
        "RouteTableRoute": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute"
        },
        "SecurityGroupRule": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule"
        },
        "SequenceNumber": {
          "type": "number"
        },
        "SourceVpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "Subnet": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGateway": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        },
        "TransitGatewayRouteTableRoute": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute"
        },
        "Vpc": {
          "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.PortRange": {
      "additionalProperties": false,
      "properties": {
        "From": {
          "type": "number"
        },
        "To": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute": {
      "additionalProperties": false,
      "properties": {
        "AttachmentId": {
          "type": "string"
        },
        "DestinationCidr": {
          "type": "string"
        },
        "PrefixListId": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "RouteOrigin": {
          "type": "string"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::NetworkInsightsPath": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Destination": {
              "type": "string"
            },
            "DestinationIp": {
              "type": "string"
            },
            "DestinationPort": {
              "type": "number"
            },
            "Protocol": {
              "type": "string"
            },
            "Source": {
              "type": "string"
            },
            "SourceIp": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Destination", "Protocol", "Source"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInsightsPath"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GroupSet": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "InterfaceType": {
              "type": "string"
            },
            "Ipv6AddressCount": {
              "type": "number"
            },
            "Ipv6Addresses": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address"
              },
              "type": "array"
            },
            "PrivateIpAddress": {
              "type": "string"
            },
            "PrivateIpAddresses": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification"
              },
              "type": "array"
            },
            "SecondaryPrivateIpAddressCount": {
              "type": "number"
            },
            "SourceDestCheck": {
              "type": "boolean"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInterface"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkInterface.InstanceIpv6Address": {
      "additionalProperties": false,
      "properties": {
        "Ipv6Address": {
          "type": "string"
        }
      },
      "required": ["Ipv6Address"],
      "type": "object"
    },
    "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": {
      "additionalProperties": false,
      "properties": {
        "Primary": {
          "type": "boolean"
        },
        "PrivateIpAddress": {
          "type": "string"
        }
      },
      "required": ["Primary", "PrivateIpAddress"],
      "type": "object"
    },
    "AWS::EC2::NetworkInterfaceAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeleteOnTermination": {
              "type": "boolean"
            },
            "DeviceIndex": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            }
          },
          "required": ["DeviceIndex", "InstanceId", "NetworkInterfaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInterfaceAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkInterfacePermission": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AwsAccountId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "Permission": {
              "type": "string"
            }
          },
          "required": ["AwsAccountId", "NetworkInterfaceId", "Permission"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkInterfacePermission"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::NetworkPerformanceMetricSubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Destination": {
              "type": "string"
            },
            "Metric": {
              "type": "string"
            },
            "Source": {
              "type": "string"
            },
            "Statistic": {
              "type": "string"
            }
          },
          "required": ["Destination", "Metric", "Source", "Statistic"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::NetworkPerformanceMetricSubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::PlacementGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PartitionCount": {
              "type": "number"
            },
            "SpreadLevel": {
              "type": "string"
            },
            "Strategy": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::PlacementGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::PrefixList": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddressFamily": {
              "type": "string"
            },
            "Entries": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::PrefixList.Entry"
              },
              "type": "array"
            },
            "MaxEntries": {
              "type": "number"
            },
            "PrefixListName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AddressFamily", "MaxEntries", "PrefixListName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::PrefixList"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::PrefixList.Entry": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        }
      },
      "required": ["Cidr"],
      "type": "object"
    },
    "AWS::EC2::Route": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CarrierGatewayId": {
              "type": "string"
            },
            "DestinationCidrBlock": {
              "type": "string"
            },
            "DestinationIpv6CidrBlock": {
              "type": "string"
            },
            "EgressOnlyInternetGatewayId": {
              "type": "string"
            },
            "GatewayId": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "LocalGatewayId": {
              "type": "string"
            },
            "NatGatewayId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "RouteTableId": {
              "type": "string"
            },
            "TransitGatewayId": {
              "type": "string"
            },
            "VpcEndpointId": {
              "type": "string"
            },
            "VpcPeeringConnectionId": {
              "type": "string"
            }
          },
          "required": ["RouteTableId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::Route"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::RouteTable": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::RouteTable"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupDescription": {
              "type": "string"
            },
            "GroupName": {
              "type": "string"
            },
            "SecurityGroupEgress": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress"
              },
              "type": "array"
            },
            "SecurityGroupIngress": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["GroupDescription"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SecurityGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SecurityGroup.Egress": {
      "additionalProperties": false,
      "properties": {
        "CidrIp": {
          "type": "string"
        },
        "CidrIpv6": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "DestinationPrefixListId": {
          "type": "string"
        },
        "DestinationSecurityGroupId": {
          "type": "string"
        },
        "FromPort": {
          "type": "number"
        },
        "IpProtocol": {
          "type": "string"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["IpProtocol"],
      "type": "object"
    },
    "AWS::EC2::SecurityGroup.Ingress": {
      "additionalProperties": false,
      "properties": {
        "CidrIp": {
          "type": "string"
        },
        "CidrIpv6": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "FromPort": {
          "type": "number"
        },
        "IpProtocol": {
          "type": "string"
        },
        "SourcePrefixListId": {
          "type": "string"
        },
        "SourceSecurityGroupId": {
          "type": "string"
        },
        "SourceSecurityGroupName": {
          "type": "string"
        },
        "SourceSecurityGroupOwnerId": {
          "type": "string"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["IpProtocol"],
      "type": "object"
    },
    "AWS::EC2::SecurityGroupEgress": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CidrIp": {
              "type": "string"
            },
            "CidrIpv6": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DestinationPrefixListId": {
              "type": "string"
            },
            "DestinationSecurityGroupId": {
              "type": "string"
            },
            "FromPort": {
              "type": "number"
            },
            "GroupId": {
              "type": "string"
            },
            "IpProtocol": {
              "type": "string"
            },
            "ToPort": {
              "type": "number"
            }
          },
          "required": ["GroupId", "IpProtocol"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SecurityGroupEgress"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SecurityGroupIngress": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CidrIp": {
              "type": "string"
            },
            "CidrIpv6": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "FromPort": {
              "type": "number"
            },
            "GroupId": {
              "type": "string"
            },
            "GroupName": {
              "type": "string"
            },
            "IpProtocol": {
              "type": "string"
            },
            "SourcePrefixListId": {
              "type": "string"
            },
            "SourceSecurityGroupId": {
              "type": "string"
            },
            "SourceSecurityGroupName": {
              "type": "string"
            },
            "SourceSecurityGroupOwnerId": {
              "type": "string"
            },
            "ToPort": {
              "type": "number"
            }
          },
          "required": ["IpProtocol"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SecurityGroupIngress"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SpotFleetRequestConfigData": {
              "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData"
            }
          },
          "required": ["SpotFleetRequestConfigData"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SpotFleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.AcceleratorCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.BlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice"
        },
        "NoDevice": {
          "type": "string"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "required": ["DeviceName"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.ClassicLoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": {
      "additionalProperties": false,
      "properties": {
        "ClassicLoadBalancers": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer"
          },
          "type": "array"
        }
      },
      "required": ["ClassicLoadBalancers"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.EbsBlockDevice": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "SnapshotId": {
          "type": "string"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Version"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.GroupIdentifier": {
      "additionalProperties": false,
      "properties": {
        "GroupId": {
          "type": "string"
        }
      },
      "required": ["GroupId"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.InstanceIpv6Address": {
      "additionalProperties": false,
      "properties": {
        "Ipv6Address": {
          "type": "string"
        }
      },
      "required": ["Ipv6Address"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": {
      "additionalProperties": false,
      "properties": {
        "AssociatePublicIpAddress": {
          "type": "boolean"
        },
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Description": {
          "type": "string"
        },
        "DeviceIndex": {
          "type": "number"
        },
        "Groups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Ipv6AddressCount": {
          "type": "number"
        },
        "Ipv6Addresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address"
          },
          "type": "array"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "PrivateIpAddresses": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification"
          },
          "type": "array"
        },
        "SecondaryPrivateIpAddressCount": {
          "type": "number"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.InstanceRequirementsRequest": {
      "additionalProperties": false,
      "properties": {
        "AcceleratorCount": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest"
        },
        "AcceleratorManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AcceleratorTotalMemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest"
        },
        "AcceleratorTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BareMetal": {
          "type": "string"
        },
        "BaselineEbsBandwidthMbps": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest"
        },
        "BurstablePerformance": {
          "type": "string"
        },
        "CpuManufacturers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludedInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InstanceGenerations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LocalStorage": {
          "type": "string"
        },
        "LocalStorageTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MemoryGiBPerVCpu": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest"
        },
        "MemoryMiB": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest"
        },
        "NetworkBandwidthGbps": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest"
        },
        "NetworkInterfaceCount": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest"
        },
        "OnDemandMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "RequireHibernateSupport": {
          "type": "boolean"
        },
        "SpotMaxPricePercentageOverLowestPrice": {
          "type": "number"
        },
        "TotalLocalStorageGB": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest"
        },
        "VCpuCount": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.LaunchTemplateConfig": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateSpecification": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification"
        },
        "Overrides": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.LaunchTemplateOverrides": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "InstanceRequirements": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest"
        },
        "InstanceType": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "SpotPrice": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.LoadBalancersConfig": {
      "additionalProperties": false,
      "properties": {
        "ClassicLoadBalancersConfig": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig"
        },
        "TargetGroupsConfig": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.MemoryMiBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": {
      "additionalProperties": false,
      "properties": {
        "Primary": {
          "type": "boolean"
        },
        "PrivateIpAddress": {
          "type": "string"
        }
      },
      "required": ["PrivateIpAddress"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotCapacityRebalance": {
      "additionalProperties": false,
      "properties": {
        "ReplacementStrategy": {
          "type": "string"
        },
        "TerminationDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": {
      "additionalProperties": false,
      "properties": {
        "BlockDeviceMappings": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping"
          },
          "type": "array"
        },
        "EbsOptimized": {
          "type": "boolean"
        },
        "IamInstanceProfile": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification"
        },
        "ImageId": {
          "type": "string"
        },
        "InstanceRequirements": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest"
        },
        "InstanceType": {
          "type": "string"
        },
        "KernelId": {
          "type": "string"
        },
        "KeyName": {
          "type": "string"
        },
        "Monitoring": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring"
        },
        "NetworkInterfaces": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification"
          },
          "type": "array"
        },
        "Placement": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement"
        },
        "RamdiskId": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier"
          },
          "type": "array"
        },
        "SpotPrice": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        },
        "TagSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification"
          },
          "type": "array"
        },
        "UserData": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "number"
        }
      },
      "required": ["ImageId"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotFleetMonitoring": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "Context": {
          "type": "string"
        },
        "ExcessCapacityTerminationPolicy": {
          "type": "string"
        },
        "IamFleetRole": {
          "type": "string"
        },
        "InstanceInterruptionBehavior": {
          "type": "string"
        },
        "InstancePoolsToUseCount": {
          "type": "number"
        },
        "LaunchSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification"
          },
          "type": "array"
        },
        "LaunchTemplateConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig"
          },
          "type": "array"
        },
        "LoadBalancersConfig": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig"
        },
        "OnDemandAllocationStrategy": {
          "type": "string"
        },
        "OnDemandMaxTotalPrice": {
          "type": "string"
        },
        "OnDemandTargetCapacity": {
          "type": "number"
        },
        "ReplaceUnhealthyInstances": {
          "type": "boolean"
        },
        "SpotMaintenanceStrategies": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotMaintenanceStrategies"
        },
        "SpotMaxTotalPrice": {
          "type": "string"
        },
        "SpotPrice": {
          "type": "string"
        },
        "TagSpecifications": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification"
          },
          "type": "array"
        },
        "TargetCapacity": {
          "type": "number"
        },
        "TargetCapacityUnitType": {
          "type": "string"
        },
        "TerminateInstancesWithExpiration": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        },
        "ValidFrom": {
          "type": "string"
        },
        "ValidUntil": {
          "type": "string"
        }
      },
      "required": ["IamFleetRole", "TargetCapacity"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotFleetTagSpecification": {
      "additionalProperties": false,
      "properties": {
        "ResourceType": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotMaintenanceStrategies": {
      "additionalProperties": false,
      "properties": {
        "CapacityRebalance": {
          "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotCapacityRebalance"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.SpotPlacement": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "GroupName": {
          "type": "string"
        },
        "Tenancy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.TargetGroup": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.TargetGroupsConfig": {
      "additionalProperties": false,
      "properties": {
        "TargetGroups": {
          "items": {
            "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup"
          },
          "type": "array"
        }
      },
      "required": ["TargetGroups"],
      "type": "object"
    },
    "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SpotFleet.VCpuCountRangeRequest": {
      "additionalProperties": false,
      "properties": {
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EC2::Subnet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssignIpv6AddressOnCreation": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "AvailabilityZoneId": {
              "type": "string"
            },
            "CidrBlock": {
              "type": "string"
            },
            "EnableDns64": {
              "type": "boolean"
            },
            "Ipv6CidrBlock": {
              "type": "string"
            },
            "Ipv6Native": {
              "type": "boolean"
            },
            "MapPublicIpOnLaunch": {
              "type": "boolean"
            },
            "OutpostArn": {
              "type": "string"
            },
            "PrivateDnsNameOptionsOnLaunch": {
              "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::Subnet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": {
      "additionalProperties": false,
      "properties": {
        "EnableResourceNameDnsAAAARecord": {
          "type": "boolean"
        },
        "EnableResourceNameDnsARecord": {
          "type": "boolean"
        },
        "HostnameType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::SubnetCidrBlock": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Ipv6CidrBlock": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["Ipv6CidrBlock", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SubnetCidrBlock"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SubnetNetworkAclAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "NetworkAclId": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["NetworkAclId", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SubnetNetworkAclAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::SubnetRouteTableAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RouteTableId": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["RouteTableId", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::SubnetRouteTableAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TrafficMirrorFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "NetworkServices": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TrafficMirrorFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::TrafficMirrorFilterRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DestinationCidrBlock": {
              "type": "string"
            },
            "DestinationPortRange": {
              "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange"
            },
            "Protocol": {
              "type": "number"
            },
            "RuleAction": {
              "type": "string"
            },
            "RuleNumber": {
              "type": "number"
            },
            "SourceCidrBlock": {
              "type": "string"
            },
            "SourcePortRange": {
              "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange"
            },
            "TrafficDirection": {
              "type": "string"
            },
            "TrafficMirrorFilterId": {
              "type": "string"
            }
          },
          "required": [
            "DestinationCidrBlock",
            "RuleAction",
            "RuleNumber",
            "SourceCidrBlock",
            "TrafficDirection",
            "TrafficMirrorFilterId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TrafficMirrorFilterRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange": {
      "additionalProperties": false,
      "properties": {
        "FromPort": {
          "type": "number"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["FromPort", "ToPort"],
      "type": "object"
    },
    "AWS::EC2::TrafficMirrorSession": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "PacketLength": {
              "type": "number"
            },
            "SessionNumber": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TrafficMirrorFilterId": {
              "type": "string"
            },
            "TrafficMirrorTargetId": {
              "type": "string"
            },
            "VirtualNetworkId": {
              "type": "number"
            }
          },
          "required": [
            "NetworkInterfaceId",
            "SessionNumber",
            "TrafficMirrorFilterId",
            "TrafficMirrorTargetId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TrafficMirrorSession"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TrafficMirrorTarget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GatewayLoadBalancerEndpointId": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "NetworkLoadBalancerArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TrafficMirrorTarget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::TransitGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmazonSideAsn": {
              "type": "number"
            },
            "AssociationDefaultRouteTableId": {
              "type": "string"
            },
            "AutoAcceptSharedAttachments": {
              "type": "string"
            },
            "DefaultRouteTableAssociation": {
              "type": "string"
            },
            "DefaultRouteTablePropagation": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DnsSupport": {
              "type": "string"
            },
            "MulticastSupport": {
              "type": "string"
            },
            "PropagationDefaultRouteTableId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayCidrBlocks": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpnEcmpSupport": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Options": {
              "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment.Options"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["SubnetIds", "TransitGatewayId", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayAttachment.Options": {
      "additionalProperties": false,
      "properties": {
        "ApplianceModeSupport": {
          "type": "string"
        },
        "DnsSupport": {
          "type": "string"
        },
        "Ipv6Support": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::TransitGatewayConnect": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Options": {
              "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransportTransitGatewayAttachmentId": {
              "type": "string"
            }
          },
          "required": ["Options", "TransportTransitGatewayAttachmentId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayConnect"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": {
      "additionalProperties": false,
      "properties": {
        "Protocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::TransitGatewayMulticastDomain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Options": {
              "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain.Options"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            }
          },
          "required": ["TransitGatewayId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayMulticastDomain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayMulticastDomain.Options": {
      "additionalProperties": false,
      "properties": {
        "AutoAcceptSharedAssociations": {
          "type": "string"
        },
        "Igmpv2Support": {
          "type": "string"
        },
        "StaticSourcesSupport": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::TransitGatewayMulticastDomainAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SubnetId": {
              "type": "string"
            },
            "TransitGatewayAttachmentId": {
              "type": "string"
            },
            "TransitGatewayMulticastDomainId": {
              "type": "string"
            }
          },
          "required": [
            "SubnetId",
            "TransitGatewayAttachmentId",
            "TransitGatewayMulticastDomainId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayMulticastDomainAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayMulticastGroupMember": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupIpAddress": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "TransitGatewayMulticastDomainId": {
              "type": "string"
            }
          },
          "required": [
            "GroupIpAddress",
            "NetworkInterfaceId",
            "TransitGatewayMulticastDomainId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayMulticastGroupMember"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayMulticastGroupSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupIpAddress": {
              "type": "string"
            },
            "NetworkInterfaceId": {
              "type": "string"
            },
            "TransitGatewayMulticastDomainId": {
              "type": "string"
            }
          },
          "required": [
            "GroupIpAddress",
            "NetworkInterfaceId",
            "TransitGatewayMulticastDomainId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayMulticastGroupSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayPeeringAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PeerAccountId": {
              "type": "string"
            },
            "PeerRegion": {
              "type": "string"
            },
            "PeerTransitGatewayId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            }
          },
          "required": [
            "PeerAccountId",
            "PeerRegion",
            "PeerTransitGatewayId",
            "TransitGatewayId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayPeeringAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayPeeringAttachment.PeeringAttachmentStatus": {
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::TransitGatewayRoute": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Blackhole": {
              "type": "boolean"
            },
            "DestinationCidrBlock": {
              "type": "string"
            },
            "TransitGatewayAttachmentId": {
              "type": "string"
            },
            "TransitGatewayRouteTableId": {
              "type": "string"
            }
          },
          "required": ["TransitGatewayRouteTableId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayRoute"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayRouteTable": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            }
          },
          "required": ["TransitGatewayId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayRouteTable"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayRouteTableAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "TransitGatewayAttachmentId": {
              "type": "string"
            },
            "TransitGatewayRouteTableId": {
              "type": "string"
            }
          },
          "required": [
            "TransitGatewayAttachmentId",
            "TransitGatewayRouteTableId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayRouteTableAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayRouteTablePropagation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "TransitGatewayAttachmentId": {
              "type": "string"
            },
            "TransitGatewayRouteTableId": {
              "type": "string"
            }
          },
          "required": [
            "TransitGatewayAttachmentId",
            "TransitGatewayRouteTableId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayRouteTablePropagation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayVpcAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddSubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Options": {
              "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment.Options"
            },
            "RemoveSubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["SubnetIds", "TransitGatewayId", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::TransitGatewayVpcAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::TransitGatewayVpcAttachment.Options": {
      "additionalProperties": false,
      "properties": {
        "ApplianceModeSupport": {
          "type": "string"
        },
        "DnsSupport": {
          "type": "string"
        },
        "Ipv6Support": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::VPC": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CidrBlock": {
              "type": "string"
            },
            "EnableDnsHostnames": {
              "type": "boolean"
            },
            "EnableDnsSupport": {
              "type": "boolean"
            },
            "InstanceTenancy": {
              "type": "string"
            },
            "Ipv4IpamPoolId": {
              "type": "string"
            },
            "Ipv4NetmaskLength": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPC"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::VPCCidrBlock": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmazonProvidedIpv6CidrBlock": {
              "type": "boolean"
            },
            "CidrBlock": {
              "type": "string"
            },
            "Ipv4IpamPoolId": {
              "type": "string"
            },
            "Ipv4NetmaskLength": {
              "type": "number"
            },
            "Ipv6CidrBlock": {
              "type": "string"
            },
            "Ipv6IpamPoolId": {
              "type": "string"
            },
            "Ipv6NetmaskLength": {
              "type": "number"
            },
            "Ipv6Pool": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCCidrBlock"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCDHCPOptionsAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DhcpOptionsId": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["DhcpOptionsId", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCDHCPOptionsAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyDocument": {
              "type": "object"
            },
            "PrivateDnsEnabled": {
              "type": "boolean"
            },
            "RouteTableIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ServiceName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcEndpointType": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["ServiceName", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCEndpointConnectionNotification": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionEvents": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ConnectionNotificationArn": {
              "type": "string"
            },
            "ServiceId": {
              "type": "string"
            },
            "VPCEndpointId": {
              "type": "string"
            }
          },
          "required": ["ConnectionEvents", "ConnectionNotificationArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCEndpointConnectionNotification"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCEndpointService": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptanceRequired": {
              "type": "boolean"
            },
            "ContributorInsightsEnabled": {
              "type": "boolean"
            },
            "GatewayLoadBalancerArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "NetworkLoadBalancerArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PayerResponsibility": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCEndpointService"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EC2::VPCEndpointServicePermissions": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowedPrincipals": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ServiceId": {
              "type": "string"
            }
          },
          "required": ["ServiceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCEndpointServicePermissions"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCGatewayAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InternetGatewayId": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            },
            "VpnGatewayId": {
              "type": "string"
            }
          },
          "required": ["VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCGatewayAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPCPeeringConnection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PeerOwnerId": {
              "type": "string"
            },
            "PeerRegion": {
              "type": "string"
            },
            "PeerRoleArn": {
              "type": "string"
            },
            "PeerVpcId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["PeerVpcId", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPCPeeringConnection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPNConnection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomerGatewayId": {
              "type": "string"
            },
            "StaticRoutesOnly": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitGatewayId": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "VpnGatewayId": {
              "type": "string"
            },
            "VpnTunnelOptionsSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification"
              },
              "type": "array"
            }
          },
          "required": ["CustomerGatewayId", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPNConnection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": {
      "additionalProperties": false,
      "properties": {
        "PreSharedKey": {
          "type": "string"
        },
        "TunnelInsideCidr": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EC2::VPNConnectionRoute": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationCidrBlock": {
              "type": "string"
            },
            "VpnConnectionId": {
              "type": "string"
            }
          },
          "required": ["DestinationCidrBlock", "VpnConnectionId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPNConnectionRoute"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPNGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmazonSideAsn": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPNGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VPNGatewayRoutePropagation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RouteTableIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpnGatewayId": {
              "type": "string"
            }
          },
          "required": ["RouteTableIds", "VpnGatewayId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VPNGatewayRoutePropagation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::Volume": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoEnableIO": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "Encrypted": {
              "type": "boolean"
            },
            "Iops": {
              "type": "number"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MultiAttachEnabled": {
              "type": "boolean"
            },
            "OutpostArn": {
              "type": "string"
            },
            "Size": {
              "type": "number"
            },
            "SnapshotId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Throughput": {
              "type": "number"
            },
            "VolumeType": {
              "type": "string"
            }
          },
          "required": ["AvailabilityZone"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::Volume"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EC2::VolumeAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Device": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "VolumeId": {
              "type": "string"
            }
          },
          "required": ["Device", "InstanceId", "VolumeId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EC2::VolumeAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECR::PublicRepository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RepositoryCatalogData": {
              "$ref": "#/definitions/AWS::ECR::PublicRepository.RepositoryCatalogData"
            },
            "RepositoryName": {
              "type": "string"
            },
            "RepositoryPolicyText": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECR::PublicRepository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECR::PublicRepository.RepositoryCatalogData": {
      "additionalProperties": false,
      "properties": {
        "AboutText": {
          "type": "string"
        },
        "Architectures": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OperatingSystems": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RepositoryDescription": {
          "type": "string"
        },
        "UsageText": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECR::PullThroughCacheRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EcrRepositoryPrefix": {
              "type": "string"
            },
            "UpstreamRegistryUrl": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECR::PullThroughCacheRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECR::RegistryPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyText": {
              "type": "object"
            }
          },
          "required": ["PolicyText"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECR::RegistryPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECR::ReplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ReplicationConfiguration": {
              "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration"
            }
          },
          "required": ["ReplicationConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECR::ReplicationConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::ECR::ReplicationConfiguration.ReplicationDestination": {
      "additionalProperties": false,
      "properties": {
        "Region": {
          "type": "string"
        },
        "RegistryId": {
          "type": "string"
        }
      },
      "required": ["Region", "RegistryId"],
      "type": "object"
    },
    "AWS::ECR::ReplicationConfiguration.ReplicationRule": {
      "additionalProperties": false,
      "properties": {
        "Destinations": {
          "items": {
            "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination"
          },
          "type": "array"
        },
        "RepositoryFilters": {
          "items": {
            "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter"
          },
          "type": "array"
        }
      },
      "required": ["Destinations"],
      "type": "object"
    },
    "AWS::ECR::ReplicationConfiguration.RepositoryFilter": {
      "additionalProperties": false,
      "properties": {
        "Filter": {
          "type": "string"
        },
        "FilterType": {
          "type": "string"
        }
      },
      "required": ["Filter", "FilterType"],
      "type": "object"
    },
    "AWS::ECR::Repository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EncryptionConfiguration": {
              "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration"
            },
            "ImageScanningConfiguration": {
              "$ref": "#/definitions/AWS::ECR::Repository.ImageScanningConfiguration"
            },
            "ImageTagMutability": {
              "type": "string"
            },
            "LifecyclePolicy": {
              "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy"
            },
            "RepositoryName": {
              "type": "string"
            },
            "RepositoryPolicyText": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECR::Repository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECR::Repository.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EncryptionType": {
          "type": "string"
        },
        "KmsKey": {
          "type": "string"
        }
      },
      "required": ["EncryptionType"],
      "type": "object"
    },
    "AWS::ECR::Repository.ImageScanningConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ScanOnPush": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ECR::Repository.LifecyclePolicy": {
      "additionalProperties": false,
      "properties": {
        "LifecyclePolicyText": {
          "type": "string"
        },
        "RegistryId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::CapacityProvider": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingGroupProvider": {
              "$ref": "#/definitions/AWS::ECS::CapacityProvider.AutoScalingGroupProvider"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AutoScalingGroupProvider"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::CapacityProvider"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECS::CapacityProvider.AutoScalingGroupProvider": {
      "additionalProperties": false,
      "properties": {
        "AutoScalingGroupArn": {
          "type": "string"
        },
        "ManagedScaling": {
          "$ref": "#/definitions/AWS::ECS::CapacityProvider.ManagedScaling"
        },
        "ManagedTerminationProtection": {
          "type": "string"
        }
      },
      "required": ["AutoScalingGroupArn"],
      "type": "object"
    },
    "AWS::ECS::CapacityProvider.ManagedScaling": {
      "additionalProperties": false,
      "properties": {
        "InstanceWarmupPeriod": {
          "type": "number"
        },
        "MaximumScalingStepSize": {
          "type": "number"
        },
        "MinimumScalingStepSize": {
          "type": "number"
        },
        "Status": {
          "type": "string"
        },
        "TargetCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CapacityProviders": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClusterName": {
              "type": "string"
            },
            "ClusterSettings": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Cluster.ClusterSettings"
              },
              "type": "array"
            },
            "Configuration": {
              "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration"
            },
            "DefaultCapacityProviderStrategy": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem"
              },
              "type": "array"
            },
            "ServiceConnectDefaults": {
              "$ref": "#/definitions/AWS::ECS::Cluster.ServiceConnectDefaults"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::Cluster.CapacityProviderStrategyItem": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster.ClusterConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ExecuteCommandConfiguration": {
          "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster.ClusterSettings": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster.ExecuteCommandConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "LogConfiguration": {
          "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration"
        },
        "Logging": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchEncryptionEnabled": {
          "type": "boolean"
        },
        "CloudWatchLogGroupName": {
          "type": "string"
        },
        "S3BucketName": {
          "type": "string"
        },
        "S3EncryptionEnabled": {
          "type": "boolean"
        },
        "S3KeyPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Cluster.ServiceConnectDefaults": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::ClusterCapacityProviderAssociations": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CapacityProviders": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Cluster": {
              "type": "string"
            },
            "DefaultCapacityProviderStrategy": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy"
              },
              "type": "array"
            }
          },
          "required": [
            "CapacityProviders",
            "Cluster",
            "DefaultCapacityProviderStrategy"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::ClusterCapacityProviderAssociations"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["CapacityProvider"],
      "type": "object"
    },
    "AWS::ECS::PrimaryTaskSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Cluster": {
              "type": "string"
            },
            "Service": {
              "type": "string"
            },
            "TaskSetId": {
              "type": "string"
            }
          },
          "required": ["Cluster", "Service", "TaskSetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::PrimaryTaskSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECS::Service": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CapacityProviderStrategy": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Service.CapacityProviderStrategyItem"
              },
              "type": "array"
            },
            "Cluster": {
              "type": "string"
            },
            "DeploymentConfiguration": {
              "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration"
            },
            "DeploymentController": {
              "$ref": "#/definitions/AWS::ECS::Service.DeploymentController"
            },
            "DesiredCount": {
              "type": "number"
            },
            "EnableECSManagedTags": {
              "type": "boolean"
            },
            "EnableExecuteCommand": {
              "type": "boolean"
            },
            "HealthCheckGracePeriodSeconds": {
              "type": "number"
            },
            "LaunchType": {
              "type": "string"
            },
            "LoadBalancers": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer"
              },
              "type": "array"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration"
            },
            "PlacementConstraints": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint"
              },
              "type": "array"
            },
            "PlacementStrategies": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy"
              },
              "type": "array"
            },
            "PlatformVersion": {
              "type": "string"
            },
            "PropagateTags": {
              "type": "string"
            },
            "Role": {
              "type": "string"
            },
            "SchedulingStrategy": {
              "type": "string"
            },
            "ServiceConnectConfiguration": {
              "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectConfiguration"
            },
            "ServiceName": {
              "type": "string"
            },
            "ServiceRegistries": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TaskDefinition": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::Service"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::Service.AwsVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.CapacityProviderStrategyItem": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.DeploymentAlarms": {
      "additionalProperties": false,
      "properties": {
        "AlarmNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Enable": {
          "type": "boolean"
        },
        "Rollback": {
          "type": "boolean"
        }
      },
      "required": ["AlarmNames", "Enable", "Rollback"],
      "type": "object"
    },
    "AWS::ECS::Service.DeploymentCircuitBreaker": {
      "additionalProperties": false,
      "properties": {
        "Enable": {
          "type": "boolean"
        },
        "Rollback": {
          "type": "boolean"
        }
      },
      "required": ["Enable", "Rollback"],
      "type": "object"
    },
    "AWS::ECS::Service.DeploymentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Alarms": {
          "$ref": "#/definitions/AWS::ECS::Service.DeploymentAlarms"
        },
        "DeploymentCircuitBreaker": {
          "$ref": "#/definitions/AWS::ECS::Service.DeploymentCircuitBreaker"
        },
        "MaximumPercent": {
          "type": "number"
        },
        "MinimumHealthyPercent": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.DeploymentController": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.LoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "LoadBalancerName": {
          "type": "string"
        },
        "TargetGroupArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.LogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogDriver": {
          "type": "string"
        },
        "Options": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "SecretOptions": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::Service.Secret"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AwsvpcConfiguration": {
          "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ECS::Service.PlacementConstraint": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::Service.PlacementStrategy": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::Service.Secret": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ValueFrom": {
          "type": "string"
        }
      },
      "required": ["Name", "ValueFrom"],
      "type": "object"
    },
    "AWS::ECS::Service.ServiceConnectClientAlias": {
      "additionalProperties": false,
      "properties": {
        "DnsName": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Port"],
      "type": "object"
    },
    "AWS::ECS::Service.ServiceConnectConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "LogConfiguration": {
          "$ref": "#/definitions/AWS::ECS::Service.LogConfiguration"
        },
        "Namespace": {
          "type": "string"
        },
        "Services": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectService"
          },
          "type": "array"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::ECS::Service.ServiceConnectService": {
      "additionalProperties": false,
      "properties": {
        "ClientAliases": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectClientAlias"
          },
          "type": "array"
        },
        "DiscoveryName": {
          "type": "string"
        },
        "IngressPortOverride": {
          "type": "number"
        },
        "PortName": {
          "type": "string"
        }
      },
      "required": ["PortName"],
      "type": "object"
    },
    "AWS::ECS::Service.ServiceRegistry": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "Port": {
          "type": "number"
        },
        "RegistryArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition"
              },
              "type": "array"
            },
            "Cpu": {
              "type": "string"
            },
            "EphemeralStorage": {
              "$ref": "#/definitions/AWS::ECS::TaskDefinition.EphemeralStorage"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "InferenceAccelerators": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskDefinition.InferenceAccelerator"
              },
              "type": "array"
            },
            "IpcMode": {
              "type": "string"
            },
            "Memory": {
              "type": "string"
            },
            "NetworkMode": {
              "type": "string"
            },
            "PidMode": {
              "type": "string"
            },
            "PlacementConstraints": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint"
              },
              "type": "array"
            },
            "ProxyConfiguration": {
              "$ref": "#/definitions/AWS::ECS::TaskDefinition.ProxyConfiguration"
            },
            "RequiresCompatibilities": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RuntimePlatform": {
              "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TaskRoleArn": {
              "type": "string"
            },
            "Volumes": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::TaskDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.AuthorizationConfig": {
      "additionalProperties": false,
      "properties": {
        "AccessPointId": {
          "type": "string"
        },
        "IAM": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.ContainerDefinition": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Cpu": {
          "type": "number"
        },
        "DependsOn": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDependency"
          },
          "type": "array"
        },
        "DisableNetworking": {
          "type": "boolean"
        },
        "DnsSearchDomains": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DnsServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DockerLabels": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "DockerSecurityOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EntryPoint": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Environment": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair"
          },
          "type": "array"
        },
        "EnvironmentFiles": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.EnvironmentFile"
          },
          "type": "array"
        },
        "Essential": {
          "type": "boolean"
        },
        "ExtraHosts": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry"
          },
          "type": "array"
        },
        "FirelensConfiguration": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.FirelensConfiguration"
        },
        "HealthCheck": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck"
        },
        "Hostname": {
          "type": "string"
        },
        "Image": {
          "type": "string"
        },
        "Interactive": {
          "type": "boolean"
        },
        "Links": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LinuxParameters": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters"
        },
        "LogConfiguration": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration"
        },
        "Memory": {
          "type": "number"
        },
        "MemoryReservation": {
          "type": "number"
        },
        "MountPoints": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "PortMappings": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping"
          },
          "type": "array"
        },
        "Privileged": {
          "type": "boolean"
        },
        "PseudoTerminal": {
          "type": "boolean"
        },
        "ReadonlyRootFilesystem": {
          "type": "boolean"
        },
        "RepositoryCredentials": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials"
        },
        "ResourceRequirements": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.ResourceRequirement"
          },
          "type": "array"
        },
        "Secrets": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret"
          },
          "type": "array"
        },
        "StartTimeout": {
          "type": "number"
        },
        "StopTimeout": {
          "type": "number"
        },
        "SystemControls": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.SystemControl"
          },
          "type": "array"
        },
        "Ulimits": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit"
          },
          "type": "array"
        },
        "User": {
          "type": "string"
        },
        "VolumesFrom": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom"
          },
          "type": "array"
        },
        "WorkingDirectory": {
          "type": "string"
        }
      },
      "required": ["Image", "Name"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.ContainerDependency": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "ContainerName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.Device": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "HostPath": {
          "type": "string"
        },
        "Permissions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Autoprovision": {
          "type": "boolean"
        },
        "Driver": {
          "type": "string"
        },
        "DriverOpts": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Labels": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Scope": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.EFSVolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationConfig": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.AuthorizationConfig"
        },
        "FilesystemId": {
          "type": "string"
        },
        "RootDirectory": {
          "type": "string"
        },
        "TransitEncryption": {
          "type": "string"
        },
        "TransitEncryptionPort": {
          "type": "number"
        }
      },
      "required": ["FilesystemId"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.EnvironmentFile": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.EphemeralStorage": {
      "additionalProperties": false,
      "properties": {
        "SizeInGiB": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.FirelensConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Options": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.HealthCheck": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Interval": {
          "type": "number"
        },
        "Retries": {
          "type": "number"
        },
        "StartPeriod": {
          "type": "number"
        },
        "Timeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.HostEntry": {
      "additionalProperties": false,
      "properties": {
        "Hostname": {
          "type": "string"
        },
        "IpAddress": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.HostVolumeProperties": {
      "additionalProperties": false,
      "properties": {
        "SourcePath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.InferenceAccelerator": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "DeviceType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.KernelCapabilities": {
      "additionalProperties": false,
      "properties": {
        "Add": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Drop": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.KeyValuePair": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.LinuxParameters": {
      "additionalProperties": false,
      "properties": {
        "Capabilities": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities"
        },
        "Devices": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device"
          },
          "type": "array"
        },
        "InitProcessEnabled": {
          "type": "boolean"
        },
        "MaxSwap": {
          "type": "number"
        },
        "SharedMemorySize": {
          "type": "number"
        },
        "Swappiness": {
          "type": "number"
        },
        "Tmpfs": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.LogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogDriver": {
          "type": "string"
        },
        "Options": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "SecretOptions": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret"
          },
          "type": "array"
        }
      },
      "required": ["LogDriver"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.MountPoint": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "SourceVolume": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.PortMapping": {
      "additionalProperties": false,
      "properties": {
        "AppProtocol": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "ContainerPortRange": {
          "type": "string"
        },
        "HostPort": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.ProxyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ProxyConfigurationProperties": {
          "items": {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["ContainerName"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.RepositoryCredentials": {
      "additionalProperties": false,
      "properties": {
        "CredentialsParameter": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.ResourceRequirement": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.RuntimePlatform": {
      "additionalProperties": false,
      "properties": {
        "CpuArchitecture": {
          "type": "string"
        },
        "OperatingSystemFamily": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.Secret": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ValueFrom": {
          "type": "string"
        }
      },
      "required": ["Name", "ValueFrom"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.SystemControl": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.Tmpfs": {
      "additionalProperties": false,
      "properties": {
        "ContainerPath": {
          "type": "string"
        },
        "MountOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Size": {
          "type": "number"
        }
      },
      "required": ["Size"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.Ulimit": {
      "additionalProperties": false,
      "properties": {
        "HardLimit": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "SoftLimit": {
          "type": "number"
        }
      },
      "required": ["HardLimit", "Name", "SoftLimit"],
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.Volume": {
      "additionalProperties": false,
      "properties": {
        "DockerVolumeConfiguration": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration"
        },
        "EFSVolumeConfiguration": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.EFSVolumeConfiguration"
        },
        "Host": {
          "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskDefinition.VolumeFrom": {
      "additionalProperties": false,
      "properties": {
        "ReadOnly": {
          "type": "boolean"
        },
        "SourceContainer": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Cluster": {
              "type": "string"
            },
            "ExternalId": {
              "type": "string"
            },
            "LaunchType": {
              "type": "string"
            },
            "LoadBalancers": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskSet.LoadBalancer"
              },
              "type": "array"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::ECS::TaskSet.NetworkConfiguration"
            },
            "PlatformVersion": {
              "type": "string"
            },
            "Scale": {
              "$ref": "#/definitions/AWS::ECS::TaskSet.Scale"
            },
            "Service": {
              "type": "string"
            },
            "ServiceRegistries": {
              "items": {
                "$ref": "#/definitions/AWS::ECS::TaskSet.ServiceRegistry"
              },
              "type": "array"
            },
            "TaskDefinition": {
              "type": "string"
            }
          },
          "required": ["Cluster", "Service", "TaskDefinition"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ECS::TaskSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ECS::TaskSet.AwsVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Subnets"],
      "type": "object"
    },
    "AWS::ECS::TaskSet.LoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "LoadBalancerName": {
          "type": "string"
        },
        "TargetGroupArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskSet.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AwsVpcConfiguration": {
          "$ref": "#/definitions/AWS::ECS::TaskSet.AwsVpcConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskSet.Scale": {
      "additionalProperties": false,
      "properties": {
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ECS::TaskSet.ServiceRegistry": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "Port": {
          "type": "number"
        },
        "RegistryArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EFS::AccessPoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPointTags": {
              "items": {
                "$ref": "#/definitions/AWS::EFS::AccessPoint.AccessPointTag"
              },
              "type": "array"
            },
            "ClientToken": {
              "type": "string"
            },
            "FileSystemId": {
              "type": "string"
            },
            "PosixUser": {
              "$ref": "#/definitions/AWS::EFS::AccessPoint.PosixUser"
            },
            "RootDirectory": {
              "$ref": "#/definitions/AWS::EFS::AccessPoint.RootDirectory"
            }
          },
          "required": ["FileSystemId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EFS::AccessPoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EFS::AccessPoint.AccessPointTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EFS::AccessPoint.CreationInfo": {
      "additionalProperties": false,
      "properties": {
        "OwnerGid": {
          "type": "string"
        },
        "OwnerUid": {
          "type": "string"
        },
        "Permissions": {
          "type": "string"
        }
      },
      "required": ["OwnerGid", "OwnerUid", "Permissions"],
      "type": "object"
    },
    "AWS::EFS::AccessPoint.PosixUser": {
      "additionalProperties": false,
      "properties": {
        "Gid": {
          "type": "string"
        },
        "SecondaryGids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Uid": {
          "type": "string"
        }
      },
      "required": ["Gid", "Uid"],
      "type": "object"
    },
    "AWS::EFS::AccessPoint.RootDirectory": {
      "additionalProperties": false,
      "properties": {
        "CreationInfo": {
          "$ref": "#/definitions/AWS::EFS::AccessPoint.CreationInfo"
        },
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EFS::FileSystem": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZoneName": {
              "type": "string"
            },
            "BackupPolicy": {
              "$ref": "#/definitions/AWS::EFS::FileSystem.BackupPolicy"
            },
            "BypassPolicyLockoutSafetyCheck": {
              "type": "boolean"
            },
            "Encrypted": {
              "type": "boolean"
            },
            "FileSystemPolicy": {
              "type": "object"
            },
            "FileSystemTags": {
              "items": {
                "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag"
              },
              "type": "array"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LifecyclePolicies": {
              "items": {
                "$ref": "#/definitions/AWS::EFS::FileSystem.LifecyclePolicy"
              },
              "type": "array"
            },
            "PerformanceMode": {
              "type": "string"
            },
            "ProvisionedThroughputInMibps": {
              "type": "number"
            },
            "ThroughputMode": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EFS::FileSystem"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EFS::FileSystem.BackupPolicy": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::EFS::FileSystem.ElasticFileSystemTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EFS::FileSystem.LifecyclePolicy": {
      "additionalProperties": false,
      "properties": {
        "TransitionToIA": {
          "type": "string"
        },
        "TransitionToPrimaryStorageClass": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EFS::MountTarget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FileSystemId": {
              "type": "string"
            },
            "IpAddress": {
              "type": "string"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["FileSystemId", "SecurityGroups", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EFS::MountTarget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::Addon": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddonName": {
              "type": "string"
            },
            "AddonVersion": {
              "type": "string"
            },
            "ClusterName": {
              "type": "string"
            },
            "ConfigurationValues": {
              "type": "string"
            },
            "ResolveConflicts": {
              "type": "string"
            },
            "ServiceAccountRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AddonName", "ClusterName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EKS::Addon"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EncryptionConfig": {
              "items": {
                "$ref": "#/definitions/AWS::EKS::Cluster.EncryptionConfig"
              },
              "type": "array"
            },
            "KubernetesNetworkConfig": {
              "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig"
            },
            "Logging": {
              "$ref": "#/definitions/AWS::EKS::Cluster.Logging"
            },
            "Name": {
              "type": "string"
            },
            "OutpostConfig": {
              "$ref": "#/definitions/AWS::EKS::Cluster.OutpostConfig"
            },
            "ResourcesVpcConfig": {
              "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Version": {
              "type": "string"
            }
          },
          "required": ["ResourcesVpcConfig", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EKS::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::Cluster.ClusterLogging": {
      "additionalProperties": false,
      "properties": {
        "EnabledTypes": {
          "items": {
            "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.ControlPlanePlacement": {
      "additionalProperties": false,
      "properties": {
        "GroupName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.EncryptionConfig": {
      "additionalProperties": false,
      "properties": {
        "Provider": {
          "$ref": "#/definitions/AWS::EKS::Cluster.Provider"
        },
        "Resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.KubernetesNetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "IpFamily": {
          "type": "string"
        },
        "ServiceIpv4Cidr": {
          "type": "string"
        },
        "ServiceIpv6Cidr": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.Logging": {
      "additionalProperties": false,
      "properties": {
        "ClusterLogging": {
          "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.LoggingTypeConfig": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.OutpostConfig": {
      "additionalProperties": false,
      "properties": {
        "ControlPlaneInstanceType": {
          "type": "string"
        },
        "ControlPlanePlacement": {
          "$ref": "#/definitions/AWS::EKS::Cluster.ControlPlanePlacement"
        },
        "OutpostArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ControlPlaneInstanceType", "OutpostArns"],
      "type": "object"
    },
    "AWS::EKS::Cluster.Provider": {
      "additionalProperties": false,
      "properties": {
        "KeyArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Cluster.ResourcesVpcConfig": {
      "additionalProperties": false,
      "properties": {
        "EndpointPrivateAccess": {
          "type": "boolean"
        },
        "EndpointPublicAccess": {
          "type": "boolean"
        },
        "PublicAccessCidrs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SubnetIds"],
      "type": "object"
    },
    "AWS::EKS::FargateProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterName": {
              "type": "string"
            },
            "FargateProfileName": {
              "type": "string"
            },
            "PodExecutionRoleArn": {
              "type": "string"
            },
            "Selectors": {
              "items": {
                "$ref": "#/definitions/AWS::EKS::FargateProfile.Selector"
              },
              "type": "array"
            },
            "Subnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ClusterName", "PodExecutionRoleArn", "Selectors"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EKS::FargateProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::FargateProfile.Label": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EKS::FargateProfile.Selector": {
      "additionalProperties": false,
      "properties": {
        "Labels": {
          "items": {
            "$ref": "#/definitions/AWS::EKS::FargateProfile.Label"
          },
          "type": "array"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["Namespace"],
      "type": "object"
    },
    "AWS::EKS::IdentityProviderConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterName": {
              "type": "string"
            },
            "IdentityProviderConfigName": {
              "type": "string"
            },
            "Oidc": {
              "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["ClusterName", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EKS::IdentityProviderConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": {
      "additionalProperties": false,
      "properties": {
        "ClientId": {
          "type": "string"
        },
        "GroupsClaim": {
          "type": "string"
        },
        "GroupsPrefix": {
          "type": "string"
        },
        "IssuerUrl": {
          "type": "string"
        },
        "RequiredClaims": {
          "items": {
            "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim"
          },
          "type": "array"
        },
        "UsernameClaim": {
          "type": "string"
        },
        "UsernamePrefix": {
          "type": "string"
        }
      },
      "required": ["ClientId", "IssuerUrl"],
      "type": "object"
    },
    "AWS::EKS::IdentityProviderConfig.RequiredClaim": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EKS::Nodegroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmiType": {
              "type": "string"
            },
            "CapacityType": {
              "type": "string"
            },
            "ClusterName": {
              "type": "string"
            },
            "DiskSize": {
              "type": "number"
            },
            "ForceUpdateEnabled": {
              "type": "boolean"
            },
            "InstanceTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Labels": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "LaunchTemplate": {
              "$ref": "#/definitions/AWS::EKS::Nodegroup.LaunchTemplateSpecification"
            },
            "NodeRole": {
              "type": "string"
            },
            "NodegroupName": {
              "type": "string"
            },
            "ReleaseVersion": {
              "type": "string"
            },
            "RemoteAccess": {
              "$ref": "#/definitions/AWS::EKS::Nodegroup.RemoteAccess"
            },
            "ScalingConfig": {
              "$ref": "#/definitions/AWS::EKS::Nodegroup.ScalingConfig"
            },
            "Subnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Taints": {
              "items": {
                "$ref": "#/definitions/AWS::EKS::Nodegroup.Taint"
              },
              "type": "array"
            },
            "UpdateConfig": {
              "$ref": "#/definitions/AWS::EKS::Nodegroup.UpdateConfig"
            },
            "Version": {
              "type": "string"
            }
          },
          "required": ["ClusterName", "NodeRole", "Subnets"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EKS::Nodegroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EKS::Nodegroup.LaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Nodegroup.RemoteAccess": {
      "additionalProperties": false,
      "properties": {
        "Ec2SshKey": {
          "type": "string"
        },
        "SourceSecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Ec2SshKey"],
      "type": "object"
    },
    "AWS::EKS::Nodegroup.ScalingConfig": {
      "additionalProperties": false,
      "properties": {
        "DesiredSize": {
          "type": "number"
        },
        "MaxSize": {
          "type": "number"
        },
        "MinSize": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Nodegroup.Taint": {
      "additionalProperties": false,
      "properties": {
        "Effect": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EKS::Nodegroup.UpdateConfig": {
      "additionalProperties": false,
      "properties": {
        "MaxUnavailable": {
          "type": "number"
        },
        "MaxUnavailablePercentage": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalInfo": {
              "type": "object"
            },
            "Applications": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::Cluster.Application"
              },
              "type": "array"
            },
            "AutoScalingRole": {
              "type": "string"
            },
            "AutoTerminationPolicy": {
              "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy"
            },
            "BootstrapActions": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig"
              },
              "type": "array"
            },
            "Configurations": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::Cluster.Configuration"
              },
              "type": "array"
            },
            "CustomAmiId": {
              "type": "string"
            },
            "EbsRootVolumeSize": {
              "type": "number"
            },
            "Instances": {
              "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig"
            },
            "JobFlowRole": {
              "type": "string"
            },
            "KerberosAttributes": {
              "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes"
            },
            "LogEncryptionKmsKeyId": {
              "type": "string"
            },
            "LogUri": {
              "type": "string"
            },
            "ManagedScalingPolicy": {
              "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy"
            },
            "Name": {
              "type": "string"
            },
            "OSReleaseLabel": {
              "type": "string"
            },
            "ReleaseLabel": {
              "type": "string"
            },
            "ScaleDownBehavior": {
              "type": "string"
            },
            "SecurityConfiguration": {
              "type": "string"
            },
            "ServiceRole": {
              "type": "string"
            },
            "StepConcurrencyLevel": {
              "type": "number"
            },
            "Steps": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VisibleToAllUsers": {
              "type": "boolean"
            }
          },
          "required": ["Instances", "JobFlowRole", "Name", "ServiceRole"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::Cluster.Application": {
      "additionalProperties": false,
      "properties": {
        "AdditionalInfo": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.AutoScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints"
        },
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule"
          },
          "type": "array"
        }
      },
      "required": ["Constraints", "Rules"],
      "type": "object"
    },
    "AWS::EMR::Cluster.AutoTerminationPolicy": {
      "additionalProperties": false,
      "properties": {
        "IdleTimeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.BootstrapActionConfig": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ScriptBootstrapAction": {
          "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig"
        }
      },
      "required": ["Name", "ScriptBootstrapAction"],
      "type": "object"
    },
    "AWS::EMR::Cluster.CloudWatchAlarmDefinition": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension"
          },
          "type": "array"
        },
        "EvaluationPeriods": {
          "type": "number"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Period": {
          "type": "number"
        },
        "Statistic": {
          "type": "string"
        },
        "Threshold": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["ComparisonOperator", "MetricName", "Period", "Threshold"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ComputeLimits": {
      "additionalProperties": false,
      "properties": {
        "MaximumCapacityUnits": {
          "type": "number"
        },
        "MaximumCoreCapacityUnits": {
          "type": "number"
        },
        "MaximumOnDemandCapacityUnits": {
          "type": "number"
        },
        "MinimumCapacityUnits": {
          "type": "number"
        },
        "UnitType": {
          "type": "string"
        }
      },
      "required": ["MaximumCapacityUnits", "MinimumCapacityUnits", "UnitType"],
      "type": "object"
    },
    "AWS::EMR::Cluster.Configuration": {
      "additionalProperties": false,
      "properties": {
        "Classification": {
          "type": "string"
        },
        "ConfigurationProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.Configuration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.EbsBlockDeviceConfig": {
      "additionalProperties": false,
      "properties": {
        "VolumeSpecification": {
          "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification"
        },
        "VolumesPerInstance": {
          "type": "number"
        }
      },
      "required": ["VolumeSpecification"],
      "type": "object"
    },
    "AWS::EMR::Cluster.EbsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EbsBlockDeviceConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig"
          },
          "type": "array"
        },
        "EbsOptimized": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.HadoopJarStepConfig": {
      "additionalProperties": false,
      "properties": {
        "Args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Jar": {
          "type": "string"
        },
        "MainClass": {
          "type": "string"
        },
        "StepProperties": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue"
          },
          "type": "array"
        }
      },
      "required": ["Jar"],
      "type": "object"
    },
    "AWS::EMR::Cluster.InstanceFleetConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceTypeConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig"
          },
          "type": "array"
        },
        "LaunchSpecifications": {
          "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications"
        },
        "Name": {
          "type": "string"
        },
        "TargetOnDemandCapacity": {
          "type": "number"
        },
        "TargetSpotCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": {
      "additionalProperties": false,
      "properties": {
        "OnDemandSpecification": {
          "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification"
        },
        "SpotSpecification": {
          "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.InstanceGroupConfig": {
      "additionalProperties": false,
      "properties": {
        "AutoScalingPolicy": {
          "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy"
        },
        "BidPrice": {
          "type": "string"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.Configuration"
          },
          "type": "array"
        },
        "CustomAmiId": {
          "type": "string"
        },
        "EbsConfiguration": {
          "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration"
        },
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "Market": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["InstanceCount", "InstanceType"],
      "type": "object"
    },
    "AWS::EMR::Cluster.InstanceTypeConfig": {
      "additionalProperties": false,
      "properties": {
        "BidPrice": {
          "type": "string"
        },
        "BidPriceAsPercentageOfOnDemandPrice": {
          "type": "number"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.Configuration"
          },
          "type": "array"
        },
        "CustomAmiId": {
          "type": "string"
        },
        "EbsConfiguration": {
          "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration"
        },
        "InstanceType": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "number"
        }
      },
      "required": ["InstanceType"],
      "type": "object"
    },
    "AWS::EMR::Cluster.JobFlowInstancesConfig": {
      "additionalProperties": false,
      "properties": {
        "AdditionalMasterSecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AdditionalSlaveSecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CoreInstanceFleet": {
          "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig"
        },
        "CoreInstanceGroup": {
          "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig"
        },
        "Ec2KeyName": {
          "type": "string"
        },
        "Ec2SubnetId": {
          "type": "string"
        },
        "Ec2SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EmrManagedMasterSecurityGroup": {
          "type": "string"
        },
        "EmrManagedSlaveSecurityGroup": {
          "type": "string"
        },
        "HadoopVersion": {
          "type": "string"
        },
        "KeepJobFlowAliveWhenNoSteps": {
          "type": "boolean"
        },
        "MasterInstanceFleet": {
          "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig"
        },
        "MasterInstanceGroup": {
          "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig"
        },
        "Placement": {
          "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType"
        },
        "ServiceAccessSecurityGroup": {
          "type": "string"
        },
        "TaskInstanceFleets": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig"
          },
          "type": "array"
        },
        "TaskInstanceGroups": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig"
          },
          "type": "array"
        },
        "TerminationProtected": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.KerberosAttributes": {
      "additionalProperties": false,
      "properties": {
        "ADDomainJoinPassword": {
          "type": "string"
        },
        "ADDomainJoinUser": {
          "type": "string"
        },
        "CrossRealmTrustPrincipalPassword": {
          "type": "string"
        },
        "KdcAdminPassword": {
          "type": "string"
        },
        "Realm": {
          "type": "string"
        }
      },
      "required": ["KdcAdminPassword", "Realm"],
      "type": "object"
    },
    "AWS::EMR::Cluster.KeyValue": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.ManagedScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "ComputeLimits": {
          "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Cluster.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EMR::Cluster.OnDemandProvisioningSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        }
      },
      "required": ["AllocationStrategy"],
      "type": "object"
    },
    "AWS::EMR::Cluster.PlacementType": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        }
      },
      "required": ["AvailabilityZone"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ScalingAction": {
      "additionalProperties": false,
      "properties": {
        "Market": {
          "type": "string"
        },
        "SimpleScalingPolicyConfiguration": {
          "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration"
        }
      },
      "required": ["SimpleScalingPolicyConfiguration"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ScalingConstraints": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        }
      },
      "required": ["MaxCapacity", "MinCapacity"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ScalingRule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Trigger": {
          "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger"
        }
      },
      "required": ["Action", "Name", "Trigger"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ScalingTrigger": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchAlarmDefinition": {
          "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition"
        }
      },
      "required": ["CloudWatchAlarmDefinition"],
      "type": "object"
    },
    "AWS::EMR::Cluster.ScriptBootstrapActionConfig": {
      "additionalProperties": false,
      "properties": {
        "Args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Path": {
          "type": "string"
        }
      },
      "required": ["Path"],
      "type": "object"
    },
    "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdjustmentType": {
          "type": "string"
        },
        "CoolDown": {
          "type": "number"
        },
        "ScalingAdjustment": {
          "type": "number"
        }
      },
      "required": ["ScalingAdjustment"],
      "type": "object"
    },
    "AWS::EMR::Cluster.SpotProvisioningSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "BlockDurationMinutes": {
          "type": "number"
        },
        "TimeoutAction": {
          "type": "string"
        },
        "TimeoutDurationMinutes": {
          "type": "number"
        }
      },
      "required": ["TimeoutAction", "TimeoutDurationMinutes"],
      "type": "object"
    },
    "AWS::EMR::Cluster.StepConfig": {
      "additionalProperties": false,
      "properties": {
        "ActionOnFailure": {
          "type": "string"
        },
        "HadoopJarStep": {
          "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["HadoopJarStep", "Name"],
      "type": "object"
    },
    "AWS::EMR::Cluster.VolumeSpecification": {
      "additionalProperties": false,
      "properties": {
        "Iops": {
          "type": "number"
        },
        "SizeInGB": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "required": ["SizeInGB", "VolumeType"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterId": {
              "type": "string"
            },
            "InstanceFleetType": {
              "type": "string"
            },
            "InstanceTypeConfigs": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig"
              },
              "type": "array"
            },
            "LaunchSpecifications": {
              "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications"
            },
            "Name": {
              "type": "string"
            },
            "TargetOnDemandCapacity": {
              "type": "number"
            },
            "TargetSpotCapacity": {
              "type": "number"
            }
          },
          "required": ["ClusterId", "InstanceFleetType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::InstanceFleetConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.Configuration": {
      "additionalProperties": false,
      "properties": {
        "Classification": {
          "type": "string"
        },
        "ConfigurationProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": {
      "additionalProperties": false,
      "properties": {
        "VolumeSpecification": {
          "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification"
        },
        "VolumesPerInstance": {
          "type": "number"
        }
      },
      "required": ["VolumeSpecification"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.EbsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EbsBlockDeviceConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig"
          },
          "type": "array"
        },
        "EbsOptimized": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": {
      "additionalProperties": false,
      "properties": {
        "OnDemandSpecification": {
          "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification"
        },
        "SpotSpecification": {
          "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification"
        }
      },
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": {
      "additionalProperties": false,
      "properties": {
        "BidPrice": {
          "type": "string"
        },
        "BidPriceAsPercentageOfOnDemandPrice": {
          "type": "number"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration"
          },
          "type": "array"
        },
        "CustomAmiId": {
          "type": "string"
        },
        "EbsConfiguration": {
          "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration"
        },
        "InstanceType": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "number"
        }
      },
      "required": ["InstanceType"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        }
      },
      "required": ["AllocationStrategy"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllocationStrategy": {
          "type": "string"
        },
        "BlockDurationMinutes": {
          "type": "number"
        },
        "TimeoutAction": {
          "type": "string"
        },
        "TimeoutDurationMinutes": {
          "type": "number"
        }
      },
      "required": ["TimeoutAction", "TimeoutDurationMinutes"],
      "type": "object"
    },
    "AWS::EMR::InstanceFleetConfig.VolumeSpecification": {
      "additionalProperties": false,
      "properties": {
        "Iops": {
          "type": "number"
        },
        "SizeInGB": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "required": ["SizeInGB", "VolumeType"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingPolicy": {
              "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy"
            },
            "BidPrice": {
              "type": "string"
            },
            "Configurations": {
              "items": {
                "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration"
              },
              "type": "array"
            },
            "CustomAmiId": {
              "type": "string"
            },
            "EbsConfiguration": {
              "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration"
            },
            "InstanceCount": {
              "type": "number"
            },
            "InstanceRole": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "JobFlowId": {
              "type": "string"
            },
            "Market": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "InstanceCount",
            "InstanceRole",
            "InstanceType",
            "JobFlowId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::InstanceGroupConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints"
        },
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule"
          },
          "type": "array"
        }
      },
      "required": ["Constraints", "Rules"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension"
          },
          "type": "array"
        },
        "EvaluationPeriods": {
          "type": "number"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "Period": {
          "type": "number"
        },
        "Statistic": {
          "type": "string"
        },
        "Threshold": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["ComparisonOperator", "MetricName", "Period", "Threshold"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.Configuration": {
      "additionalProperties": false,
      "properties": {
        "Classification": {
          "type": "string"
        },
        "ConfigurationProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Configurations": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": {
      "additionalProperties": false,
      "properties": {
        "VolumeSpecification": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification"
        },
        "VolumesPerInstance": {
          "type": "number"
        }
      },
      "required": ["VolumeSpecification"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.EbsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EbsBlockDeviceConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig"
          },
          "type": "array"
        },
        "EbsOptimized": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.ScalingAction": {
      "additionalProperties": false,
      "properties": {
        "Market": {
          "type": "string"
        },
        "SimpleScalingPolicyConfiguration": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration"
        }
      },
      "required": ["SimpleScalingPolicyConfiguration"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.ScalingConstraints": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        }
      },
      "required": ["MaxCapacity", "MinCapacity"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.ScalingRule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Trigger": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger"
        }
      },
      "required": ["Action", "Name", "Trigger"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.ScalingTrigger": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchAlarmDefinition": {
          "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition"
        }
      },
      "required": ["CloudWatchAlarmDefinition"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdjustmentType": {
          "type": "string"
        },
        "CoolDown": {
          "type": "number"
        },
        "ScalingAdjustment": {
          "type": "number"
        }
      },
      "required": ["ScalingAdjustment"],
      "type": "object"
    },
    "AWS::EMR::InstanceGroupConfig.VolumeSpecification": {
      "additionalProperties": false,
      "properties": {
        "Iops": {
          "type": "number"
        },
        "SizeInGB": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "required": ["SizeInGB", "VolumeType"],
      "type": "object"
    },
    "AWS::EMR::SecurityConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SecurityConfiguration": {
              "type": "object"
            }
          },
          "required": ["SecurityConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::SecurityConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::Step": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActionOnFailure": {
              "type": "string"
            },
            "HadoopJarStep": {
              "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig"
            },
            "JobFlowId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["ActionOnFailure", "HadoopJarStep", "JobFlowId", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::Step"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::Step.HadoopJarStepConfig": {
      "additionalProperties": false,
      "properties": {
        "Args": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Jar": {
          "type": "string"
        },
        "MainClass": {
          "type": "string"
        },
        "StepProperties": {
          "items": {
            "$ref": "#/definitions/AWS::EMR::Step.KeyValue"
          },
          "type": "array"
        }
      },
      "required": ["Jar"],
      "type": "object"
    },
    "AWS::EMR::Step.KeyValue": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::EMR::Studio": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthMode": {
              "type": "string"
            },
            "DefaultS3Location": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EngineSecurityGroupId": {
              "type": "string"
            },
            "IdpAuthUrl": {
              "type": "string"
            },
            "IdpRelayStateParameterName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ServiceRole": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserRole": {
              "type": "string"
            },
            "VpcId": {
              "type": "string"
            },
            "WorkspaceSecurityGroupId": {
              "type": "string"
            }
          },
          "required": [
            "AuthMode",
            "DefaultS3Location",
            "EngineSecurityGroupId",
            "Name",
            "ServiceRole",
            "SubnetIds",
            "VpcId",
            "WorkspaceSecurityGroupId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::Studio"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMR::StudioSessionMapping": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IdentityName": {
              "type": "string"
            },
            "IdentityType": {
              "type": "string"
            },
            "SessionPolicyArn": {
              "type": "string"
            },
            "StudioId": {
              "type": "string"
            }
          },
          "required": [
            "IdentityName",
            "IdentityType",
            "SessionPolicyArn",
            "StudioId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMR::StudioSessionMapping"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMRContainers::VirtualCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerProvider": {
              "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerProvider"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ContainerProvider", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMRContainers::VirtualCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMRContainers::VirtualCluster.ContainerInfo": {
      "additionalProperties": false,
      "properties": {
        "EksInfo": {
          "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.EksInfo"
        }
      },
      "required": ["EksInfo"],
      "type": "object"
    },
    "AWS::EMRContainers::VirtualCluster.ContainerProvider": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Info": {
          "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerInfo"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Id", "Info", "Type"],
      "type": "object"
    },
    "AWS::EMRContainers::VirtualCluster.EksInfo": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["Namespace"],
      "type": "object"
    },
    "AWS::EMRServerless::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Architecture": {
              "type": "string"
            },
            "AutoStartConfiguration": {
              "$ref": "#/definitions/AWS::EMRServerless::Application.AutoStartConfiguration"
            },
            "AutoStopConfiguration": {
              "$ref": "#/definitions/AWS::EMRServerless::Application.AutoStopConfiguration"
            },
            "InitialCapacity": {
              "items": {
                "$ref": "#/definitions/AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair"
              },
              "type": "array"
            },
            "MaximumCapacity": {
              "$ref": "#/definitions/AWS::EMRServerless::Application.MaximumAllowedResources"
            },
            "Name": {
              "type": "string"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::EMRServerless::Application.NetworkConfiguration"
            },
            "ReleaseLabel": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["ReleaseLabel", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EMRServerless::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EMRServerless::Application.AutoStartConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::EMRServerless::Application.AutoStopConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "IdleTimeoutMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EMRServerless::Application.InitialCapacityConfig": {
      "additionalProperties": false,
      "properties": {
        "WorkerConfiguration": {
          "$ref": "#/definitions/AWS::EMRServerless::Application.WorkerConfiguration"
        },
        "WorkerCount": {
          "type": "number"
        }
      },
      "required": ["WorkerConfiguration", "WorkerCount"],
      "type": "object"
    },
    "AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "$ref": "#/definitions/AWS::EMRServerless::Application.InitialCapacityConfig"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EMRServerless::Application.MaximumAllowedResources": {
      "additionalProperties": false,
      "properties": {
        "Cpu": {
          "type": "string"
        },
        "Disk": {
          "type": "string"
        },
        "Memory": {
          "type": "string"
        }
      },
      "required": ["Cpu", "Memory"],
      "type": "object"
    },
    "AWS::EMRServerless::Application.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::EMRServerless::Application.WorkerConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Cpu": {
          "type": "string"
        },
        "Disk": {
          "type": "string"
        },
        "Memory": {
          "type": "string"
        }
      },
      "required": ["Cpu", "Memory"],
      "type": "object"
    },
    "AWS::ElastiCache::CacheCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AZMode": {
              "type": "string"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "CacheNodeType": {
              "type": "string"
            },
            "CacheParameterGroupName": {
              "type": "string"
            },
            "CacheSecurityGroupNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CacheSubnetGroupName": {
              "type": "string"
            },
            "ClusterName": {
              "type": "string"
            },
            "Engine": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "IpDiscovery": {
              "type": "string"
            },
            "LogDeliveryConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest"
              },
              "type": "array"
            },
            "NetworkType": {
              "type": "string"
            },
            "NotificationTopicArn": {
              "type": "string"
            },
            "NumCacheNodes": {
              "type": "number"
            },
            "Port": {
              "type": "number"
            },
            "PreferredAvailabilityZone": {
              "type": "string"
            },
            "PreferredAvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "SnapshotArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnapshotName": {
              "type": "string"
            },
            "SnapshotRetentionLimit": {
              "type": "number"
            },
            "SnapshotWindow": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitEncryptionEnabled": {
              "type": "boolean"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["CacheNodeType", "Engine", "NumCacheNodes"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::CacheCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "LogGroup": {
          "type": "string"
        }
      },
      "required": ["LogGroup"],
      "type": "object"
    },
    "AWS::ElastiCache::CacheCluster.DestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails"
        },
        "KinesisFirehoseDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStream": {
          "type": "string"
        }
      },
      "required": ["DeliveryStream"],
      "type": "object"
    },
    "AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest": {
      "additionalProperties": false,
      "properties": {
        "DestinationDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.DestinationDetails"
        },
        "DestinationType": {
          "type": "string"
        },
        "LogFormat": {
          "type": "string"
        },
        "LogType": {
          "type": "string"
        }
      },
      "required": [
        "DestinationDetails",
        "DestinationType",
        "LogFormat",
        "LogType"
      ],
      "type": "object"
    },
    "AWS::ElastiCache::GlobalReplicationGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutomaticFailoverEnabled": {
              "type": "boolean"
            },
            "CacheNodeType": {
              "type": "string"
            },
            "CacheParameterGroupName": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "GlobalNodeGroupCount": {
              "type": "number"
            },
            "GlobalReplicationGroupDescription": {
              "type": "string"
            },
            "GlobalReplicationGroupIdSuffix": {
              "type": "string"
            },
            "Members": {
              "items": {
                "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember"
              },
              "type": "array"
            },
            "RegionalConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration"
              },
              "type": "array"
            }
          },
          "required": ["Members"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::GlobalReplicationGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember": {
      "additionalProperties": false,
      "properties": {
        "ReplicationGroupId": {
          "type": "string"
        },
        "ReplicationGroupRegion": {
          "type": "string"
        },
        "Role": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ReplicationGroupId": {
          "type": "string"
        },
        "ReplicationGroupRegion": {
          "type": "string"
        },
        "ReshardingConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NodeGroupId": {
          "type": "string"
        },
        "PreferredAvailabilityZones": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::ParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CacheParameterGroupFamily": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Properties": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["CacheParameterGroupFamily", "Description"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::ParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AtRestEncryptionEnabled": {
              "type": "boolean"
            },
            "AuthToken": {
              "type": "string"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AutomaticFailoverEnabled": {
              "type": "boolean"
            },
            "CacheNodeType": {
              "type": "string"
            },
            "CacheParameterGroupName": {
              "type": "string"
            },
            "CacheSecurityGroupNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CacheSubnetGroupName": {
              "type": "string"
            },
            "DataTieringEnabled": {
              "type": "boolean"
            },
            "Engine": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "GlobalReplicationGroupId": {
              "type": "string"
            },
            "IpDiscovery": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LogDeliveryConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest"
              },
              "type": "array"
            },
            "MultiAZEnabled": {
              "type": "boolean"
            },
            "NetworkType": {
              "type": "string"
            },
            "NodeGroupConfiguration": {
              "items": {
                "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration"
              },
              "type": "array"
            },
            "NotificationTopicArn": {
              "type": "string"
            },
            "NumCacheClusters": {
              "type": "number"
            },
            "NumNodeGroups": {
              "type": "number"
            },
            "Port": {
              "type": "number"
            },
            "PreferredCacheClusterAZs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PrimaryClusterId": {
              "type": "string"
            },
            "ReplicasPerNodeGroup": {
              "type": "number"
            },
            "ReplicationGroupDescription": {
              "type": "string"
            },
            "ReplicationGroupId": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnapshotArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnapshotName": {
              "type": "string"
            },
            "SnapshotRetentionLimit": {
              "type": "number"
            },
            "SnapshotWindow": {
              "type": "string"
            },
            "SnapshottingClusterId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransitEncryptionEnabled": {
              "type": "boolean"
            },
            "UserGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["ReplicationGroupDescription"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::ReplicationGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "LogGroup": {
          "type": "string"
        }
      },
      "required": ["LogGroup"],
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup.DestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails"
        },
        "KinesisFirehoseDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStream": {
          "type": "string"
        }
      },
      "required": ["DeliveryStream"],
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest": {
      "additionalProperties": false,
      "properties": {
        "DestinationDetails": {
          "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.DestinationDetails"
        },
        "DestinationType": {
          "type": "string"
        },
        "LogFormat": {
          "type": "string"
        },
        "LogType": {
          "type": "string"
        }
      },
      "required": [
        "DestinationDetails",
        "DestinationType",
        "LogFormat",
        "LogType"
      ],
      "type": "object"
    },
    "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NodeGroupId": {
          "type": "string"
        },
        "PrimaryAvailabilityZone": {
          "type": "string"
        },
        "ReplicaAvailabilityZones": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ReplicaCount": {
          "type": "number"
        },
        "Slots": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElastiCache::SecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::SecurityGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::SecurityGroupIngress": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CacheSecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupOwnerId": {
              "type": "string"
            }
          },
          "required": ["CacheSecurityGroupName", "EC2SecurityGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::SecurityGroupIngress"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::SubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CacheSubnetGroupName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::SubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessString": {
              "type": "string"
            },
            "AuthenticationMode": {
              "$ref": "#/definitions/AWS::ElastiCache::User.AuthenticationMode"
            },
            "Engine": {
              "type": "string"
            },
            "NoPasswordRequired": {
              "type": "boolean"
            },
            "Passwords": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "UserId": {
              "type": "string"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["Engine", "UserId", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElastiCache::User.AuthenticationMode": {
      "additionalProperties": false,
      "properties": {
        "Passwords": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElastiCache::UserGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Engine": {
              "type": "string"
            },
            "UserGroupId": {
              "type": "string"
            },
            "UserIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Engine", "UserGroupId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElastiCache::UserGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "ResourceLifecycleConfig": {
              "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticBeanstalk::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": {
      "additionalProperties": false,
      "properties": {
        "ServiceRole": {
          "type": "string"
        },
        "VersionLifecycleConfig": {
          "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig"
        }
      },
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": {
      "additionalProperties": false,
      "properties": {
        "MaxAgeRule": {
          "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule"
        },
        "MaxCountRule": {
          "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule"
        }
      },
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Application.MaxAgeRule": {
      "additionalProperties": false,
      "properties": {
        "DeleteSourceFromS3": {
          "type": "boolean"
        },
        "Enabled": {
          "type": "boolean"
        },
        "MaxAgeInDays": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Application.MaxCountRule": {
      "additionalProperties": false,
      "properties": {
        "DeleteSourceFromS3": {
          "type": "boolean"
        },
        "Enabled": {
          "type": "boolean"
        },
        "MaxCount": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ElasticBeanstalk::ApplicationVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "SourceBundle": {
              "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle"
            }
          },
          "required": ["ApplicationName", "SourceBundle"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticBeanstalk::ApplicationVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::ConfigurationTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EnvironmentId": {
              "type": "string"
            },
            "OptionSettings": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting"
              },
              "type": "array"
            },
            "PlatformArn": {
              "type": "string"
            },
            "SolutionStackName": {
              "type": "string"
            },
            "SourceConfiguration": {
              "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration"
            }
          },
          "required": ["ApplicationName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticBeanstalk::ConfigurationTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        },
        "OptionName": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Namespace", "OptionName"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationName": {
          "type": "string"
        },
        "TemplateName": {
          "type": "string"
        }
      },
      "required": ["ApplicationName", "TemplateName"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "CNAMEPrefix": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EnvironmentName": {
              "type": "string"
            },
            "OperationsRole": {
              "type": "string"
            },
            "OptionSettings": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting"
              },
              "type": "array"
            },
            "PlatformArn": {
              "type": "string"
            },
            "SolutionStackName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateName": {
              "type": "string"
            },
            "Tier": {
              "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier"
            },
            "VersionLabel": {
              "type": "string"
            }
          },
          "required": ["ApplicationName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticBeanstalk::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Environment.OptionSetting": {
      "additionalProperties": false,
      "properties": {
        "Namespace": {
          "type": "string"
        },
        "OptionName": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Namespace", "OptionName"],
      "type": "object"
    },
    "AWS::ElasticBeanstalk::Environment.Tier": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessLoggingPolicy": {
              "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy"
            },
            "AppCookieStickinessPolicy": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy"
              },
              "type": "array"
            },
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ConnectionDrainingPolicy": {
              "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy"
            },
            "ConnectionSettings": {
              "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings"
            },
            "CrossZone": {
              "type": "boolean"
            },
            "HealthCheck": {
              "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck"
            },
            "Instances": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LBCookieStickinessPolicy": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy"
              },
              "type": "array"
            },
            "Listeners": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners"
              },
              "type": "array"
            },
            "LoadBalancerName": {
              "type": "string"
            },
            "Policies": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies"
              },
              "type": "array"
            },
            "Scheme": {
              "type": "string"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Subnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Listeners"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancing::LoadBalancer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": {
      "additionalProperties": false,
      "properties": {
        "EmitInterval": {
          "type": "number"
        },
        "Enabled": {
          "type": "boolean"
        },
        "S3BucketName": {
          "type": "string"
        },
        "S3BucketPrefix": {
          "type": "string"
        }
      },
      "required": ["Enabled", "S3BucketName"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": {
      "additionalProperties": false,
      "properties": {
        "CookieName": {
          "type": "string"
        },
        "PolicyName": {
          "type": "string"
        }
      },
      "required": ["CookieName", "PolicyName"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "Timeout": {
          "type": "number"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": {
      "additionalProperties": false,
      "properties": {
        "IdleTimeout": {
          "type": "number"
        }
      },
      "required": ["IdleTimeout"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": {
      "additionalProperties": false,
      "properties": {
        "HealthyThreshold": {
          "type": "string"
        },
        "Interval": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        },
        "Timeout": {
          "type": "string"
        },
        "UnhealthyThreshold": {
          "type": "string"
        }
      },
      "required": [
        "HealthyThreshold",
        "Interval",
        "Target",
        "Timeout",
        "UnhealthyThreshold"
      ],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": {
      "additionalProperties": false,
      "properties": {
        "CookieExpirationPeriod": {
          "type": "string"
        },
        "PolicyName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": {
      "additionalProperties": false,
      "properties": {
        "InstancePort": {
          "type": "string"
        },
        "InstanceProtocol": {
          "type": "string"
        },
        "LoadBalancerPort": {
          "type": "string"
        },
        "PolicyNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Protocol": {
          "type": "string"
        },
        "SSLCertificateId": {
          "type": "string"
        }
      },
      "required": ["InstancePort", "LoadBalancerPort", "Protocol"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancing::LoadBalancer.Policies": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "InstancePorts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LoadBalancerPorts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PolicyName": {
          "type": "string"
        },
        "PolicyType": {
          "type": "string"
        }
      },
      "required": ["Attributes", "PolicyName", "PolicyType"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlpnPolicy": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Certificates": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate"
              },
              "type": "array"
            },
            "DefaultActions": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action"
              },
              "type": "array"
            },
            "LoadBalancerArn": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "Protocol": {
              "type": "string"
            },
            "SslPolicy": {
              "type": "string"
            }
          },
          "required": ["DefaultActions", "LoadBalancerArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancingV2::Listener"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.Action": {
      "additionalProperties": false,
      "properties": {
        "AuthenticateCognitoConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig"
        },
        "AuthenticateOidcConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig"
        },
        "FixedResponseConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig"
        },
        "ForwardConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.ForwardConfig"
        },
        "Order": {
          "type": "number"
        },
        "RedirectConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig"
        },
        "TargetGroupArn": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationRequestExtraParams": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "OnUnauthenticatedRequest": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        },
        "SessionCookieName": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "string"
        },
        "UserPoolArn": {
          "type": "string"
        },
        "UserPoolClientId": {
          "type": "string"
        },
        "UserPoolDomain": {
          "type": "string"
        }
      },
      "required": ["UserPoolArn", "UserPoolClientId", "UserPoolDomain"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationRequestExtraParams": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "AuthorizationEndpoint": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "Issuer": {
          "type": "string"
        },
        "OnUnauthenticatedRequest": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        },
        "SessionCookieName": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "string"
        },
        "TokenEndpoint": {
          "type": "string"
        },
        "UseExistingClientSecret": {
          "type": "boolean"
        },
        "UserInfoEndpoint": {
          "type": "string"
        }
      },
      "required": [
        "AuthorizationEndpoint",
        "ClientId",
        "Issuer",
        "TokenEndpoint",
        "UserInfoEndpoint"
      ],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.Certificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": {
      "additionalProperties": false,
      "properties": {
        "ContentType": {
          "type": "string"
        },
        "MessageBody": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.ForwardConfig": {
      "additionalProperties": false,
      "properties": {
        "TargetGroupStickinessConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig"
        },
        "TargetGroups": {
          "items": {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": {
      "additionalProperties": false,
      "properties": {
        "Host": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "Query": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig": {
      "additionalProperties": false,
      "properties": {
        "DurationSeconds": {
          "type": "number"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple": {
      "additionalProperties": false,
      "properties": {
        "TargetGroupArn": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerCertificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Certificates": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate"
              },
              "type": "array"
            },
            "ListenerArn": {
              "type": "string"
            }
          },
          "required": ["Certificates", "ListenerArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancingV2::ListenerCertificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action"
              },
              "type": "array"
            },
            "Conditions": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition"
              },
              "type": "array"
            },
            "ListenerArn": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            }
          },
          "required": ["Actions", "Conditions", "ListenerArn", "Priority"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancingV2::ListenerRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.Action": {
      "additionalProperties": false,
      "properties": {
        "AuthenticateCognitoConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig"
        },
        "AuthenticateOidcConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig"
        },
        "FixedResponseConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig"
        },
        "ForwardConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig"
        },
        "Order": {
          "type": "number"
        },
        "RedirectConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig"
        },
        "TargetGroupArn": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationRequestExtraParams": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "OnUnauthenticatedRequest": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        },
        "SessionCookieName": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "number"
        },
        "UserPoolArn": {
          "type": "string"
        },
        "UserPoolClientId": {
          "type": "string"
        },
        "UserPoolDomain": {
          "type": "string"
        }
      },
      "required": ["UserPoolArn", "UserPoolClientId", "UserPoolDomain"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationRequestExtraParams": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "AuthorizationEndpoint": {
          "type": "string"
        },
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "Issuer": {
          "type": "string"
        },
        "OnUnauthenticatedRequest": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        },
        "SessionCookieName": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "number"
        },
        "TokenEndpoint": {
          "type": "string"
        },
        "UseExistingClientSecret": {
          "type": "boolean"
        },
        "UserInfoEndpoint": {
          "type": "string"
        }
      },
      "required": [
        "AuthorizationEndpoint",
        "ClientId",
        "Issuer",
        "TokenEndpoint",
        "UserInfoEndpoint"
      ],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": {
      "additionalProperties": false,
      "properties": {
        "ContentType": {
          "type": "string"
        },
        "MessageBody": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig": {
      "additionalProperties": false,
      "properties": {
        "TargetGroupStickinessConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig"
        },
        "TargetGroups": {
          "items": {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig": {
      "additionalProperties": false,
      "properties": {
        "HttpHeaderName": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": {
      "additionalProperties": false,
      "properties": {
        "Host": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "Query": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        }
      },
      "required": ["StatusCode"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "HostHeaderConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig"
        },
        "HttpHeaderConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig"
        },
        "HttpRequestMethodConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig"
        },
        "PathPatternConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig"
        },
        "QueryStringConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig"
        },
        "SourceIpConfig": {
          "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig": {
      "additionalProperties": false,
      "properties": {
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig": {
      "additionalProperties": false,
      "properties": {
        "DurationSeconds": {
          "type": "number"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple": {
      "additionalProperties": false,
      "properties": {
        "TargetGroupArn": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::LoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IpAddressType": {
              "type": "string"
            },
            "LoadBalancerAttributes": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Scheme": {
              "type": "string"
            },
            "SecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetMappings": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping"
              },
              "type": "array"
            },
            "Subnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancingV2::LoadBalancer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": {
      "additionalProperties": false,
      "properties": {
        "AllocationId": {
          "type": "string"
        },
        "IPv6Address": {
          "type": "string"
        },
        "PrivateIPv4Address": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "required": ["SubnetId"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::TargetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HealthCheckEnabled": {
              "type": "boolean"
            },
            "HealthCheckIntervalSeconds": {
              "type": "number"
            },
            "HealthCheckPath": {
              "type": "string"
            },
            "HealthCheckPort": {
              "type": "string"
            },
            "HealthCheckProtocol": {
              "type": "string"
            },
            "HealthCheckTimeoutSeconds": {
              "type": "number"
            },
            "HealthyThresholdCount": {
              "type": "number"
            },
            "IpAddressType": {
              "type": "string"
            },
            "Matcher": {
              "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher"
            },
            "Name": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "Protocol": {
              "type": "string"
            },
            "ProtocolVersion": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetGroupAttributes": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute"
              },
              "type": "array"
            },
            "TargetType": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription"
              },
              "type": "array"
            },
            "UnhealthyThresholdCount": {
              "type": "number"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ElasticLoadBalancingV2::TargetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": {
      "additionalProperties": false,
      "properties": {
        "GrpcCode": {
          "type": "string"
        },
        "HttpCode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPolicies": {
              "type": "object"
            },
            "AdvancedOptions": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "AdvancedSecurityOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput"
            },
            "CognitoOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.CognitoOptions"
            },
            "DomainEndpointOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.DomainEndpointOptions"
            },
            "DomainName": {
              "type": "string"
            },
            "EBSOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions"
            },
            "ElasticsearchClusterConfig": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig"
            },
            "ElasticsearchVersion": {
              "type": "string"
            },
            "EncryptionAtRestOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions"
            },
            "LogPublishingOptions": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::Elasticsearch::Domain.LogPublishingOption"
                }
              },
              "type": "object"
            },
            "NodeToNodeEncryptionOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions"
            },
            "SnapshotOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VPCOptions": {
              "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Elasticsearch::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": {
      "additionalProperties": false,
      "properties": {
        "AnonymousAuthEnabled": {
          "type": "boolean"
        },
        "Enabled": {
          "type": "boolean"
        },
        "InternalUserDatabaseEnabled": {
          "type": "boolean"
        },
        "MasterUserOptions": {
          "$ref": "#/definitions/AWS::Elasticsearch::Domain.MasterUserOptions"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.CognitoOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "IdentityPoolId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "UserPoolId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.ColdStorageOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.DomainEndpointOptions": {
      "additionalProperties": false,
      "properties": {
        "CustomEndpoint": {
          "type": "string"
        },
        "CustomEndpointCertificateArn": {
          "type": "string"
        },
        "CustomEndpointEnabled": {
          "type": "boolean"
        },
        "EnforceHTTPS": {
          "type": "boolean"
        },
        "TLSSecurityPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.EBSOptions": {
      "additionalProperties": false,
      "properties": {
        "EBSEnabled": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "ColdStorageOptions": {
          "$ref": "#/definitions/AWS::Elasticsearch::Domain.ColdStorageOptions"
        },
        "DedicatedMasterCount": {
          "type": "number"
        },
        "DedicatedMasterEnabled": {
          "type": "boolean"
        },
        "DedicatedMasterType": {
          "type": "string"
        },
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "WarmCount": {
          "type": "number"
        },
        "WarmEnabled": {
          "type": "boolean"
        },
        "WarmType": {
          "type": "string"
        },
        "ZoneAwarenessConfig": {
          "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig"
        },
        "ZoneAwarenessEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.LogPublishingOption": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsLogGroupArn": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.MasterUserOptions": {
      "additionalProperties": false,
      "properties": {
        "MasterUserARN": {
          "type": "string"
        },
        "MasterUserName": {
          "type": "string"
        },
        "MasterUserPassword": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.SnapshotOptions": {
      "additionalProperties": false,
      "properties": {
        "AutomatedSnapshotStartHour": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.VPCOptions": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Elasticsearch::Domain.ZoneAwarenessConfig": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZoneCount": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::EventSchemas::Discoverer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CrossAccount": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "SourceArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::EventSchemas::Discoverer.TagsEntry"
              },
              "type": "array"
            }
          },
          "required": ["SourceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EventSchemas::Discoverer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EventSchemas::Discoverer.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EventSchemas::Registry": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "RegistryName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::EventSchemas::Registry.TagsEntry"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EventSchemas::Registry"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::EventSchemas::Registry.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::EventSchemas::RegistryPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Policy": {
              "type": "object"
            },
            "RegistryName": {
              "type": "string"
            },
            "RevisionId": {
              "type": "string"
            }
          },
          "required": ["Policy", "RegistryName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EventSchemas::RegistryPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EventSchemas::Schema": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Content": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "RegistryName": {
              "type": "string"
            },
            "SchemaName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::EventSchemas::Schema.TagsEntry"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Content", "RegistryName", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::EventSchemas::Schema"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::EventSchemas::Schema.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Events::ApiDestination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionArn": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "HttpMethod": {
              "type": "string"
            },
            "InvocationEndpoint": {
              "type": "string"
            },
            "InvocationRateLimitPerSecond": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["ConnectionArn", "HttpMethod", "InvocationEndpoint"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::ApiDestination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::Archive": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ArchiveName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EventPattern": {
              "type": "object"
            },
            "RetentionDays": {
              "type": "number"
            },
            "SourceArn": {
              "type": "string"
            }
          },
          "required": ["SourceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::Archive"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::Connection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthParameters": {
              "$ref": "#/definitions/AWS::Events::Connection.AuthParameters"
            },
            "AuthorizationType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["AuthParameters", "AuthorizationType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::Connection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::Connection.ApiKeyAuthParameters": {
      "additionalProperties": false,
      "properties": {
        "ApiKeyName": {
          "type": "string"
        },
        "ApiKeyValue": {
          "type": "string"
        }
      },
      "required": ["ApiKeyName", "ApiKeyValue"],
      "type": "object"
    },
    "AWS::Events::Connection.AuthParameters": {
      "additionalProperties": false,
      "properties": {
        "ApiKeyAuthParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.ApiKeyAuthParameters"
        },
        "BasicAuthParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.BasicAuthParameters"
        },
        "InvocationHttpParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters"
        },
        "OAuthParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.OAuthParameters"
        }
      },
      "type": "object"
    },
    "AWS::Events::Connection.BasicAuthParameters": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::Events::Connection.ClientParameters": {
      "additionalProperties": false,
      "properties": {
        "ClientID": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        }
      },
      "required": ["ClientID", "ClientSecret"],
      "type": "object"
    },
    "AWS::Events::Connection.ConnectionHttpParameters": {
      "additionalProperties": false,
      "properties": {
        "BodyParameters": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Connection.Parameter"
          },
          "type": "array"
        },
        "HeaderParameters": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Connection.Parameter"
          },
          "type": "array"
        },
        "QueryStringParameters": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Connection.Parameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Events::Connection.OAuthParameters": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationEndpoint": {
          "type": "string"
        },
        "ClientParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.ClientParameters"
        },
        "HttpMethod": {
          "type": "string"
        },
        "OAuthHttpParameters": {
          "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters"
        }
      },
      "required": ["AuthorizationEndpoint", "ClientParameters", "HttpMethod"],
      "type": "object"
    },
    "AWS::Events::Connection.Parameter": {
      "additionalProperties": false,
      "properties": {
        "IsValueSecret": {
          "type": "boolean"
        },
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Events::Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EventBuses": {
              "items": {
                "$ref": "#/definitions/AWS::Events::Endpoint.EndpointEventBus"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "ReplicationConfig": {
              "$ref": "#/definitions/AWS::Events::Endpoint.ReplicationConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "RoutingConfig": {
              "$ref": "#/definitions/AWS::Events::Endpoint.RoutingConfig"
            }
          },
          "required": ["EventBuses", "Name", "RoutingConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::Endpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::Endpoint.EndpointEventBus": {
      "additionalProperties": false,
      "properties": {
        "EventBusArn": {
          "type": "string"
        }
      },
      "required": ["EventBusArn"],
      "type": "object"
    },
    "AWS::Events::Endpoint.FailoverConfig": {
      "additionalProperties": false,
      "properties": {
        "Primary": {
          "$ref": "#/definitions/AWS::Events::Endpoint.Primary"
        },
        "Secondary": {
          "$ref": "#/definitions/AWS::Events::Endpoint.Secondary"
        }
      },
      "required": ["Primary", "Secondary"],
      "type": "object"
    },
    "AWS::Events::Endpoint.Primary": {
      "additionalProperties": false,
      "properties": {
        "HealthCheck": {
          "type": "string"
        }
      },
      "required": ["HealthCheck"],
      "type": "object"
    },
    "AWS::Events::Endpoint.ReplicationConfig": {
      "additionalProperties": false,
      "properties": {
        "State": {
          "type": "string"
        }
      },
      "required": ["State"],
      "type": "object"
    },
    "AWS::Events::Endpoint.RoutingConfig": {
      "additionalProperties": false,
      "properties": {
        "FailoverConfig": {
          "$ref": "#/definitions/AWS::Events::Endpoint.FailoverConfig"
        }
      },
      "required": ["FailoverConfig"],
      "type": "object"
    },
    "AWS::Events::Endpoint.Secondary": {
      "additionalProperties": false,
      "properties": {
        "Route": {
          "type": "string"
        }
      },
      "required": ["Route"],
      "type": "object"
    },
    "AWS::Events::EventBus": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EventSourceName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::Events::EventBus.TagEntry"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::EventBus"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::EventBus.TagEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Events::EventBusPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "Condition": {
              "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition"
            },
            "EventBusName": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            },
            "Statement": {
              "type": "object"
            },
            "StatementId": {
              "type": "string"
            }
          },
          "required": ["StatementId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::EventBusPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Events::EventBusPolicy.Condition": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EventBusName": {
              "type": "string"
            },
            "EventPattern": {
              "type": "object"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "ScheduleExpression": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::Events::Rule.Target"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Events::Rule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Events::Rule.AwsVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Subnets"],
      "type": "object"
    },
    "AWS::Events::Rule.BatchArrayProperties": {
      "additionalProperties": false,
      "properties": {
        "Size": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.BatchParameters": {
      "additionalProperties": false,
      "properties": {
        "ArrayProperties": {
          "$ref": "#/definitions/AWS::Events::Rule.BatchArrayProperties"
        },
        "JobDefinition": {
          "type": "string"
        },
        "JobName": {
          "type": "string"
        },
        "RetryStrategy": {
          "$ref": "#/definitions/AWS::Events::Rule.BatchRetryStrategy"
        }
      },
      "required": ["JobDefinition", "JobName"],
      "type": "object"
    },
    "AWS::Events::Rule.BatchRetryStrategy": {
      "additionalProperties": false,
      "properties": {
        "Attempts": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.CapacityProviderStrategyItem": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["CapacityProvider"],
      "type": "object"
    },
    "AWS::Events::Rule.DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.EcsParameters": {
      "additionalProperties": false,
      "properties": {
        "CapacityProviderStrategy": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Rule.CapacityProviderStrategyItem"
          },
          "type": "array"
        },
        "EnableECSManagedTags": {
          "type": "boolean"
        },
        "EnableExecuteCommand": {
          "type": "boolean"
        },
        "Group": {
          "type": "string"
        },
        "LaunchType": {
          "type": "string"
        },
        "NetworkConfiguration": {
          "$ref": "#/definitions/AWS::Events::Rule.NetworkConfiguration"
        },
        "PlacementConstraints": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Rule.PlacementConstraint"
          },
          "type": "array"
        },
        "PlacementStrategies": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Rule.PlacementStrategy"
          },
          "type": "array"
        },
        "PlatformVersion": {
          "type": "string"
        },
        "PropagateTags": {
          "type": "string"
        },
        "ReferenceId": {
          "type": "string"
        },
        "TagList": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "TaskCount": {
          "type": "number"
        },
        "TaskDefinitionArn": {
          "type": "string"
        }
      },
      "required": ["TaskDefinitionArn"],
      "type": "object"
    },
    "AWS::Events::Rule.HttpParameters": {
      "additionalProperties": false,
      "properties": {
        "HeaderParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "PathParameterValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "QueryStringParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.InputTransformer": {
      "additionalProperties": false,
      "properties": {
        "InputPathsMap": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "InputTemplate": {
          "type": "string"
        }
      },
      "required": ["InputTemplate"],
      "type": "object"
    },
    "AWS::Events::Rule.KinesisParameters": {
      "additionalProperties": false,
      "properties": {
        "PartitionKeyPath": {
          "type": "string"
        }
      },
      "required": ["PartitionKeyPath"],
      "type": "object"
    },
    "AWS::Events::Rule.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AwsVpcConfiguration": {
          "$ref": "#/definitions/AWS::Events::Rule.AwsVpcConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.PlacementConstraint": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.PlacementStrategy": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.RedshiftDataParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "DbUser": {
          "type": "string"
        },
        "SecretManagerArn": {
          "type": "string"
        },
        "Sql": {
          "type": "string"
        },
        "StatementName": {
          "type": "string"
        },
        "WithEvent": {
          "type": "boolean"
        }
      },
      "required": ["Database", "Sql"],
      "type": "object"
    },
    "AWS::Events::Rule.RetryPolicy": {
      "additionalProperties": false,
      "properties": {
        "MaximumEventAgeInSeconds": {
          "type": "number"
        },
        "MaximumRetryAttempts": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.RunCommandParameters": {
      "additionalProperties": false,
      "properties": {
        "RunCommandTargets": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget"
          },
          "type": "array"
        }
      },
      "required": ["RunCommandTargets"],
      "type": "object"
    },
    "AWS::Events::Rule.RunCommandTarget": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Values"],
      "type": "object"
    },
    "AWS::Events::Rule.SageMakerPipelineParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::Events::Rule.SageMakerPipelineParameters": {
      "additionalProperties": false,
      "properties": {
        "PipelineParameterList": {
          "items": {
            "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.SqsParameters": {
      "additionalProperties": false,
      "properties": {
        "MessageGroupId": {
          "type": "string"
        }
      },
      "required": ["MessageGroupId"],
      "type": "object"
    },
    "AWS::Events::Rule.Tag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Events::Rule.Target": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "BatchParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.BatchParameters"
        },
        "DeadLetterConfig": {
          "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig"
        },
        "EcsParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.EcsParameters"
        },
        "HttpParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.HttpParameters"
        },
        "Id": {
          "type": "string"
        },
        "Input": {
          "type": "string"
        },
        "InputPath": {
          "type": "string"
        },
        "InputTransformer": {
          "$ref": "#/definitions/AWS::Events::Rule.InputTransformer"
        },
        "KinesisParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters"
        },
        "RedshiftDataParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters"
        },
        "RetryPolicy": {
          "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy"
        },
        "RoleArn": {
          "type": "string"
        },
        "RunCommandParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters"
        },
        "SageMakerPipelineParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameters"
        },
        "SqsParameters": {
          "$ref": "#/definitions/AWS::Events::Rule.SqsParameters"
        }
      },
      "required": ["Arn", "Id"],
      "type": "object"
    },
    "AWS::Evidently::Experiment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "MetricGoals": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Experiment.MetricGoalObject"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "OnlineAbConfig": {
              "$ref": "#/definitions/AWS::Evidently::Experiment.OnlineAbConfigObject"
            },
            "Project": {
              "type": "string"
            },
            "RandomizationSalt": {
              "type": "string"
            },
            "RemoveSegment": {
              "type": "boolean"
            },
            "RunningStatus": {
              "$ref": "#/definitions/AWS::Evidently::Experiment.RunningStatusObject"
            },
            "SamplingRate": {
              "type": "number"
            },
            "Segment": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Treatments": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentObject"
              },
              "type": "array"
            }
          },
          "required": [
            "MetricGoals",
            "Name",
            "OnlineAbConfig",
            "Project",
            "Treatments"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Evidently::Experiment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Evidently::Experiment.MetricGoalObject": {
      "additionalProperties": false,
      "properties": {
        "DesiredChange": {
          "type": "string"
        },
        "EntityIdKey": {
          "type": "string"
        },
        "EventPattern": {
          "type": "string"
        },
        "MetricName": {
          "type": "string"
        },
        "UnitLabel": {
          "type": "string"
        },
        "ValueKey": {
          "type": "string"
        }
      },
      "required": ["DesiredChange", "EntityIdKey", "MetricName", "ValueKey"],
      "type": "object"
    },
    "AWS::Evidently::Experiment.OnlineAbConfigObject": {
      "additionalProperties": false,
      "properties": {
        "ControlTreatmentName": {
          "type": "string"
        },
        "TreatmentWeights": {
          "items": {
            "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentToWeight"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Evidently::Experiment.RunningStatusObject": {
      "additionalProperties": false,
      "properties": {
        "AnalysisCompleteTime": {
          "type": "string"
        },
        "DesiredState": {
          "type": "string"
        },
        "Reason": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::Evidently::Experiment.TreatmentObject": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Feature": {
          "type": "string"
        },
        "TreatmentName": {
          "type": "string"
        },
        "Variation": {
          "type": "string"
        }
      },
      "required": ["Feature", "TreatmentName", "Variation"],
      "type": "object"
    },
    "AWS::Evidently::Experiment.TreatmentToWeight": {
      "additionalProperties": false,
      "properties": {
        "SplitWeight": {
          "type": "number"
        },
        "Treatment": {
          "type": "string"
        }
      },
      "required": ["SplitWeight", "Treatment"],
      "type": "object"
    },
    "AWS::Evidently::Feature": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultVariation": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EntityOverrides": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Feature.EntityOverride"
              },
              "type": "array"
            },
            "EvaluationStrategy": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Project": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Variations": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Feature.VariationObject"
              },
              "type": "array"
            }
          },
          "required": ["Name", "Project", "Variations"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Evidently::Feature"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Evidently::Feature.EntityOverride": {
      "additionalProperties": false,
      "properties": {
        "EntityId": {
          "type": "string"
        },
        "Variation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Evidently::Feature.VariationObject": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "boolean"
        },
        "DoubleValue": {
          "type": "number"
        },
        "LongValue": {
          "type": "number"
        },
        "StringValue": {
          "type": "string"
        },
        "VariationName": {
          "type": "string"
        }
      },
      "required": ["VariationName"],
      "type": "object"
    },
    "AWS::Evidently::Launch": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "ExecutionStatus": {
              "$ref": "#/definitions/AWS::Evidently::Launch.ExecutionStatusObject"
            },
            "Groups": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Launch.LaunchGroupObject"
              },
              "type": "array"
            },
            "MetricMonitors": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Launch.MetricDefinitionObject"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Project": {
              "type": "string"
            },
            "RandomizationSalt": {
              "type": "string"
            },
            "ScheduledSplitsConfig": {
              "items": {
                "$ref": "#/definitions/AWS::Evidently::Launch.StepConfig"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Groups", "Name", "Project", "ScheduledSplitsConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Evidently::Launch"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Evidently::Launch.ExecutionStatusObject": {
      "additionalProperties": false,
      "properties": {
        "DesiredState": {
          "type": "string"
        },
        "Reason": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::Evidently::Launch.GroupToWeight": {
      "additionalProperties": false,
      "properties": {
        "GroupName": {
          "type": "string"
        },
        "SplitWeight": {
          "type": "number"
        }
      },
      "required": ["GroupName", "SplitWeight"],
      "type": "object"
    },
    "AWS::Evidently::Launch.LaunchGroupObject": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Feature": {
          "type": "string"
        },
        "GroupName": {
          "type": "string"
        },
        "Variation": {
          "type": "string"
        }
      },
      "required": ["Feature", "GroupName", "Variation"],
      "type": "object"
    },
    "AWS::Evidently::Launch.MetricDefinitionObject": {
      "additionalProperties": false,
      "properties": {
        "EntityIdKey": {
          "type": "string"
        },
        "EventPattern": {
          "type": "string"
        },
        "MetricName": {
          "type": "string"
        },
        "UnitLabel": {
          "type": "string"
        },
        "ValueKey": {
          "type": "string"
        }
      },
      "required": ["EntityIdKey", "MetricName", "ValueKey"],
      "type": "object"
    },
    "AWS::Evidently::Launch.SegmentOverride": {
      "additionalProperties": false,
      "properties": {
        "EvaluationOrder": {
          "type": "number"
        },
        "Segment": {
          "type": "string"
        },
        "Weights": {
          "items": {
            "$ref": "#/definitions/AWS::Evidently::Launch.GroupToWeight"
          },
          "type": "array"
        }
      },
      "required": ["EvaluationOrder", "Segment", "Weights"],
      "type": "object"
    },
    "AWS::Evidently::Launch.StepConfig": {
      "additionalProperties": false,
      "properties": {
        "GroupWeights": {
          "items": {
            "$ref": "#/definitions/AWS::Evidently::Launch.GroupToWeight"
          },
          "type": "array"
        },
        "SegmentOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::Evidently::Launch.SegmentOverride"
          },
          "type": "array"
        },
        "StartTime": {
          "type": "string"
        }
      },
      "required": ["GroupWeights", "StartTime"],
      "type": "object"
    },
    "AWS::Evidently::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppConfigResource": {
              "$ref": "#/definitions/AWS::Evidently::Project.AppConfigResourceObject"
            },
            "DataDelivery": {
              "$ref": "#/definitions/AWS::Evidently::Project.DataDeliveryObject"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Evidently::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Evidently::Project.AppConfigResourceObject": {
      "additionalProperties": false,
      "properties": {
        "ApplicationId": {
          "type": "string"
        },
        "EnvironmentId": {
          "type": "string"
        }
      },
      "required": ["ApplicationId", "EnvironmentId"],
      "type": "object"
    },
    "AWS::Evidently::Project.DataDeliveryObject": {
      "additionalProperties": false,
      "properties": {
        "LogGroup": {
          "type": "string"
        },
        "S3": {
          "$ref": "#/definitions/AWS::Evidently::Project.S3Destination"
        }
      },
      "type": "object"
    },
    "AWS::Evidently::Project.S3Destination": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::Evidently::Segment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Pattern": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Evidently::Segment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateAction"
                }
              },
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "LogConfiguration": {
              "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration"
            },
            "RoleArn": {
              "type": "string"
            },
            "StopConditions": {
              "items": {
                "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Targets": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "Description",
            "RoleArn",
            "StopConditions",
            "Tags",
            "Targets"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FIS::ExperimentTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogGroupArn": {
          "type": "string"
        }
      },
      "required": ["LogGroupArn"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.ExperimentTemplateAction": {
      "additionalProperties": false,
      "properties": {
        "ActionId": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Parameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "StartAfter": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Targets": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "required": ["ActionId"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsConfiguration": {
          "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration"
        },
        "LogSchemaVersion": {
          "type": "number"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.S3Configuration"
        }
      },
      "required": ["LogSchemaVersion"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition": {
      "additionalProperties": false,
      "properties": {
        "Source": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Source"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget": {
      "additionalProperties": false,
      "properties": {
        "Filters": {
          "items": {
            "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter"
          },
          "type": "array"
        },
        "Parameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ResourceArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceTags": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ResourceType": {
          "type": "string"
        },
        "SelectionMode": {
          "type": "string"
        }
      },
      "required": ["ResourceType", "SelectionMode"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter": {
      "additionalProperties": false,
      "properties": {
        "Path": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Path", "Values"],
      "type": "object"
    },
    "AWS::FIS::ExperimentTemplate.S3Configuration": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::FMS::NotificationChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SnsRoleName": {
              "type": "string"
            },
            "SnsTopicArn": {
              "type": "string"
            }
          },
          "required": ["SnsRoleName", "SnsTopicArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FMS::NotificationChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FMS::Policy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeleteAllPolicyResources": {
              "type": "boolean"
            },
            "ExcludeMap": {
              "$ref": "#/definitions/AWS::FMS::Policy.IEMap"
            },
            "ExcludeResourceTags": {
              "type": "boolean"
            },
            "IncludeMap": {
              "$ref": "#/definitions/AWS::FMS::Policy.IEMap"
            },
            "PolicyName": {
              "type": "string"
            },
            "RemediationEnabled": {
              "type": "boolean"
            },
            "ResourceTags": {
              "items": {
                "$ref": "#/definitions/AWS::FMS::Policy.ResourceTag"
              },
              "type": "array"
            },
            "ResourceType": {
              "type": "string"
            },
            "ResourceTypeList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ResourcesCleanUp": {
              "type": "boolean"
            },
            "SecurityServicePolicyData": {
              "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::FMS::Policy.PolicyTag"
              },
              "type": "array"
            }
          },
          "required": [
            "ExcludeResourceTags",
            "PolicyName",
            "RemediationEnabled",
            "ResourceType",
            "SecurityServicePolicyData"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FMS::Policy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FMS::Policy.IEMap": {
      "additionalProperties": false,
      "properties": {
        "ACCOUNT": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ORGUNIT": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FMS::Policy.NetworkFirewallPolicy": {
      "additionalProperties": false,
      "properties": {
        "FirewallDeploymentModel": {
          "type": "string"
        }
      },
      "required": ["FirewallDeploymentModel"],
      "type": "object"
    },
    "AWS::FMS::Policy.PolicyOption": {
      "additionalProperties": false,
      "properties": {
        "NetworkFirewallPolicy": {
          "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy"
        },
        "ThirdPartyFirewallPolicy": {
          "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy"
        }
      },
      "type": "object"
    },
    "AWS::FMS::Policy.PolicyTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::FMS::Policy.ResourceTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key"],
      "type": "object"
    },
    "AWS::FMS::Policy.SecurityServicePolicyData": {
      "additionalProperties": false,
      "properties": {
        "ManagedServiceData": {
          "type": "string"
        },
        "PolicyOption": {
          "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::FMS::Policy.ThirdPartyFirewallPolicy": {
      "additionalProperties": false,
      "properties": {
        "FirewallDeploymentModel": {
          "type": "string"
        }
      },
      "required": ["FirewallDeploymentModel"],
      "type": "object"
    },
    "AWS::FSx::DataRepositoryAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BatchImportMetaDataOnCreate": {
              "type": "boolean"
            },
            "DataRepositoryPath": {
              "type": "string"
            },
            "FileSystemId": {
              "type": "string"
            },
            "FileSystemPath": {
              "type": "string"
            },
            "ImportedFileChunkSize": {
              "type": "number"
            },
            "S3": {
              "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DataRepositoryPath", "FileSystemId", "FileSystemPath"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FSx::DataRepositoryAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": {
      "additionalProperties": false,
      "properties": {
        "Events": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Events"],
      "type": "object"
    },
    "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": {
      "additionalProperties": false,
      "properties": {
        "Events": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Events"],
      "type": "object"
    },
    "AWS::FSx::DataRepositoryAssociation.S3": {
      "additionalProperties": false,
      "properties": {
        "AutoExportPolicy": {
          "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy"
        },
        "AutoImportPolicy": {
          "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BackupId": {
              "type": "string"
            },
            "FileSystemType": {
              "type": "string"
            },
            "FileSystemTypeVersion": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LustreConfiguration": {
              "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration"
            },
            "OntapConfiguration": {
              "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration"
            },
            "OpenZFSConfiguration": {
              "$ref": "#/definitions/AWS::FSx::FileSystem.OpenZFSConfiguration"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StorageCapacity": {
              "type": "number"
            },
            "StorageType": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "WindowsConfiguration": {
              "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration"
            }
          },
          "required": ["FileSystemType", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FSx::FileSystem"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FSx::FileSystem.AuditLogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuditLogDestination": {
          "type": "string"
        },
        "FileAccessAuditLogLevel": {
          "type": "string"
        },
        "FileShareAccessAuditLogLevel": {
          "type": "string"
        }
      },
      "required": ["FileAccessAuditLogLevel", "FileShareAccessAuditLogLevel"],
      "type": "object"
    },
    "AWS::FSx::FileSystem.ClientConfigurations": {
      "additionalProperties": false,
      "properties": {
        "Clients": {
          "type": "string"
        },
        "Options": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.DiskIopsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Iops": {
          "type": "number"
        },
        "Mode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.LustreConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutoImportPolicy": {
          "type": "string"
        },
        "AutomaticBackupRetentionDays": {
          "type": "number"
        },
        "CopyTagsToBackups": {
          "type": "boolean"
        },
        "DailyAutomaticBackupStartTime": {
          "type": "string"
        },
        "DataCompressionType": {
          "type": "string"
        },
        "DeploymentType": {
          "type": "string"
        },
        "DriveCacheType": {
          "type": "string"
        },
        "ExportPath": {
          "type": "string"
        },
        "ImportPath": {
          "type": "string"
        },
        "ImportedFileChunkSize": {
          "type": "number"
        },
        "PerUnitStorageThroughput": {
          "type": "number"
        },
        "WeeklyMaintenanceStartTime": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.NfsExports": {
      "additionalProperties": false,
      "properties": {
        "ClientConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::FileSystem.ClientConfigurations"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.OntapConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutomaticBackupRetentionDays": {
          "type": "number"
        },
        "DailyAutomaticBackupStartTime": {
          "type": "string"
        },
        "DeploymentType": {
          "type": "string"
        },
        "DiskIopsConfiguration": {
          "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration"
        },
        "EndpointIpAddressRange": {
          "type": "string"
        },
        "FsxAdminPassword": {
          "type": "string"
        },
        "PreferredSubnetId": {
          "type": "string"
        },
        "RouteTableIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ThroughputCapacity": {
          "type": "number"
        },
        "WeeklyMaintenanceStartTime": {
          "type": "string"
        }
      },
      "required": ["DeploymentType"],
      "type": "object"
    },
    "AWS::FSx::FileSystem.OpenZFSConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutomaticBackupRetentionDays": {
          "type": "number"
        },
        "CopyTagsToBackups": {
          "type": "boolean"
        },
        "CopyTagsToVolumes": {
          "type": "boolean"
        },
        "DailyAutomaticBackupStartTime": {
          "type": "string"
        },
        "DeploymentType": {
          "type": "string"
        },
        "DiskIopsConfiguration": {
          "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration"
        },
        "Options": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RootVolumeConfiguration": {
          "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration"
        },
        "ThroughputCapacity": {
          "type": "number"
        },
        "WeeklyMaintenanceStartTime": {
          "type": "string"
        }
      },
      "required": ["DeploymentType"],
      "type": "object"
    },
    "AWS::FSx::FileSystem.RootVolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CopyTagsToSnapshots": {
          "type": "boolean"
        },
        "DataCompressionType": {
          "type": "string"
        },
        "NfsExports": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::FileSystem.NfsExports"
          },
          "type": "array"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "RecordSizeKiB": {
          "type": "number"
        },
        "UserAndGroupQuotas": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::FileSystem.UserAndGroupQuotas"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DnsIps": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DomainName": {
          "type": "string"
        },
        "FileSystemAdministratorsGroup": {
          "type": "string"
        },
        "OrganizationalUnitDistinguishedName": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "UserName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.UserAndGroupQuotas": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "number"
        },
        "StorageCapacityQuotaGiB": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::FileSystem.WindowsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ActiveDirectoryId": {
          "type": "string"
        },
        "Aliases": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AuditLogConfiguration": {
          "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration"
        },
        "AutomaticBackupRetentionDays": {
          "type": "number"
        },
        "CopyTagsToBackups": {
          "type": "boolean"
        },
        "DailyAutomaticBackupStartTime": {
          "type": "string"
        },
        "DeploymentType": {
          "type": "string"
        },
        "PreferredSubnetId": {
          "type": "string"
        },
        "SelfManagedActiveDirectoryConfiguration": {
          "$ref": "#/definitions/AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration"
        },
        "ThroughputCapacity": {
          "type": "number"
        },
        "WeeklyMaintenanceStartTime": {
          "type": "string"
        }
      },
      "required": ["ThroughputCapacity"],
      "type": "object"
    },
    "AWS::FSx::Snapshot": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VolumeId": {
              "type": "string"
            }
          },
          "required": ["Name", "VolumeId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FSx::Snapshot"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FSx::StorageVirtualMachine": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActiveDirectoryConfiguration": {
              "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine.ActiveDirectoryConfiguration"
            },
            "FileSystemId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RootVolumeSecurityStyle": {
              "type": "string"
            },
            "SvmAdminPassword": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FileSystemId", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FSx::StorageVirtualMachine"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FSx::StorageVirtualMachine.ActiveDirectoryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NetBiosName": {
          "type": "string"
        },
        "SelfManagedActiveDirectoryConfiguration": {
          "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine.SelfManagedActiveDirectoryConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::FSx::StorageVirtualMachine.SelfManagedActiveDirectoryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DnsIps": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DomainName": {
          "type": "string"
        },
        "FileSystemAdministratorsGroup": {
          "type": "string"
        },
        "OrganizationalUnitDistinguishedName": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "UserName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::Volume": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BackupId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "OntapConfiguration": {
              "$ref": "#/definitions/AWS::FSx::Volume.OntapConfiguration"
            },
            "OpenZFSConfiguration": {
              "$ref": "#/definitions/AWS::FSx::Volume.OpenZFSConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VolumeType": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FSx::Volume"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FSx::Volume.ClientConfigurations": {
      "additionalProperties": false,
      "properties": {
        "Clients": {
          "type": "string"
        },
        "Options": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Clients", "Options"],
      "type": "object"
    },
    "AWS::FSx::Volume.NfsExports": {
      "additionalProperties": false,
      "properties": {
        "ClientConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::Volume.ClientConfigurations"
          },
          "type": "array"
        }
      },
      "required": ["ClientConfigurations"],
      "type": "object"
    },
    "AWS::FSx::Volume.OntapConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CopyTagsToBackups": {
          "type": "string"
        },
        "JunctionPath": {
          "type": "string"
        },
        "OntapVolumeType": {
          "type": "string"
        },
        "SecurityStyle": {
          "type": "string"
        },
        "SizeInMegabytes": {
          "type": "string"
        },
        "SnapshotPolicy": {
          "type": "string"
        },
        "StorageEfficiencyEnabled": {
          "type": "string"
        },
        "StorageVirtualMachineId": {
          "type": "string"
        },
        "TieringPolicy": {
          "$ref": "#/definitions/AWS::FSx::Volume.TieringPolicy"
        }
      },
      "required": ["SizeInMegabytes", "StorageVirtualMachineId"],
      "type": "object"
    },
    "AWS::FSx::Volume.OpenZFSConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CopyTagsToSnapshots": {
          "type": "boolean"
        },
        "DataCompressionType": {
          "type": "string"
        },
        "NfsExports": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::Volume.NfsExports"
          },
          "type": "array"
        },
        "Options": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OriginSnapshot": {
          "$ref": "#/definitions/AWS::FSx::Volume.OriginSnapshot"
        },
        "ParentVolumeId": {
          "type": "string"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "RecordSizeKiB": {
          "type": "number"
        },
        "StorageCapacityQuotaGiB": {
          "type": "number"
        },
        "StorageCapacityReservationGiB": {
          "type": "number"
        },
        "UserAndGroupQuotas": {
          "items": {
            "$ref": "#/definitions/AWS::FSx::Volume.UserAndGroupQuotas"
          },
          "type": "array"
        }
      },
      "required": ["ParentVolumeId"],
      "type": "object"
    },
    "AWS::FSx::Volume.OriginSnapshot": {
      "additionalProperties": false,
      "properties": {
        "CopyStrategy": {
          "type": "string"
        },
        "SnapshotARN": {
          "type": "string"
        }
      },
      "required": ["CopyStrategy", "SnapshotARN"],
      "type": "object"
    },
    "AWS::FSx::Volume.TieringPolicy": {
      "additionalProperties": false,
      "properties": {
        "CoolingPeriod": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FSx::Volume.UserAndGroupQuotas": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "number"
        },
        "StorageCapacityQuotaGiB": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Id", "StorageCapacityQuotaGiB", "Type"],
      "type": "object"
    },
    "AWS::FinSpace::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataBundles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "FederationMode": {
              "type": "string"
            },
            "FederationParameters": {
              "$ref": "#/definitions/AWS::FinSpace::Environment.FederationParameters"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SuperuserParameters": {
              "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FinSpace::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FinSpace::Environment.FederationParameters": {
      "additionalProperties": false,
      "properties": {
        "ApplicationCallBackURL": {
          "type": "string"
        },
        "AttributeMap": {
          "type": "object"
        },
        "FederationProviderName": {
          "type": "string"
        },
        "FederationURN": {
          "type": "string"
        },
        "SamlMetadataDocument": {
          "type": "string"
        },
        "SamlMetadataURL": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FinSpace::Environment.SuperuserParameters": {
      "additionalProperties": false,
      "properties": {
        "EmailAddress": {
          "type": "string"
        },
        "FirstName": {
          "type": "string"
        },
        "LastName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Forecast::Dataset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataFrequency": {
              "type": "string"
            },
            "DatasetName": {
              "type": "string"
            },
            "DatasetType": {
              "type": "string"
            },
            "Domain": {
              "type": "string"
            },
            "EncryptionConfig": {
              "$ref": "#/definitions/AWS::Forecast::Dataset.EncryptionConfig"
            },
            "Schema": {
              "$ref": "#/definitions/AWS::Forecast::Dataset.Schema"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::Forecast::Dataset.TagsItems"
              },
              "type": "array"
            }
          },
          "required": ["DatasetName", "DatasetType", "Domain", "Schema"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Forecast::Dataset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Forecast::Dataset.AttributesItems": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "AttributeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Forecast::Dataset.EncryptionConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyArn": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Forecast::Dataset.Schema": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "$ref": "#/definitions/AWS::Forecast::Dataset.AttributesItems"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Forecast::Dataset.TagsItems": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Forecast::DatasetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatasetArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DatasetGroupName": {
              "type": "string"
            },
            "Domain": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DatasetGroupName", "Domain"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Forecast::DatasetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::Detector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociatedModels": {
              "items": {
                "$ref": "#/definitions/AWS::FraudDetector::Detector.Model"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "DetectorId": {
              "type": "string"
            },
            "DetectorVersionStatus": {
              "type": "string"
            },
            "EventType": {
              "$ref": "#/definitions/AWS::FraudDetector::Detector.EventType"
            },
            "RuleExecutionMode": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::FraudDetector::Detector.Rule"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DetectorId", "EventType", "Rules"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::Detector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::Detector.EntityType": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.EventType": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "EntityTypes": {
          "items": {
            "$ref": "#/definitions/AWS::FraudDetector::Detector.EntityType"
          },
          "type": "array"
        },
        "EventVariables": {
          "items": {
            "$ref": "#/definitions/AWS::FraudDetector::Detector.EventVariable"
          },
          "type": "array"
        },
        "Inline": {
          "type": "boolean"
        },
        "Labels": {
          "items": {
            "$ref": "#/definitions/AWS::FraudDetector::Detector.Label"
          },
          "type": "array"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.EventVariable": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "DataSource": {
          "type": "string"
        },
        "DataType": {
          "type": "string"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "VariableType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.Label": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.Model": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.Outcome": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Detector.Rule": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "DetectorId": {
          "type": "string"
        },
        "Expression": {
          "type": "string"
        },
        "Language": {
          "type": "string"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Outcomes": {
          "items": {
            "$ref": "#/definitions/AWS::FraudDetector::Detector.Outcome"
          },
          "type": "array"
        },
        "RuleId": {
          "type": "string"
        },
        "RuleVersion": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::EntityType": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::EntityType"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::EventType": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EntityTypes": {
              "items": {
                "$ref": "#/definitions/AWS::FraudDetector::EventType.EntityType"
              },
              "type": "array"
            },
            "EventVariables": {
              "items": {
                "$ref": "#/definitions/AWS::FraudDetector::EventType.EventVariable"
              },
              "type": "array"
            },
            "Labels": {
              "items": {
                "$ref": "#/definitions/AWS::FraudDetector::EventType.Label"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["EntityTypes", "EventVariables", "Labels", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::EventType"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::EventType.EntityType": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::EventType.EventVariable": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "DataSource": {
          "type": "string"
        },
        "DataType": {
          "type": "string"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "VariableType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::EventType.Label": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Inline": {
          "type": "boolean"
        },
        "LastUpdatedTime": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::FraudDetector::Label": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::Label"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::Outcome": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::Outcome"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::FraudDetector::Variable": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataSource": {
              "type": "string"
            },
            "DataType": {
              "type": "string"
            },
            "DefaultValue": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VariableType": {
              "type": "string"
            }
          },
          "required": ["DataSource", "DataType", "DefaultValue", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::FraudDetector::Variable"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::Alias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoutingStrategy": {
              "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy"
            }
          },
          "required": ["Name", "RoutingStrategy"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::Alias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::Alias.RoutingStrategy": {
      "additionalProperties": false,
      "properties": {
        "FleetId": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::GameLift::Build": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "OperatingSystem": {
              "type": "string"
            },
            "StorageLocation": {
              "$ref": "#/definitions/AWS::GameLift::Build.StorageLocation"
            },
            "Version": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::Build"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::GameLift::Build.StorageLocation": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "ObjectVersion": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key", "RoleArn"],
      "type": "object"
    },
    "AWS::GameLift::Fleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AnywhereConfiguration": {
              "$ref": "#/definitions/AWS::GameLift::Fleet.AnywhereConfiguration"
            },
            "BuildId": {
              "type": "string"
            },
            "CertificateConfiguration": {
              "$ref": "#/definitions/AWS::GameLift::Fleet.CertificateConfiguration"
            },
            "ComputeType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DesiredEC2Instances": {
              "type": "number"
            },
            "EC2InboundPermissions": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission"
              },
              "type": "array"
            },
            "EC2InstanceType": {
              "type": "string"
            },
            "FleetType": {
              "type": "string"
            },
            "InstanceRoleARN": {
              "type": "string"
            },
            "Locations": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::Fleet.LocationConfiguration"
              },
              "type": "array"
            },
            "MaxSize": {
              "type": "number"
            },
            "MetricGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MinSize": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "NewGameSessionProtectionPolicy": {
              "type": "string"
            },
            "PeerVpcAwsAccountId": {
              "type": "string"
            },
            "PeerVpcId": {
              "type": "string"
            },
            "ResourceCreationLimitPolicy": {
              "$ref": "#/definitions/AWS::GameLift::Fleet.ResourceCreationLimitPolicy"
            },
            "RuntimeConfiguration": {
              "$ref": "#/definitions/AWS::GameLift::Fleet.RuntimeConfiguration"
            },
            "ScriptId": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::Fleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.AnywhereConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "string"
        }
      },
      "required": ["Cost"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.CertificateConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CertificateType": {
          "type": "string"
        }
      },
      "required": ["CertificateType"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.IpPermission": {
      "additionalProperties": false,
      "properties": {
        "FromPort": {
          "type": "number"
        },
        "IpRange": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["FromPort", "IpRange", "Protocol", "ToPort"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.LocationCapacity": {
      "additionalProperties": false,
      "properties": {
        "DesiredEC2Instances": {
          "type": "number"
        },
        "MaxSize": {
          "type": "number"
        },
        "MinSize": {
          "type": "number"
        }
      },
      "required": ["DesiredEC2Instances", "MaxSize", "MinSize"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.LocationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Location": {
          "type": "string"
        },
        "LocationCapacity": {
          "$ref": "#/definitions/AWS::GameLift::Fleet.LocationCapacity"
        }
      },
      "required": ["Location"],
      "type": "object"
    },
    "AWS::GameLift::Fleet.ResourceCreationLimitPolicy": {
      "additionalProperties": false,
      "properties": {
        "NewGameSessionsPerCreator": {
          "type": "number"
        },
        "PolicyPeriodInMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::Fleet.RuntimeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "GameSessionActivationTimeoutSeconds": {
          "type": "number"
        },
        "MaxConcurrentGameSessionActivations": {
          "type": "number"
        },
        "ServerProcesses": {
          "items": {
            "$ref": "#/definitions/AWS::GameLift::Fleet.ServerProcess"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::Fleet.ServerProcess": {
      "additionalProperties": false,
      "properties": {
        "ConcurrentExecutions": {
          "type": "number"
        },
        "LaunchPath": {
          "type": "string"
        },
        "Parameters": {
          "type": "string"
        }
      },
      "required": ["ConcurrentExecutions", "LaunchPath"],
      "type": "object"
    },
    "AWS::GameLift::GameServerGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoScalingPolicy": {
              "$ref": "#/definitions/AWS::GameLift::GameServerGroup.AutoScalingPolicy"
            },
            "BalancingStrategy": {
              "type": "string"
            },
            "DeleteOption": {
              "type": "string"
            },
            "GameServerGroupName": {
              "type": "string"
            },
            "GameServerProtectionPolicy": {
              "type": "string"
            },
            "InstanceDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::GameServerGroup.InstanceDefinition"
              },
              "type": "array"
            },
            "LaunchTemplate": {
              "$ref": "#/definitions/AWS::GameLift::GameServerGroup.LaunchTemplate"
            },
            "MaxSize": {
              "type": "number"
            },
            "MinSize": {
              "type": "number"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcSubnets": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "GameServerGroupName",
            "InstanceDefinitions",
            "LaunchTemplate",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::GameServerGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::GameServerGroup.AutoScalingPolicy": {
      "additionalProperties": false,
      "properties": {
        "EstimatedInstanceWarmup": {
          "type": "number"
        },
        "TargetTrackingConfiguration": {
          "$ref": "#/definitions/AWS::GameLift::GameServerGroup.TargetTrackingConfiguration"
        }
      },
      "required": ["TargetTrackingConfiguration"],
      "type": "object"
    },
    "AWS::GameLift::GameServerGroup.InstanceDefinition": {
      "additionalProperties": false,
      "properties": {
        "InstanceType": {
          "type": "string"
        },
        "WeightedCapacity": {
          "type": "string"
        }
      },
      "required": ["InstanceType"],
      "type": "object"
    },
    "AWS::GameLift::GameServerGroup.LaunchTemplate": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::GameServerGroup.TargetTrackingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TargetValue": {
          "type": "number"
        }
      },
      "required": ["TargetValue"],
      "type": "object"
    },
    "AWS::GameLift::GameSessionQueue": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomEventData": {
              "type": "string"
            },
            "Destinations": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.Destination"
              },
              "type": "array"
            },
            "FilterConfiguration": {
              "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.FilterConfiguration"
            },
            "Name": {
              "type": "string"
            },
            "NotificationTarget": {
              "type": "string"
            },
            "PlayerLatencyPolicies": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy"
              },
              "type": "array"
            },
            "PriorityConfiguration": {
              "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PriorityConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeoutInSeconds": {
              "type": "number"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::GameSessionQueue"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::GameSessionQueue.Destination": {
      "additionalProperties": false,
      "properties": {
        "DestinationArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::GameSessionQueue.FilterConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedLocations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy": {
      "additionalProperties": false,
      "properties": {
        "MaximumIndividualPlayerLatencyMilliseconds": {
          "type": "number"
        },
        "PolicyDurationSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::GameSessionQueue.PriorityConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LocationOrder": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PriorityOrder": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GameLift::Location": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LocationName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["LocationName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::Location"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::MatchmakingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptanceRequired": {
              "type": "boolean"
            },
            "AcceptanceTimeoutSeconds": {
              "type": "number"
            },
            "AdditionalPlayerCount": {
              "type": "number"
            },
            "BackfillMode": {
              "type": "string"
            },
            "CustomEventData": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "FlexMatchMode": {
              "type": "string"
            },
            "GameProperties": {
              "items": {
                "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty"
              },
              "type": "array"
            },
            "GameSessionData": {
              "type": "string"
            },
            "GameSessionQueueArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "NotificationTarget": {
              "type": "string"
            },
            "RequestTimeoutSeconds": {
              "type": "number"
            },
            "RuleSetName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "AcceptanceRequired",
            "Name",
            "RequestTimeoutSeconds",
            "RuleSetName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::MatchmakingConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::MatchmakingConfiguration.GameProperty": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::GameLift::MatchmakingRuleSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "RuleSetBody": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "RuleSetBody"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::MatchmakingRuleSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::Script": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "StorageLocation": {
              "$ref": "#/definitions/AWS::GameLift::Script.S3Location"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Version": {
              "type": "string"
            }
          },
          "required": ["StorageLocation"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GameLift::Script"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GameLift::Script.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "ObjectVersion": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key", "RoleArn"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::Accelerator": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enabled": {
              "type": "boolean"
            },
            "IpAddressType": {
              "type": "string"
            },
            "IpAddresses": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GlobalAccelerator::Accelerator"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::EndpointGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration"
              },
              "type": "array"
            },
            "EndpointGroupRegion": {
              "type": "string"
            },
            "HealthCheckIntervalSeconds": {
              "type": "number"
            },
            "HealthCheckPath": {
              "type": "string"
            },
            "HealthCheckPort": {
              "type": "number"
            },
            "HealthCheckProtocol": {
              "type": "string"
            },
            "ListenerArn": {
              "type": "string"
            },
            "PortOverrides": {
              "items": {
                "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride"
              },
              "type": "array"
            },
            "ThresholdCount": {
              "type": "number"
            },
            "TrafficDialPercentage": {
              "type": "number"
            }
          },
          "required": ["EndpointGroupRegion", "ListenerArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GlobalAccelerator::EndpointGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ClientIPPreservationEnabled": {
          "type": "boolean"
        },
        "EndpointId": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["EndpointId"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::EndpointGroup.PortOverride": {
      "additionalProperties": false,
      "properties": {
        "EndpointPort": {
          "type": "number"
        },
        "ListenerPort": {
          "type": "number"
        }
      },
      "required": ["EndpointPort", "ListenerPort"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::Listener": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceleratorArn": {
              "type": "string"
            },
            "ClientAffinity": {
              "type": "string"
            },
            "PortRanges": {
              "items": {
                "$ref": "#/definitions/AWS::GlobalAccelerator::Listener.PortRange"
              },
              "type": "array"
            },
            "Protocol": {
              "type": "string"
            }
          },
          "required": ["AcceleratorArn", "PortRanges", "Protocol"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GlobalAccelerator::Listener"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GlobalAccelerator::Listener.PortRange": {
      "additionalProperties": false,
      "properties": {
        "FromPort": {
          "type": "number"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["FromPort", "ToPort"],
      "type": "object"
    },
    "AWS::Glue::Classifier": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CsvClassifier": {
              "$ref": "#/definitions/AWS::Glue::Classifier.CsvClassifier"
            },
            "GrokClassifier": {
              "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier"
            },
            "JsonClassifier": {
              "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier"
            },
            "XMLClassifier": {
              "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Classifier"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Glue::Classifier.CsvClassifier": {
      "additionalProperties": false,
      "properties": {
        "AllowSingleColumn": {
          "type": "boolean"
        },
        "ContainsHeader": {
          "type": "string"
        },
        "Delimiter": {
          "type": "string"
        },
        "DisableValueTrimming": {
          "type": "boolean"
        },
        "Header": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "QuoteSymbol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Classifier.GrokClassifier": {
      "additionalProperties": false,
      "properties": {
        "Classification": {
          "type": "string"
        },
        "CustomPatterns": {
          "type": "string"
        },
        "GrokPattern": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Classification", "GrokPattern"],
      "type": "object"
    },
    "AWS::Glue::Classifier.JsonClassifier": {
      "additionalProperties": false,
      "properties": {
        "JsonPath": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["JsonPath"],
      "type": "object"
    },
    "AWS::Glue::Classifier.XMLClassifier": {
      "additionalProperties": false,
      "properties": {
        "Classification": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "RowTag": {
          "type": "string"
        }
      },
      "required": ["Classification", "RowTag"],
      "type": "object"
    },
    "AWS::Glue::Connection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "ConnectionInput": {
              "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput"
            }
          },
          "required": ["CatalogId", "ConnectionInput"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Connection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Connection.ConnectionInput": {
      "additionalProperties": false,
      "properties": {
        "ConnectionProperties": {
          "type": "object"
        },
        "ConnectionType": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "MatchCriteria": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "PhysicalConnectionRequirements": {
          "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements"
        }
      },
      "required": ["ConnectionType"],
      "type": "object"
    },
    "AWS::Glue::Connection.PhysicalConnectionRequirements": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "SecurityGroupIdList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Classifiers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Configuration": {
              "type": "string"
            },
            "CrawlerSecurityConfiguration": {
              "type": "string"
            },
            "DatabaseName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RecrawlPolicy": {
              "$ref": "#/definitions/AWS::Glue::Crawler.RecrawlPolicy"
            },
            "Role": {
              "type": "string"
            },
            "Schedule": {
              "$ref": "#/definitions/AWS::Glue::Crawler.Schedule"
            },
            "SchemaChangePolicy": {
              "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy"
            },
            "TablePrefix": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "Targets": {
              "$ref": "#/definitions/AWS::Glue::Crawler.Targets"
            }
          },
          "required": ["Role", "Targets"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Crawler"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Crawler.CatalogTarget": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "Tables": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.DynamoDBTarget": {
      "additionalProperties": false,
      "properties": {
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.JdbcTarget": {
      "additionalProperties": false,
      "properties": {
        "ConnectionName": {
          "type": "string"
        },
        "Exclusions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.MongoDBTarget": {
      "additionalProperties": false,
      "properties": {
        "ConnectionName": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.RecrawlPolicy": {
      "additionalProperties": false,
      "properties": {
        "RecrawlBehavior": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.S3Target": {
      "additionalProperties": false,
      "properties": {
        "ConnectionName": {
          "type": "string"
        },
        "DlqEventQueueArn": {
          "type": "string"
        },
        "EventQueueArn": {
          "type": "string"
        },
        "Exclusions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Path": {
          "type": "string"
        },
        "SampleSize": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.Schedule": {
      "additionalProperties": false,
      "properties": {
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.SchemaChangePolicy": {
      "additionalProperties": false,
      "properties": {
        "DeleteBehavior": {
          "type": "string"
        },
        "UpdateBehavior": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Crawler.Targets": {
      "additionalProperties": false,
      "properties": {
        "CatalogTargets": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Crawler.CatalogTarget"
          },
          "type": "array"
        },
        "DynamoDBTargets": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Crawler.DynamoDBTarget"
          },
          "type": "array"
        },
        "JdbcTargets": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget"
          },
          "type": "array"
        },
        "MongoDBTargets": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Crawler.MongoDBTarget"
          },
          "type": "array"
        },
        "S3Targets": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Crawler.S3Target"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::DataCatalogEncryptionSettings": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "DataCatalogEncryptionSettings": {
              "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings"
            }
          },
          "required": ["CatalogId", "DataCatalogEncryptionSettings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::DataCatalogEncryptionSettings"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "ReturnConnectionPasswordEncrypted": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings": {
      "additionalProperties": false,
      "properties": {
        "ConnectionPasswordEncryption": {
          "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption"
        },
        "EncryptionAtRest": {
          "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest"
        }
      },
      "type": "object"
    },
    "AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest": {
      "additionalProperties": false,
      "properties": {
        "CatalogEncryptionMode": {
          "type": "string"
        },
        "SseAwsKmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Database": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "DatabaseInput": {
              "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput"
            }
          },
          "required": ["CatalogId", "DatabaseInput"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Database"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Database.DataLakePrincipal": {
      "additionalProperties": false,
      "properties": {
        "DataLakePrincipalIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Database.DatabaseIdentifier": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Database.DatabaseInput": {
      "additionalProperties": false,
      "properties": {
        "CreateTableDefaultPermissions": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "LocationUri": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "TargetDatabase": {
          "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Database.PrincipalPrivileges": {
      "additionalProperties": false,
      "properties": {
        "Permissions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal"
        }
      },
      "type": "object"
    },
    "AWS::Glue::DevEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Arguments": {
              "type": "object"
            },
            "EndpointName": {
              "type": "string"
            },
            "ExtraJarsS3Path": {
              "type": "string"
            },
            "ExtraPythonLibsS3Path": {
              "type": "string"
            },
            "GlueVersion": {
              "type": "string"
            },
            "NumberOfNodes": {
              "type": "number"
            },
            "NumberOfWorkers": {
              "type": "number"
            },
            "PublicKey": {
              "type": "string"
            },
            "PublicKeys": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RoleArn": {
              "type": "string"
            },
            "SecurityConfiguration": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "WorkerType": {
              "type": "string"
            }
          },
          "required": ["RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::DevEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Job": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocatedCapacity": {
              "type": "number"
            },
            "Command": {
              "$ref": "#/definitions/AWS::Glue::Job.JobCommand"
            },
            "Connections": {
              "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList"
            },
            "DefaultArguments": {
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "ExecutionClass": {
              "type": "string"
            },
            "ExecutionProperty": {
              "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty"
            },
            "GlueVersion": {
              "type": "string"
            },
            "LogUri": {
              "type": "string"
            },
            "MaxCapacity": {
              "type": "number"
            },
            "MaxRetries": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "NonOverridableArguments": {
              "type": "object"
            },
            "NotificationProperty": {
              "$ref": "#/definitions/AWS::Glue::Job.NotificationProperty"
            },
            "NumberOfWorkers": {
              "type": "number"
            },
            "Role": {
              "type": "string"
            },
            "SecurityConfiguration": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "Timeout": {
              "type": "number"
            },
            "WorkerType": {
              "type": "string"
            }
          },
          "required": ["Command", "Role"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Job"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Job.ConnectionsList": {
      "additionalProperties": false,
      "properties": {
        "Connections": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Job.ExecutionProperty": {
      "additionalProperties": false,
      "properties": {
        "MaxConcurrentRuns": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Job.JobCommand": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "PythonVersion": {
          "type": "string"
        },
        "ScriptLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Job.NotificationProperty": {
      "additionalProperties": false,
      "properties": {
        "NotifyDelayAfter": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::MLTransform": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GlueVersion": {
              "type": "string"
            },
            "InputRecordTables": {
              "$ref": "#/definitions/AWS::Glue::MLTransform.InputRecordTables"
            },
            "MaxCapacity": {
              "type": "number"
            },
            "MaxRetries": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "NumberOfWorkers": {
              "type": "number"
            },
            "Role": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "Timeout": {
              "type": "number"
            },
            "TransformEncryption": {
              "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption"
            },
            "TransformParameters": {
              "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters"
            },
            "WorkerType": {
              "type": "string"
            }
          },
          "required": ["InputRecordTables", "Role", "TransformParameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::MLTransform"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::MLTransform.FindMatchesParameters": {
      "additionalProperties": false,
      "properties": {
        "AccuracyCostTradeoff": {
          "type": "number"
        },
        "EnforceProvidedLabels": {
          "type": "boolean"
        },
        "PrecisionRecallTradeoff": {
          "type": "number"
        },
        "PrimaryKeyColumnName": {
          "type": "string"
        }
      },
      "required": ["PrimaryKeyColumnName"],
      "type": "object"
    },
    "AWS::Glue::MLTransform.GlueTables": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "ConnectionName": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["DatabaseName", "TableName"],
      "type": "object"
    },
    "AWS::Glue::MLTransform.InputRecordTables": {
      "additionalProperties": false,
      "properties": {
        "GlueTables": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::MLTransform.GlueTables"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::MLTransform.MLUserDataEncryption": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MLUserDataEncryptionMode": {
          "type": "string"
        }
      },
      "required": ["MLUserDataEncryptionMode"],
      "type": "object"
    },
    "AWS::Glue::MLTransform.TransformEncryption": {
      "additionalProperties": false,
      "properties": {
        "MLUserDataEncryption": {
          "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption"
        },
        "TaskRunSecurityConfigurationName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::MLTransform.TransformParameters": {
      "additionalProperties": false,
      "properties": {
        "FindMatchesParameters": {
          "$ref": "#/definitions/AWS::Glue::MLTransform.FindMatchesParameters"
        },
        "TransformType": {
          "type": "string"
        }
      },
      "required": ["TransformType"],
      "type": "object"
    },
    "AWS::Glue::Partition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "DatabaseName": {
              "type": "string"
            },
            "PartitionInput": {
              "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput"
            },
            "TableName": {
              "type": "string"
            }
          },
          "required": [
            "CatalogId",
            "DatabaseName",
            "PartitionInput",
            "TableName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Partition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Partition.Column": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Glue::Partition.Order": {
      "additionalProperties": false,
      "properties": {
        "Column": {
          "type": "string"
        },
        "SortOrder": {
          "type": "number"
        }
      },
      "required": ["Column"],
      "type": "object"
    },
    "AWS::Glue::Partition.PartitionInput": {
      "additionalProperties": false,
      "properties": {
        "Parameters": {
          "type": "object"
        },
        "StorageDescriptor": {
          "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Values"],
      "type": "object"
    },
    "AWS::Glue::Partition.SchemaId": {
      "additionalProperties": false,
      "properties": {
        "RegistryName": {
          "type": "string"
        },
        "SchemaArn": {
          "type": "string"
        },
        "SchemaName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Partition.SchemaReference": {
      "additionalProperties": false,
      "properties": {
        "SchemaId": {
          "$ref": "#/definitions/AWS::Glue::Partition.SchemaId"
        },
        "SchemaVersionId": {
          "type": "string"
        },
        "SchemaVersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Partition.SerdeInfo": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "SerializationLibrary": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Partition.SkewedInfo": {
      "additionalProperties": false,
      "properties": {
        "SkewedColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SkewedColumnValueLocationMaps": {
          "type": "object"
        },
        "SkewedColumnValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Partition.StorageDescriptor": {
      "additionalProperties": false,
      "properties": {
        "BucketColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Columns": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Partition.Column"
          },
          "type": "array"
        },
        "Compressed": {
          "type": "boolean"
        },
        "InputFormat": {
          "type": "string"
        },
        "Location": {
          "type": "string"
        },
        "NumberOfBuckets": {
          "type": "number"
        },
        "OutputFormat": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "SchemaReference": {
          "$ref": "#/definitions/AWS::Glue::Partition.SchemaReference"
        },
        "SerdeInfo": {
          "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo"
        },
        "SkewedInfo": {
          "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo"
        },
        "SortColumns": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Partition.Order"
          },
          "type": "array"
        },
        "StoredAsSubDirectories": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Registry": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Registry"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Schema": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CheckpointVersion": {
              "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion"
            },
            "Compatibility": {
              "type": "string"
            },
            "DataFormat": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Registry": {
              "$ref": "#/definitions/AWS::Glue::Schema.Registry"
            },
            "SchemaDefinition": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "Compatibility",
            "DataFormat",
            "Name",
            "SchemaDefinition"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Schema"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Schema.Registry": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Schema.SchemaVersion": {
      "additionalProperties": false,
      "properties": {
        "IsLatest": {
          "type": "boolean"
        },
        "VersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SchemaVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Schema": {
              "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema"
            },
            "SchemaDefinition": {
              "type": "string"
            }
          },
          "required": ["Schema", "SchemaDefinition"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::SchemaVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::SchemaVersion.Schema": {
      "additionalProperties": false,
      "properties": {
        "RegistryName": {
          "type": "string"
        },
        "SchemaArn": {
          "type": "string"
        },
        "SchemaName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SchemaVersionMetadata": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Key": {
              "type": "string"
            },
            "SchemaVersionId": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          },
          "required": ["Key", "SchemaVersionId", "Value"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::SchemaVersionMetadata"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EncryptionConfiguration": {
              "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.EncryptionConfiguration"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["EncryptionConfiguration", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::SecurityConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration.CloudWatchEncryption": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchEncryptionMode": {
          "type": "string"
        },
        "KmsKeyArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchEncryption": {
          "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.CloudWatchEncryption"
        },
        "JobBookmarksEncryption": {
          "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.JobBookmarksEncryption"
        },
        "S3Encryptions": {
          "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.S3Encryptions"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration.JobBookmarksEncryption": {
      "additionalProperties": false,
      "properties": {
        "JobBookmarksEncryptionMode": {
          "type": "string"
        },
        "KmsKeyArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration.S3Encryption": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyArn": {
          "type": "string"
        },
        "S3EncryptionMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::SecurityConfiguration.S3Encryptions": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::Glue::Table": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "DatabaseName": {
              "type": "string"
            },
            "TableInput": {
              "$ref": "#/definitions/AWS::Glue::Table.TableInput"
            }
          },
          "required": ["CatalogId", "DatabaseName", "TableInput"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Table"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Table.Column": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Glue::Table.Order": {
      "additionalProperties": false,
      "properties": {
        "Column": {
          "type": "string"
        },
        "SortOrder": {
          "type": "number"
        }
      },
      "required": ["Column", "SortOrder"],
      "type": "object"
    },
    "AWS::Glue::Table.SchemaId": {
      "additionalProperties": false,
      "properties": {
        "RegistryName": {
          "type": "string"
        },
        "SchemaArn": {
          "type": "string"
        },
        "SchemaName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.SchemaReference": {
      "additionalProperties": false,
      "properties": {
        "SchemaId": {
          "$ref": "#/definitions/AWS::Glue::Table.SchemaId"
        },
        "SchemaVersionId": {
          "type": "string"
        },
        "SchemaVersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.SerdeInfo": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "SerializationLibrary": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.SkewedInfo": {
      "additionalProperties": false,
      "properties": {
        "SkewedColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SkewedColumnValueLocationMaps": {
          "type": "object"
        },
        "SkewedColumnValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.StorageDescriptor": {
      "additionalProperties": false,
      "properties": {
        "BucketColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Columns": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Table.Column"
          },
          "type": "array"
        },
        "Compressed": {
          "type": "boolean"
        },
        "InputFormat": {
          "type": "string"
        },
        "Location": {
          "type": "string"
        },
        "NumberOfBuckets": {
          "type": "number"
        },
        "OutputFormat": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "SchemaReference": {
          "$ref": "#/definitions/AWS::Glue::Table.SchemaReference"
        },
        "SerdeInfo": {
          "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo"
        },
        "SkewedInfo": {
          "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo"
        },
        "SortColumns": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Table.Order"
          },
          "type": "array"
        },
        "StoredAsSubDirectories": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.TableIdentifier": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Table.TableInput": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Owner": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "PartitionKeys": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Table.Column"
          },
          "type": "array"
        },
        "Retention": {
          "type": "number"
        },
        "StorageDescriptor": {
          "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor"
        },
        "TableType": {
          "type": "string"
        },
        "TargetTable": {
          "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier"
        },
        "ViewExpandedText": {
          "type": "string"
        },
        "ViewOriginalText": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Trigger": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "items": {
                "$ref": "#/definitions/AWS::Glue::Trigger.Action"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "EventBatchingCondition": {
              "$ref": "#/definitions/AWS::Glue::Trigger.EventBatchingCondition"
            },
            "Name": {
              "type": "string"
            },
            "Predicate": {
              "$ref": "#/definitions/AWS::Glue::Trigger.Predicate"
            },
            "Schedule": {
              "type": "string"
            },
            "StartOnCreation": {
              "type": "boolean"
            },
            "Tags": {
              "type": "object"
            },
            "Type": {
              "type": "string"
            },
            "WorkflowName": {
              "type": "string"
            }
          },
          "required": ["Actions", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Trigger"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Glue::Trigger.Action": {
      "additionalProperties": false,
      "properties": {
        "Arguments": {
          "type": "object"
        },
        "CrawlerName": {
          "type": "string"
        },
        "JobName": {
          "type": "string"
        },
        "NotificationProperty": {
          "$ref": "#/definitions/AWS::Glue::Trigger.NotificationProperty"
        },
        "SecurityConfiguration": {
          "type": "string"
        },
        "Timeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Trigger.Condition": {
      "additionalProperties": false,
      "properties": {
        "CrawlState": {
          "type": "string"
        },
        "CrawlerName": {
          "type": "string"
        },
        "JobName": {
          "type": "string"
        },
        "LogicalOperator": {
          "type": "string"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Trigger.EventBatchingCondition": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "BatchWindow": {
          "type": "number"
        }
      },
      "required": ["BatchSize"],
      "type": "object"
    },
    "AWS::Glue::Trigger.NotificationProperty": {
      "additionalProperties": false,
      "properties": {
        "NotifyDelayAfter": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Trigger.Predicate": {
      "additionalProperties": false,
      "properties": {
        "Conditions": {
          "items": {
            "$ref": "#/definitions/AWS::Glue::Trigger.Condition"
          },
          "type": "array"
        },
        "Logical": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Glue::Workflow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultRunProperties": {
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "MaxConcurrentRuns": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Glue::Workflow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Grafana::Workspace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountAccessType": {
              "type": "string"
            },
            "AuthenticationProviders": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClientToken": {
              "type": "string"
            },
            "DataSources": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "NotificationDestinations": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "OrganizationRoleName": {
              "type": "string"
            },
            "OrganizationalUnits": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PermissionType": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "SamlConfiguration": {
              "$ref": "#/definitions/AWS::Grafana::Workspace.SamlConfiguration"
            },
            "StackSetName": {
              "type": "string"
            },
            "VpcConfiguration": {
              "$ref": "#/definitions/AWS::Grafana::Workspace.VpcConfiguration"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Grafana::Workspace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Grafana::Workspace.AssertionAttributes": {
      "additionalProperties": false,
      "properties": {
        "Email": {
          "type": "string"
        },
        "Groups": {
          "type": "string"
        },
        "Login": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Org": {
          "type": "string"
        },
        "Role": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Grafana::Workspace.IdpMetadata": {
      "additionalProperties": false,
      "properties": {
        "Url": {
          "type": "string"
        },
        "Xml": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Grafana::Workspace.RoleValues": {
      "additionalProperties": false,
      "properties": {
        "Admin": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Editor": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Grafana::Workspace.SamlConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedOrganizations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AssertionAttributes": {
          "$ref": "#/definitions/AWS::Grafana::Workspace.AssertionAttributes"
        },
        "IdpMetadata": {
          "$ref": "#/definitions/AWS::Grafana::Workspace.IdpMetadata"
        },
        "LoginValidityDuration": {
          "type": "number"
        },
        "RoleValues": {
          "$ref": "#/definitions/AWS::Grafana::Workspace.RoleValues"
        }
      },
      "required": ["IdpMetadata"],
      "type": "object"
    },
    "AWS::Grafana::Workspace.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "SubnetIds"],
      "type": "object"
    },
    "AWS::Greengrass::ConnectorDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::ConnectorDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::ConnectorDefinition.Connector": {
      "additionalProperties": false,
      "properties": {
        "ConnectorArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        }
      },
      "required": ["ConnectorArn", "Id"],
      "type": "object"
    },
    "AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Connectors": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.Connector"
          },
          "type": "array"
        }
      },
      "required": ["Connectors"],
      "type": "object"
    },
    "AWS::Greengrass::ConnectorDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectorDefinitionId": {
              "type": "string"
            },
            "Connectors": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion.Connector"
              },
              "type": "array"
            }
          },
          "required": ["ConnectorDefinitionId", "Connectors"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::ConnectorDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::ConnectorDefinitionVersion.Connector": {
      "additionalProperties": false,
      "properties": {
        "ConnectorArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        }
      },
      "required": ["ConnectorArn", "Id"],
      "type": "object"
    },
    "AWS::Greengrass::CoreDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.CoreDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::CoreDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::CoreDefinition.Core": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "SyncShadow": {
          "type": "boolean"
        },
        "ThingArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn", "Id", "ThingArn"],
      "type": "object"
    },
    "AWS::Greengrass::CoreDefinition.CoreDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Cores": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.Core"
          },
          "type": "array"
        }
      },
      "required": ["Cores"],
      "type": "object"
    },
    "AWS::Greengrass::CoreDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CoreDefinitionId": {
              "type": "string"
            },
            "Cores": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion.Core"
              },
              "type": "array"
            }
          },
          "required": ["CoreDefinitionId", "Cores"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::CoreDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::CoreDefinitionVersion.Core": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "SyncShadow": {
          "type": "boolean"
        },
        "ThingArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn", "Id", "ThingArn"],
      "type": "object"
    },
    "AWS::Greengrass::DeviceDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::DeviceDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::DeviceDefinition.Device": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "SyncShadow": {
          "type": "boolean"
        },
        "ThingArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn", "Id", "ThingArn"],
      "type": "object"
    },
    "AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Devices": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.Device"
          },
          "type": "array"
        }
      },
      "required": ["Devices"],
      "type": "object"
    },
    "AWS::Greengrass::DeviceDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeviceDefinitionId": {
              "type": "string"
            },
            "Devices": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion.Device"
              },
              "type": "array"
            }
          },
          "required": ["DeviceDefinitionId", "Devices"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::DeviceDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::DeviceDefinitionVersion.Device": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "SyncShadow": {
          "type": "boolean"
        },
        "ThingArn": {
          "type": "string"
        }
      },
      "required": ["CertificateArn", "Id", "ThingArn"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::FunctionDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.DefaultConfig": {
      "additionalProperties": false,
      "properties": {
        "Execution": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution"
        }
      },
      "required": ["Execution"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.Environment": {
      "additionalProperties": false,
      "properties": {
        "AccessSysfs": {
          "type": "boolean"
        },
        "Execution": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution"
        },
        "ResourceAccessPolicies": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy"
          },
          "type": "array"
        },
        "Variables": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.Execution": {
      "additionalProperties": false,
      "properties": {
        "IsolationMode": {
          "type": "string"
        },
        "RunAs": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.RunAs"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.Function": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "FunctionConfiguration": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionConfiguration"
        },
        "Id": {
          "type": "string"
        }
      },
      "required": ["FunctionArn", "FunctionConfiguration", "Id"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.FunctionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EncodingType": {
          "type": "string"
        },
        "Environment": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Environment"
        },
        "ExecArgs": {
          "type": "string"
        },
        "Executable": {
          "type": "string"
        },
        "MemorySize": {
          "type": "number"
        },
        "Pinned": {
          "type": "boolean"
        },
        "Timeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "DefaultConfig": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.DefaultConfig"
        },
        "Functions": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Function"
          },
          "type": "array"
        }
      },
      "required": ["Functions"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy": {
      "additionalProperties": false,
      "properties": {
        "Permission": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        }
      },
      "required": ["ResourceId"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinition.RunAs": {
      "additionalProperties": false,
      "properties": {
        "Gid": {
          "type": "number"
        },
        "Uid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultConfig": {
              "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig"
            },
            "FunctionDefinitionId": {
              "type": "string"
            },
            "Functions": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Function"
              },
              "type": "array"
            }
          },
          "required": ["FunctionDefinitionId", "Functions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::FunctionDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig": {
      "additionalProperties": false,
      "properties": {
        "Execution": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution"
        }
      },
      "required": ["Execution"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.Environment": {
      "additionalProperties": false,
      "properties": {
        "AccessSysfs": {
          "type": "boolean"
        },
        "Execution": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution"
        },
        "ResourceAccessPolicies": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy"
          },
          "type": "array"
        },
        "Variables": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.Execution": {
      "additionalProperties": false,
      "properties": {
        "IsolationMode": {
          "type": "string"
        },
        "RunAs": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.RunAs"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.Function": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "FunctionConfiguration": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration"
        },
        "Id": {
          "type": "string"
        }
      },
      "required": ["FunctionArn", "FunctionConfiguration", "Id"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EncodingType": {
          "type": "string"
        },
        "Environment": {
          "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Environment"
        },
        "ExecArgs": {
          "type": "string"
        },
        "Executable": {
          "type": "string"
        },
        "MemorySize": {
          "type": "number"
        },
        "Pinned": {
          "type": "boolean"
        },
        "Timeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy": {
      "additionalProperties": false,
      "properties": {
        "Permission": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        }
      },
      "required": ["ResourceId"],
      "type": "object"
    },
    "AWS::Greengrass::FunctionDefinitionVersion.RunAs": {
      "additionalProperties": false,
      "properties": {
        "Gid": {
          "type": "number"
        },
        "Uid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::Group.GroupVersion"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::Group.GroupVersion": {
      "additionalProperties": false,
      "properties": {
        "ConnectorDefinitionVersionArn": {
          "type": "string"
        },
        "CoreDefinitionVersionArn": {
          "type": "string"
        },
        "DeviceDefinitionVersionArn": {
          "type": "string"
        },
        "FunctionDefinitionVersionArn": {
          "type": "string"
        },
        "LoggerDefinitionVersionArn": {
          "type": "string"
        },
        "ResourceDefinitionVersionArn": {
          "type": "string"
        },
        "SubscriptionDefinitionVersionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::GroupVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectorDefinitionVersionArn": {
              "type": "string"
            },
            "CoreDefinitionVersionArn": {
              "type": "string"
            },
            "DeviceDefinitionVersionArn": {
              "type": "string"
            },
            "FunctionDefinitionVersionArn": {
              "type": "string"
            },
            "GroupId": {
              "type": "string"
            },
            "LoggerDefinitionVersionArn": {
              "type": "string"
            },
            "ResourceDefinitionVersionArn": {
              "type": "string"
            },
            "SubscriptionDefinitionVersionArn": {
              "type": "string"
            }
          },
          "required": ["GroupId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::GroupVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::LoggerDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::LoggerDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::LoggerDefinition.Logger": {
      "additionalProperties": false,
      "properties": {
        "Component": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Level": {
          "type": "string"
        },
        "Space": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Component", "Id", "Level", "Type"],
      "type": "object"
    },
    "AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Loggers": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.Logger"
          },
          "type": "array"
        }
      },
      "required": ["Loggers"],
      "type": "object"
    },
    "AWS::Greengrass::LoggerDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LoggerDefinitionId": {
              "type": "string"
            },
            "Loggers": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion.Logger"
              },
              "type": "array"
            }
          },
          "required": ["LoggerDefinitionId", "Loggers"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::LoggerDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::LoggerDefinitionVersion.Logger": {
      "additionalProperties": false,
      "properties": {
        "Component": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Level": {
          "type": "string"
        },
        "Space": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Component", "Id", "Level", "Type"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::ResourceDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.GroupOwnerSetting": {
      "additionalProperties": false,
      "properties": {
        "AutoAddGroupOwner": {
          "type": "boolean"
        },
        "GroupOwner": {
          "type": "string"
        }
      },
      "required": ["AutoAddGroupOwner"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData": {
      "additionalProperties": false,
      "properties": {
        "GroupOwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "required": ["SourcePath"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "GroupOwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "SourcePath"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.ResourceDataContainer": {
      "additionalProperties": false,
      "properties": {
        "LocalDeviceResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData"
        },
        "LocalVolumeResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData"
        },
        "S3MachineLearningModelResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData"
        },
        "SageMakerMachineLearningModelResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData"
        },
        "SecretsManagerSecretResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Resources": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceInstance"
          },
          "type": "array"
        }
      },
      "required": ["Resources"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting": {
      "additionalProperties": false,
      "properties": {
        "GroupOwner": {
          "type": "string"
        },
        "GroupPermission": {
          "type": "string"
        }
      },
      "required": ["GroupOwner", "GroupPermission"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.ResourceInstance": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "ResourceDataContainer": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDataContainer"
        }
      },
      "required": ["Id", "Name", "ResourceDataContainer"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "OwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "S3Uri"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "OwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting"
        },
        "SageMakerJobArn": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "SageMakerJobArn"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData": {
      "additionalProperties": false,
      "properties": {
        "ARN": {
          "type": "string"
        },
        "AdditionalStagingLabelsToDownload": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ARN"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceDefinitionId": {
              "type": "string"
            },
            "Resources": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance"
              },
              "type": "array"
            }
          },
          "required": ["ResourceDefinitionId", "Resources"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::ResourceDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting": {
      "additionalProperties": false,
      "properties": {
        "AutoAddGroupOwner": {
          "type": "boolean"
        },
        "GroupOwner": {
          "type": "string"
        }
      },
      "required": ["AutoAddGroupOwner"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData": {
      "additionalProperties": false,
      "properties": {
        "GroupOwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "required": ["SourcePath"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "GroupOwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "SourcePath"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer": {
      "additionalProperties": false,
      "properties": {
        "LocalDeviceResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData"
        },
        "LocalVolumeResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData"
        },
        "S3MachineLearningModelResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData"
        },
        "SageMakerMachineLearningModelResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData"
        },
        "SecretsManagerSecretResourceData": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData"
        }
      },
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting": {
      "additionalProperties": false,
      "properties": {
        "GroupOwner": {
          "type": "string"
        },
        "GroupPermission": {
          "type": "string"
        }
      },
      "required": ["GroupOwner", "GroupPermission"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "ResourceDataContainer": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer"
        }
      },
      "required": ["Id", "Name", "ResourceDataContainer"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "OwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "S3Uri"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData": {
      "additionalProperties": false,
      "properties": {
        "DestinationPath": {
          "type": "string"
        },
        "OwnerSetting": {
          "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting"
        },
        "SageMakerJobArn": {
          "type": "string"
        }
      },
      "required": ["DestinationPath", "SageMakerJobArn"],
      "type": "object"
    },
    "AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData": {
      "additionalProperties": false,
      "properties": {
        "ARN": {
          "type": "string"
        },
        "AdditionalStagingLabelsToDownload": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ARN"],
      "type": "object"
    },
    "AWS::Greengrass::SubscriptionDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InitialVersion": {
              "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::SubscriptionDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::SubscriptionDefinition.Subscription": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        },
        "Subject": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "required": ["Id", "Source", "Subject", "Target"],
      "type": "object"
    },
    "AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Subscriptions": {
          "items": {
            "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.Subscription"
          },
          "type": "array"
        }
      },
      "required": ["Subscriptions"],
      "type": "object"
    },
    "AWS::Greengrass::SubscriptionDefinitionVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SubscriptionDefinitionId": {
              "type": "string"
            },
            "Subscriptions": {
              "items": {
                "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion.Subscription"
              },
              "type": "array"
            }
          },
          "required": ["SubscriptionDefinitionId", "Subscriptions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Greengrass::SubscriptionDefinitionVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Greengrass::SubscriptionDefinitionVersion.Subscription": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        },
        "Subject": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "required": ["Id", "Source", "Subject", "Target"],
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InlineRecipe": {
              "type": "string"
            },
            "LambdaFunction": {
              "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GreengrassV2::ComponentVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement": {
      "additionalProperties": false,
      "properties": {
        "DependencyType": {
          "type": "string"
        },
        "VersionRequirement": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.ComponentPlatform": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaContainerParams": {
      "additionalProperties": false,
      "properties": {
        "Devices": {
          "items": {
            "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount"
          },
          "type": "array"
        },
        "MemorySizeInKB": {
          "type": "number"
        },
        "MountROSysfs": {
          "type": "boolean"
        },
        "Volumes": {
          "items": {
            "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount": {
      "additionalProperties": false,
      "properties": {
        "AddGroupOwner": {
          "type": "boolean"
        },
        "Path": {
          "type": "string"
        },
        "Permission": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaEventSource": {
      "additionalProperties": false,
      "properties": {
        "Topic": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters": {
      "additionalProperties": false,
      "properties": {
        "EnvironmentVariables": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "EventSources": {
          "items": {
            "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaEventSource"
          },
          "type": "array"
        },
        "ExecArgs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InputPayloadEncodingType": {
          "type": "string"
        },
        "LinuxProcessParams": {
          "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams"
        },
        "MaxIdleTimeInSeconds": {
          "type": "number"
        },
        "MaxInstancesCount": {
          "type": "number"
        },
        "MaxQueueSize": {
          "type": "number"
        },
        "Pinned": {
          "type": "boolean"
        },
        "StatusTimeoutInSeconds": {
          "type": "number"
        },
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource": {
      "additionalProperties": false,
      "properties": {
        "ComponentDependencies": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement"
            }
          },
          "type": "object"
        },
        "ComponentLambdaParameters": {
          "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters"
        },
        "ComponentName": {
          "type": "string"
        },
        "ComponentPlatforms": {
          "items": {
            "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentPlatform"
          },
          "type": "array"
        },
        "ComponentVersion": {
          "type": "string"
        },
        "LambdaArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams": {
      "additionalProperties": false,
      "properties": {
        "ContainerParams": {
          "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaContainerParams"
        },
        "IsolationMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount": {
      "additionalProperties": false,
      "properties": {
        "AddGroupOwner": {
          "type": "boolean"
        },
        "DestinationPath": {
          "type": "string"
        },
        "Permission": {
          "type": "string"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Components": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentDeploymentSpecification"
                }
              },
              "type": "object"
            },
            "DeploymentName": {
              "type": "string"
            },
            "DeploymentPolicies": {
              "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentPolicies"
            },
            "IotJobConfiguration": {
              "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentIoTJobConfiguration"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "TargetArn": {
              "type": "string"
            }
          },
          "required": ["TargetArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GreengrassV2::Deployment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.ComponentConfigurationUpdate": {
      "additionalProperties": false,
      "properties": {
        "Merge": {
          "type": "string"
        },
        "Reset": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.ComponentDeploymentSpecification": {
      "additionalProperties": false,
      "properties": {
        "ComponentVersion": {
          "type": "string"
        },
        "ConfigurationUpdate": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentConfigurationUpdate"
        },
        "RunWith": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentRunWith"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.ComponentRunWith": {
      "additionalProperties": false,
      "properties": {
        "PosixUser": {
          "type": "string"
        },
        "SystemResourceLimits": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.SystemResourceLimits"
        },
        "WindowsUser": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.DeploymentComponentUpdatePolicy": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.DeploymentConfigurationValidationPolicy": {
      "additionalProperties": false,
      "properties": {
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.DeploymentIoTJobConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AbortConfig": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobAbortConfig"
        },
        "JobExecutionsRolloutConfig": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobExecutionsRolloutConfig"
        },
        "TimeoutConfig": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobTimeoutConfig"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.DeploymentPolicies": {
      "additionalProperties": false,
      "properties": {
        "ComponentUpdatePolicy": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentComponentUpdatePolicy"
        },
        "ConfigurationValidationPolicy": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentConfigurationValidationPolicy"
        },
        "FailureHandlingPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobAbortConfig": {
      "additionalProperties": false,
      "properties": {
        "CriteriaList": {
          "items": {
            "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobAbortCriteria"
          },
          "type": "array"
        }
      },
      "required": ["CriteriaList"],
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobAbortCriteria": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "FailureType": {
          "type": "string"
        },
        "MinNumberOfExecutedThings": {
          "type": "number"
        },
        "ThresholdPercentage": {
          "type": "number"
        }
      },
      "required": [
        "Action",
        "FailureType",
        "MinNumberOfExecutedThings",
        "ThresholdPercentage"
      ],
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobExecutionsRolloutConfig": {
      "additionalProperties": false,
      "properties": {
        "ExponentialRate": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobExponentialRolloutRate"
        },
        "MaximumPerMinute": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobExponentialRolloutRate": {
      "additionalProperties": false,
      "properties": {
        "BaseRatePerMinute": {
          "type": "number"
        },
        "IncrementFactor": {
          "type": "number"
        },
        "RateIncreaseCriteria": {
          "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobRateIncreaseCriteria"
        }
      },
      "required": [
        "BaseRatePerMinute",
        "IncrementFactor",
        "RateIncreaseCriteria"
      ],
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobRateIncreaseCriteria": {
      "additionalProperties": false,
      "properties": {
        "NumberOfNotifiedThings": {
          "type": "number"
        },
        "NumberOfSucceededThings": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.IoTJobTimeoutConfig": {
      "additionalProperties": false,
      "properties": {
        "InProgressTimeoutInMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GreengrassV2::Deployment.SystemResourceLimits": {
      "additionalProperties": false,
      "properties": {
        "Cpus": {
          "type": "number"
        },
        "Memory": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigData": {
              "$ref": "#/definitions/AWS::GroundStation::Config.ConfigData"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ConfigData", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GroundStation::Config"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GroundStation::Config.AntennaDownlinkConfig": {
      "additionalProperties": false,
      "properties": {
        "SpectrumConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig": {
      "additionalProperties": false,
      "properties": {
        "DecodeConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.DecodeConfig"
        },
        "DemodulationConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.DemodulationConfig"
        },
        "SpectrumConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.AntennaUplinkConfig": {
      "additionalProperties": false,
      "properties": {
        "SpectrumConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.UplinkSpectrumConfig"
        },
        "TargetEirp": {
          "$ref": "#/definitions/AWS::GroundStation::Config.Eirp"
        },
        "TransmitDisabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.ConfigData": {
      "additionalProperties": false,
      "properties": {
        "AntennaDownlinkConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkConfig"
        },
        "AntennaDownlinkDemodDecodeConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig"
        },
        "AntennaUplinkConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.AntennaUplinkConfig"
        },
        "DataflowEndpointConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.DataflowEndpointConfig"
        },
        "S3RecordingConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.S3RecordingConfig"
        },
        "TrackingConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.TrackingConfig"
        },
        "UplinkEchoConfig": {
          "$ref": "#/definitions/AWS::GroundStation::Config.UplinkEchoConfig"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.DataflowEndpointConfig": {
      "additionalProperties": false,
      "properties": {
        "DataflowEndpointName": {
          "type": "string"
        },
        "DataflowEndpointRegion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.DecodeConfig": {
      "additionalProperties": false,
      "properties": {
        "UnvalidatedJSON": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.DemodulationConfig": {
      "additionalProperties": false,
      "properties": {
        "UnvalidatedJSON": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.Eirp": {
      "additionalProperties": false,
      "properties": {
        "Units": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.Frequency": {
      "additionalProperties": false,
      "properties": {
        "Units": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.FrequencyBandwidth": {
      "additionalProperties": false,
      "properties": {
        "Units": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.S3RecordingConfig": {
      "additionalProperties": false,
      "properties": {
        "BucketArn": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.SpectrumConfig": {
      "additionalProperties": false,
      "properties": {
        "Bandwidth": {
          "$ref": "#/definitions/AWS::GroundStation::Config.FrequencyBandwidth"
        },
        "CenterFrequency": {
          "$ref": "#/definitions/AWS::GroundStation::Config.Frequency"
        },
        "Polarization": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.TrackingConfig": {
      "additionalProperties": false,
      "properties": {
        "Autotrack": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.UplinkEchoConfig": {
      "additionalProperties": false,
      "properties": {
        "AntennaUplinkConfigArn": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::Config.UplinkSpectrumConfig": {
      "additionalProperties": false,
      "properties": {
        "CenterFrequency": {
          "$ref": "#/definitions/AWS::GroundStation::Config.Frequency"
        },
        "Polarization": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::DataflowEndpointGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointDetails": {
              "items": {
                "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.EndpointDetails"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["EndpointDetails"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GroundStation::DataflowEndpointGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SocketAddress"
        },
        "Mtu": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::DataflowEndpointGroup.EndpointDetails": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint"
        },
        "SecurityDetails": {
          "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SecurityDetails"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::DataflowEndpointGroup.SecurityDetails": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::DataflowEndpointGroup.SocketAddress": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::GroundStation::MissionProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContactPostPassDurationSeconds": {
              "type": "number"
            },
            "ContactPrePassDurationSeconds": {
              "type": "number"
            },
            "DataflowEdges": {
              "items": {
                "$ref": "#/definitions/AWS::GroundStation::MissionProfile.DataflowEdge"
              },
              "type": "array"
            },
            "MinimumViableContactDurationSeconds": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TrackingConfigArn": {
              "type": "string"
            }
          },
          "required": [
            "DataflowEdges",
            "MinimumViableContactDurationSeconds",
            "Name",
            "TrackingConfigArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GroundStation::MissionProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GroundStation::MissionProfile.DataflowEdge": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataSources": {
              "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNDataSourceConfigurations"
            },
            "Enable": {
              "type": "boolean"
            },
            "FindingPublishingFrequency": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Enable"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::Detector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNDataSourceConfigurations": {
      "additionalProperties": false,
      "properties": {
        "Kubernetes": {
          "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesConfiguration"
        },
        "MalwareProtection": {
          "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration"
        },
        "S3Logs": {
          "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNS3LogsConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNKubernetesConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuditLogs": {
          "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ScanEc2InstanceWithFindings": {
          "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNScanEc2InstanceWithFindingsConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNS3LogsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Detector.CFNScanEc2InstanceWithFindingsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EbsVolumes": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Filter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DetectorId": {
              "type": "string"
            },
            "FindingCriteria": {
              "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria"
            },
            "Name": {
              "type": "string"
            },
            "Rank": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "Action",
            "Description",
            "DetectorId",
            "FindingCriteria",
            "Name",
            "Rank"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::Filter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GuardDuty::Filter.Condition": {
      "additionalProperties": false,
      "properties": {
        "Eq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Equals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "GreaterThan": {
          "type": "number"
        },
        "GreaterThanOrEqual": {
          "type": "number"
        },
        "Gt": {
          "type": "number"
        },
        "Gte": {
          "type": "number"
        },
        "LessThan": {
          "type": "number"
        },
        "LessThanOrEqual": {
          "type": "number"
        },
        "Lt": {
          "type": "number"
        },
        "Lte": {
          "type": "number"
        },
        "Neq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "NotEquals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::Filter.FindingCriteria": {
      "additionalProperties": false,
      "properties": {
        "Criterion": {
          "type": "object"
        },
        "ItemType": {
          "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition"
        }
      },
      "type": "object"
    },
    "AWS::GuardDuty::IPSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Activate": {
              "type": "boolean"
            },
            "DetectorId": {
              "type": "string"
            },
            "Format": {
              "type": "string"
            },
            "Location": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Activate", "DetectorId", "Format", "Location"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::IPSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GuardDuty::Master": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DetectorId": {
              "type": "string"
            },
            "InvitationId": {
              "type": "string"
            },
            "MasterId": {
              "type": "string"
            }
          },
          "required": ["DetectorId", "MasterId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::Master"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GuardDuty::Member": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DetectorId": {
              "type": "string"
            },
            "DisableEmailNotification": {
              "type": "boolean"
            },
            "Email": {
              "type": "string"
            },
            "MemberId": {
              "type": "string"
            },
            "Message": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            }
          },
          "required": ["DetectorId", "Email", "MemberId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::Member"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::GuardDuty::ThreatIntelSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Activate": {
              "type": "boolean"
            },
            "DetectorId": {
              "type": "string"
            },
            "Format": {
              "type": "string"
            },
            "Location": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Activate", "DetectorId", "Format", "Location"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::GuardDuty::ThreatIntelSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::HealthLake::FHIRDatastore": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatastoreName": {
              "type": "string"
            },
            "DatastoreTypeVersion": {
              "type": "string"
            },
            "PreloadDataConfig": {
              "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig"
            },
            "SseConfiguration": {
              "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DatastoreTypeVersion"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::HealthLake::FHIRDatastore"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::HealthLake::FHIRDatastore.CreatedAt": {
      "additionalProperties": false,
      "properties": {
        "Nanos": {
          "type": "number"
        },
        "Seconds": {
          "type": "string"
        }
      },
      "required": ["Nanos", "Seconds"],
      "type": "object"
    },
    "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": {
      "additionalProperties": false,
      "properties": {
        "CmkType": {
          "type": "string"
        },
        "KmsKeyId": {
          "type": "string"
        }
      },
      "required": ["CmkType"],
      "type": "object"
    },
    "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": {
      "additionalProperties": false,
      "properties": {
        "PreloadDataType": {
          "type": "string"
        }
      },
      "required": ["PreloadDataType"],
      "type": "object"
    },
    "AWS::HealthLake::FHIRDatastore.SseConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsEncryptionConfig": {
          "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig"
        }
      },
      "required": ["KmsEncryptionConfig"],
      "type": "object"
    },
    "AWS::IAM::AccessKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Serial": {
              "type": "number"
            },
            "Status": {
              "type": "string"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::AccessKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupName": {
              "type": "string"
            },
            "ManagedPolicyArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Path": {
              "type": "string"
            },
            "Policies": {
              "items": {
                "$ref": "#/definitions/AWS::IAM::Group.Policy"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IAM::Group.Policy": {
      "additionalProperties": false,
      "properties": {
        "PolicyDocument": {
          "type": "object"
        },
        "PolicyName": {
          "type": "string"
        }
      },
      "required": ["PolicyDocument", "PolicyName"],
      "type": "object"
    },
    "AWS::IAM::InstanceProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InstanceProfileName": {
              "type": "string"
            },
            "Path": {
              "type": "string"
            },
            "Roles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Roles"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::InstanceProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::ManagedPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Groups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ManagedPolicyName": {
              "type": "string"
            },
            "Path": {
              "type": "string"
            },
            "PolicyDocument": {
              "type": "object"
            },
            "Roles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Users": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["PolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::ManagedPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::OIDCProvider": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientIdList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThumbprintList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Url": {
              "type": "string"
            }
          },
          "required": ["ThumbprintList"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::OIDCProvider"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::Policy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Groups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PolicyDocument": {
              "type": "object"
            },
            "PolicyName": {
              "type": "string"
            },
            "Roles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Users": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["PolicyDocument", "PolicyName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::Policy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::Role": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssumeRolePolicyDocument": {
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "ManagedPolicyArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MaxSessionDuration": {
              "type": "number"
            },
            "Path": {
              "type": "string"
            },
            "PermissionsBoundary": {
              "type": "string"
            },
            "Policies": {
              "items": {
                "$ref": "#/definitions/AWS::IAM::Role.Policy"
              },
              "type": "array"
            },
            "RoleName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AssumeRolePolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::Role"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::Role.Policy": {
      "additionalProperties": false,
      "properties": {
        "PolicyDocument": {
          "type": "object"
        },
        "PolicyName": {
          "type": "string"
        }
      },
      "required": ["PolicyDocument", "PolicyName"],
      "type": "object"
    },
    "AWS::IAM::SAMLProvider": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SamlMetadataDocument": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SamlMetadataDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::SAMLProvider"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::ServerCertificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateBody": {
              "type": "string"
            },
            "CertificateChain": {
              "type": "string"
            },
            "Path": {
              "type": "string"
            },
            "PrivateKey": {
              "type": "string"
            },
            "ServerCertificateName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::ServerCertificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IAM::ServiceLinkedRole": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AWSServiceName": {
              "type": "string"
            },
            "CustomSuffix": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            }
          },
          "required": ["AWSServiceName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::ServiceLinkedRole"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Groups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LoginProfile": {
              "$ref": "#/definitions/AWS::IAM::User.LoginProfile"
            },
            "ManagedPolicyArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Path": {
              "type": "string"
            },
            "PermissionsBoundary": {
              "type": "string"
            },
            "Policies": {
              "items": {
                "$ref": "#/definitions/AWS::IAM::User.Policy"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IAM::User.LoginProfile": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "PasswordResetRequired": {
          "type": "boolean"
        }
      },
      "required": ["Password"],
      "type": "object"
    },
    "AWS::IAM::User.Policy": {
      "additionalProperties": false,
      "properties": {
        "PolicyDocument": {
          "type": "object"
        },
        "PolicyName": {
          "type": "string"
        }
      },
      "required": ["PolicyDocument", "PolicyName"],
      "type": "object"
    },
    "AWS::IAM::UserToGroupAddition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupName": {
              "type": "string"
            },
            "Users": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["GroupName", "Users"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::UserToGroupAddition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IAM::VirtualMFADevice": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Path": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Users": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VirtualMfaDeviceName": {
              "type": "string"
            }
          },
          "required": ["Users"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IAM::VirtualMFADevice"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IVS::Channel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Authorized": {
              "type": "boolean"
            },
            "LatencyMode": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RecordingConfigurationArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IVS::Channel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IVS::PlaybackKeyPair": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "PublicKeyMaterial": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IVS::PlaybackKeyPair"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IVS::RecordingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationConfiguration": {
              "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.DestinationConfiguration"
            },
            "Name": {
              "type": "string"
            },
            "RecordingReconnectWindowSeconds": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThumbnailConfiguration": {
              "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.ThumbnailConfiguration"
            }
          },
          "required": ["DestinationConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IVS::RecordingConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IVS::RecordingConfiguration.DestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "S3": {
          "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.S3DestinationConfiguration"
        }
      },
      "required": ["S3"],
      "type": "object"
    },
    "AWS::IVS::RecordingConfiguration.S3DestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::IVS::RecordingConfiguration.ThumbnailConfiguration": {
      "additionalProperties": false,
      "properties": {
        "RecordingMode": {
          "type": "string"
        },
        "TargetIntervalSeconds": {
          "type": "number"
        }
      },
      "required": ["RecordingMode"],
      "type": "object"
    },
    "AWS::IVS::StreamKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ChannelArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ChannelArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IVS::StreamKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IdentityStore::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "IdentityStoreId": {
              "type": "string"
            }
          },
          "required": ["DisplayName", "IdentityStoreId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IdentityStore::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IdentityStore::GroupMembership": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GroupId": {
              "type": "string"
            },
            "IdentityStoreId": {
              "type": "string"
            },
            "MemberId": {
              "$ref": "#/definitions/AWS::IdentityStore::GroupMembership.MemberId"
            }
          },
          "required": ["GroupId", "IdentityStoreId", "MemberId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IdentityStore::GroupMembership"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IdentityStore::GroupMembership.MemberId": {
      "additionalProperties": false,
      "properties": {
        "UserId": {
          "type": "string"
        }
      },
      "required": ["UserId"],
      "type": "object"
    },
    "AWS::ImageBuilder::Component": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ChangeDescription": {
              "type": "string"
            },
            "Data": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Platform": {
              "type": "string"
            },
            "SupportedOsVersions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Uri": {
              "type": "string"
            },
            "Version": {
              "type": "string"
            }
          },
          "required": ["Name", "Platform", "Version"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::Component"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Components": {
              "items": {
                "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration"
              },
              "type": "array"
            },
            "ContainerType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DockerfileTemplateData": {
              "type": "string"
            },
            "DockerfileTemplateUri": {
              "type": "string"
            },
            "ImageOsVersionOverride": {
              "type": "string"
            },
            "InstanceConfiguration": {
              "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ParentImage": {
              "type": "string"
            },
            "PlatformOverride": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "TargetRepository": {
              "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository"
            },
            "Version": {
              "type": "string"
            },
            "WorkingDirectory": {
              "type": "string"
            }
          },
          "required": [
            "Components",
            "ContainerType",
            "Name",
            "ParentImage",
            "TargetRepository",
            "Version"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::ContainerRecipe"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ComponentArn": {
          "type": "string"
        },
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.ComponentParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.ComponentParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "SnapshotId": {
          "type": "string"
        },
        "Throughput": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification"
        },
        "NoDevice": {
          "type": "string"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlockDeviceMappings": {
          "items": {
            "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping"
          },
          "type": "array"
        },
        "Image": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository": {
      "additionalProperties": false,
      "properties": {
        "RepositoryName": {
          "type": "string"
        },
        "Service": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Distributions": {
              "items": {
                "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Distributions", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::DistributionConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AmiTags": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Description": {
          "type": "string"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "LaunchPermissionConfiguration": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchPermissionConfiguration"
        },
        "Name": {
          "type": "string"
        },
        "TargetAccountIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ContainerTags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "TargetRepository": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.TargetContainerRepository"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.Distribution": {
      "additionalProperties": false,
      "properties": {
        "AmiDistributionConfiguration": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration"
        },
        "ContainerDistributionConfiguration": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration"
        },
        "FastLaunchConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchConfiguration"
          },
          "type": "array"
        },
        "LaunchTemplateConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration"
          },
          "type": "array"
        },
        "LicenseConfigurationArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Region": {
          "type": "string"
        }
      },
      "required": ["Region"],
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.FastLaunchConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccountId": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "LaunchTemplate": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchLaunchTemplateSpecification"
        },
        "MaxParallelLaunches": {
          "type": "number"
        },
        "SnapshotConfiguration": {
          "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchSnapshotConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.FastLaunchLaunchTemplateSpecification": {
      "additionalProperties": false,
      "properties": {
        "LaunchTemplateId": {
          "type": "string"
        },
        "LaunchTemplateName": {
          "type": "string"
        },
        "LaunchTemplateVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.FastLaunchSnapshotConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TargetResourceCount": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.LaunchPermissionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "OrganizationArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OrganizationalUnitArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UserGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UserIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccountId": {
          "type": "string"
        },
        "LaunchTemplateId": {
          "type": "string"
        },
        "SetDefaultVersion": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::DistributionConfiguration.TargetContainerRepository": {
      "additionalProperties": false,
      "properties": {
        "RepositoryName": {
          "type": "string"
        },
        "Service": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::Image": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerRecipeArn": {
              "type": "string"
            },
            "DistributionConfigurationArn": {
              "type": "string"
            },
            "EnhancedImageMetadataEnabled": {
              "type": "boolean"
            },
            "ImageRecipeArn": {
              "type": "string"
            },
            "ImageTestsConfiguration": {
              "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration"
            },
            "InfrastructureConfigurationArn": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["InfrastructureConfigurationArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::Image"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::Image.ImageTestsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ImageTestsEnabled": {
          "type": "boolean"
        },
        "TimeoutMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImagePipeline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerRecipeArn": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DistributionConfigurationArn": {
              "type": "string"
            },
            "EnhancedImageMetadataEnabled": {
              "type": "boolean"
            },
            "ImageRecipeArn": {
              "type": "string"
            },
            "ImageTestsConfiguration": {
              "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration"
            },
            "InfrastructureConfigurationArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Schedule": {
              "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["InfrastructureConfigurationArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::ImagePipeline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ImageTestsEnabled": {
          "type": "boolean"
        },
        "TimeoutMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImagePipeline.Schedule": {
      "additionalProperties": false,
      "properties": {
        "PipelineExecutionStartCondition": {
          "type": "string"
        },
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalInstanceConfiguration": {
              "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration"
            },
            "BlockDeviceMappings": {
              "items": {
                "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping"
              },
              "type": "array"
            },
            "Components": {
              "items": {
                "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentConfiguration"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ParentImage": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Version": {
              "type": "string"
            },
            "WorkingDirectory": {
              "type": "string"
            }
          },
          "required": ["Components", "Name", "ParentImage", "Version"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::ImageRecipe"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SystemsManagerAgent": {
          "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent"
        },
        "UserDataOverride": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ComponentArn": {
          "type": "string"
        },
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.ComponentParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "SnapshotId": {
          "type": "string"
        },
        "Throughput": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification"
        },
        "NoDevice": {
          "type": "string"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent": {
      "additionalProperties": false,
      "properties": {
        "UninstallAfterBuild": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::InfrastructureConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "InstanceMetadataOptions": {
              "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions"
            },
            "InstanceProfileName": {
              "type": "string"
            },
            "InstanceTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "KeyPair": {
              "type": "string"
            },
            "Logging": {
              "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging"
            },
            "Name": {
              "type": "string"
            },
            "ResourceTags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnsTopicArn": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "TerminateInstanceOnFailure": {
              "type": "boolean"
            }
          },
          "required": ["InstanceProfileName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ImageBuilder::InfrastructureConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": {
      "additionalProperties": false,
      "properties": {
        "HttpPutResponseHopLimit": {
          "type": "number"
        },
        "HttpTokens": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::InfrastructureConfiguration.Logging": {
      "additionalProperties": false,
      "properties": {
        "S3Logs": {
          "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.S3Logs"
        }
      },
      "type": "object"
    },
    "AWS::ImageBuilder::InfrastructureConfiguration.S3Logs": {
      "additionalProperties": false,
      "properties": {
        "S3BucketName": {
          "type": "string"
        },
        "S3KeyPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Inspector::AssessmentTarget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssessmentTargetName": {
              "type": "string"
            },
            "ResourceGroupArn": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Inspector::AssessmentTarget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Inspector::AssessmentTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssessmentTargetArn": {
              "type": "string"
            },
            "AssessmentTemplateName": {
              "type": "string"
            },
            "DurationInSeconds": {
              "type": "number"
            },
            "RulesPackageArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "UserAttributesForFindings": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "AssessmentTargetArn",
            "DurationInSeconds",
            "RulesPackageArns"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Inspector::AssessmentTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Inspector::ResourceGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceGroupTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ResourceGroupTags"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Inspector::ResourceGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::InspectorV2::Filter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "FilterAction": {
              "type": "string"
            },
            "FilterCriteria": {
              "$ref": "#/definitions/AWS::InspectorV2::Filter.FilterCriteria"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["FilterAction", "FilterCriteria", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::InspectorV2::Filter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::InspectorV2::Filter.DateFilter": {
      "additionalProperties": false,
      "properties": {
        "EndInclusive": {
          "type": "number"
        },
        "StartInclusive": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::InspectorV2::Filter.FilterCriteria": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "ComponentId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "ComponentType": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "Ec2InstanceImageId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "Ec2InstanceSubnetId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "Ec2InstanceVpcId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "EcrImageArchitecture": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "EcrImageHash": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "EcrImagePushedAt": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter"
          },
          "type": "array"
        },
        "EcrImageRegistry": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "EcrImageRepositoryName": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "EcrImageTags": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "FindingArn": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "FindingStatus": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "FindingType": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "FirstObservedAt": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter"
          },
          "type": "array"
        },
        "InspectorScore": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter"
          },
          "type": "array"
        },
        "LastObservedAt": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter"
          },
          "type": "array"
        },
        "NetworkProtocol": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "PortRange": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.PortRangeFilter"
          },
          "type": "array"
        },
        "RelatedVulnerabilities": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "ResourceId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "ResourceTags": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.MapFilter"
          },
          "type": "array"
        },
        "ResourceType": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "Severity": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "Title": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "UpdatedAt": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter"
          },
          "type": "array"
        },
        "VendorSeverity": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "VulnerabilityId": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "VulnerabilitySource": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
          },
          "type": "array"
        },
        "VulnerablePackages": {
          "items": {
            "$ref": "#/definitions/AWS::InspectorV2::Filter.PackageFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::InspectorV2::Filter.MapFilter": {
      "additionalProperties": false,
      "properties": {
        "Comparison": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Comparison"],
      "type": "object"
    },
    "AWS::InspectorV2::Filter.NumberFilter": {
      "additionalProperties": false,
      "properties": {
        "LowerInclusive": {
          "type": "number"
        },
        "UpperInclusive": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::InspectorV2::Filter.PackageFilter": {
      "additionalProperties": false,
      "properties": {
        "Architecture": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
        },
        "Epoch": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter"
        },
        "Name": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
        },
        "Release": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
        },
        "SourceLayerHash": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
        },
        "Version": {
          "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter"
        }
      },
      "type": "object"
    },
    "AWS::InspectorV2::Filter.PortRangeFilter": {
      "additionalProperties": false,
      "properties": {
        "BeginInclusive": {
          "type": "number"
        },
        "EndInclusive": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::InspectorV2::Filter.StringFilter": {
      "additionalProperties": false,
      "properties": {
        "Comparison": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Comparison", "Value"],
      "type": "object"
    },
    "AWS::IoT1Click::Device": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeviceId": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            }
          },
          "required": ["DeviceId", "Enabled"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT1Click::Device"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT1Click::Placement": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociatedDevices": {
              "type": "object"
            },
            "Attributes": {
              "type": "object"
            },
            "PlacementName": {
              "type": "string"
            },
            "ProjectName": {
              "type": "string"
            }
          },
          "required": ["ProjectName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT1Click::Placement"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT1Click::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "PlacementTemplate": {
              "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate"
            },
            "ProjectName": {
              "type": "string"
            }
          },
          "required": ["PlacementTemplate"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT1Click::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT1Click::Project.DeviceTemplate": {
      "additionalProperties": false,
      "properties": {
        "CallbackOverrides": {
          "type": "object"
        },
        "DeviceType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT1Click::Project.PlacementTemplate": {
      "additionalProperties": false,
      "properties": {
        "DefaultAttributes": {
          "type": "object"
        },
        "DeviceTemplates": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::IoT::AccountAuditConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountId": {
              "type": "string"
            },
            "AuditCheckConfigurations": {
              "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations"
            },
            "AuditNotificationTargetConfigurations": {
              "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["AccountId", "AuditCheckConfigurations", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::AccountAuditConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": {
      "additionalProperties": false,
      "properties": {
        "AuthenticatedCognitoRoleOverlyPermissiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "CaCertificateExpiringCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "CaCertificateKeyQualityCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "ConflictingClientIdsCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "DeviceCertificateExpiringCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "DeviceCertificateKeyQualityCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "DeviceCertificateSharedCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "IntermediateCaRevokedForActiveDeviceCertificatesCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "IoTPolicyPotentialMisConfigurationCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "IotPolicyOverlyPermissiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "IotRoleAliasAllowsAccessToUnusedServicesCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "IotRoleAliasOverlyPermissiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "LoggingDisabledCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "RevokedCaCertificateStillActiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "RevokedDeviceCertificateStillActiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        },
        "UnauthenticatedCognitoRoleOverlyPermissiveCheck": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "RoleArn": {
          "type": "string"
        },
        "TargetArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": {
      "additionalProperties": false,
      "properties": {
        "Sns": {
          "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget"
        }
      },
      "type": "object"
    },
    "AWS::IoT::Authorizer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthorizerFunctionArn": {
              "type": "string"
            },
            "AuthorizerName": {
              "type": "string"
            },
            "EnableCachingForHttp": {
              "type": "boolean"
            },
            "SigningDisabled": {
              "type": "boolean"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TokenKeyName": {
              "type": "string"
            },
            "TokenSigningPublicKeys": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["AuthorizerFunctionArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Authorizer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::CACertificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoRegistrationStatus": {
              "type": "string"
            },
            "CACertificatePem": {
              "type": "string"
            },
            "CertificateMode": {
              "type": "string"
            },
            "RegistrationConfig": {
              "$ref": "#/definitions/AWS::IoT::CACertificate.RegistrationConfig"
            },
            "RemoveAutoRegistration": {
              "type": "boolean"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VerificationCertificatePem": {
              "type": "string"
            }
          },
          "required": ["CACertificatePem", "Status"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::CACertificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::CACertificate.RegistrationConfig": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "TemplateBody": {
          "type": "string"
        },
        "TemplateName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CACertificatePem": {
              "type": "string"
            },
            "CertificateMode": {
              "type": "string"
            },
            "CertificatePem": {
              "type": "string"
            },
            "CertificateSigningRequest": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            }
          },
          "required": ["Status"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::CustomMetric": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DisplayName": {
              "type": "string"
            },
            "MetricName": {
              "type": "string"
            },
            "MetricType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["MetricType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::CustomMetric"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::Dimension": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "StringValues": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["StringValues", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Dimension"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::DomainConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthorizerConfig": {
              "$ref": "#/definitions/AWS::IoT::DomainConfiguration.AuthorizerConfig"
            },
            "DomainConfigurationName": {
              "type": "string"
            },
            "DomainConfigurationStatus": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "ServerCertificateArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ServiceType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ValidationCertificateArn": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::DomainConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoT::DomainConfiguration.AuthorizerConfig": {
      "additionalProperties": false,
      "properties": {
        "AllowAuthorizerOverride": {
          "type": "boolean"
        },
        "DefaultAuthorizerName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::DomainConfiguration.ServerCertificateSummary": {
      "additionalProperties": false,
      "properties": {
        "ServerCertificateArn": {
          "type": "string"
        },
        "ServerCertificateStatus": {
          "type": "string"
        },
        "ServerCertificateStatusDetail": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::FleetMetric": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AggregationField": {
              "type": "string"
            },
            "AggregationType": {
              "$ref": "#/definitions/AWS::IoT::FleetMetric.AggregationType"
            },
            "Description": {
              "type": "string"
            },
            "IndexName": {
              "type": "string"
            },
            "MetricName": {
              "type": "string"
            },
            "Period": {
              "type": "number"
            },
            "QueryString": {
              "type": "string"
            },
            "QueryVersion": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Unit": {
              "type": "string"
            }
          },
          "required": ["MetricName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::FleetMetric"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::FleetMetric.AggregationType": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::IoT::JobTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AbortConfig": {
              "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortConfig"
            },
            "Description": {
              "type": "string"
            },
            "Document": {
              "type": "string"
            },
            "DocumentSource": {
              "type": "string"
            },
            "JobArn": {
              "type": "string"
            },
            "JobExecutionsRetryConfig": {
              "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRetryConfig"
            },
            "JobExecutionsRolloutConfig": {
              "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRolloutConfig"
            },
            "JobTemplateId": {
              "type": "string"
            },
            "PresignedUrlConfig": {
              "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeoutConfig": {
              "$ref": "#/definitions/AWS::IoT::JobTemplate.TimeoutConfig"
            }
          },
          "required": ["Description", "JobTemplateId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::JobTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::JobTemplate.AbortConfig": {
      "additionalProperties": false,
      "properties": {
        "CriteriaList": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortCriteria"
          },
          "type": "array"
        }
      },
      "required": ["CriteriaList"],
      "type": "object"
    },
    "AWS::IoT::JobTemplate.AbortCriteria": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "FailureType": {
          "type": "string"
        },
        "MinNumberOfExecutedThings": {
          "type": "number"
        },
        "ThresholdPercentage": {
          "type": "number"
        }
      },
      "required": [
        "Action",
        "FailureType",
        "MinNumberOfExecutedThings",
        "ThresholdPercentage"
      ],
      "type": "object"
    },
    "AWS::IoT::JobTemplate.ExponentialRolloutRate": {
      "additionalProperties": false,
      "properties": {
        "BaseRatePerMinute": {
          "type": "number"
        },
        "IncrementFactor": {
          "type": "number"
        },
        "RateIncreaseCriteria": {
          "$ref": "#/definitions/AWS::IoT::JobTemplate.RateIncreaseCriteria"
        }
      },
      "required": [
        "BaseRatePerMinute",
        "IncrementFactor",
        "RateIncreaseCriteria"
      ],
      "type": "object"
    },
    "AWS::IoT::JobTemplate.JobExecutionsRetryConfig": {
      "additionalProperties": false,
      "properties": {
        "RetryCriteriaList": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::JobTemplate.RetryCriteria"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoT::JobTemplate.JobExecutionsRolloutConfig": {
      "additionalProperties": false,
      "properties": {
        "ExponentialRolloutRate": {
          "$ref": "#/definitions/AWS::IoT::JobTemplate.ExponentialRolloutRate"
        },
        "MaximumPerMinute": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::IoT::JobTemplate.PresignedUrlConfig": {
      "additionalProperties": false,
      "properties": {
        "ExpiresInSec": {
          "type": "number"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::IoT::JobTemplate.RateIncreaseCriteria": {
      "additionalProperties": false,
      "properties": {
        "NumberOfNotifiedThings": {
          "type": "number"
        },
        "NumberOfSucceededThings": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::IoT::JobTemplate.RetryCriteria": {
      "additionalProperties": false,
      "properties": {
        "FailureType": {
          "type": "string"
        },
        "NumberOfRetries": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::IoT::JobTemplate.TimeoutConfig": {
      "additionalProperties": false,
      "properties": {
        "InProgressTimeoutInMinutes": {
          "type": "number"
        }
      },
      "required": ["InProgressTimeoutInMinutes"],
      "type": "object"
    },
    "AWS::IoT::Logging": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountId": {
              "type": "string"
            },
            "DefaultLogLevel": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["AccountId", "DefaultLogLevel", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Logging"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActionName": {
              "type": "string"
            },
            "ActionParams": {
              "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ActionParams", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::MitigationAction"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.ActionParams": {
      "additionalProperties": false,
      "properties": {
        "AddThingsToThingGroupParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams"
        },
        "EnableIoTLoggingParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams"
        },
        "PublishFindingToSnsParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams"
        },
        "ReplaceDefaultPolicyVersionParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams"
        },
        "UpdateCACertificateParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams"
        },
        "UpdateDeviceCertificateParams": {
          "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams"
        }
      },
      "type": "object"
    },
    "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": {
      "additionalProperties": false,
      "properties": {
        "OverrideDynamicGroups": {
          "type": "boolean"
        },
        "ThingGroupNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ThingGroupNames"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.EnableIoTLoggingParams": {
      "additionalProperties": false,
      "properties": {
        "LogLevel": {
          "type": "string"
        },
        "RoleArnForLogging": {
          "type": "string"
        }
      },
      "required": ["LogLevel", "RoleArnForLogging"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.PublishFindingToSnsParams": {
      "additionalProperties": false,
      "properties": {
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["TopicArn"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": {
      "additionalProperties": false,
      "properties": {
        "TemplateName": {
          "type": "string"
        }
      },
      "required": ["TemplateName"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.UpdateCACertificateParams": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::IoT::Policy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyDocument": {
              "type": "object"
            },
            "PolicyName": {
              "type": "string"
            }
          },
          "required": ["PolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Policy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::PolicyPrincipalAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyName": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            }
          },
          "required": ["PolicyName", "Principal"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::PolicyPrincipalAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::ProvisioningTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "PreProvisioningHook": {
              "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook"
            },
            "ProvisioningRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateBody": {
              "type": "string"
            },
            "TemplateName": {
              "type": "string"
            },
            "TemplateType": {
              "type": "string"
            }
          },
          "required": ["ProvisioningRoleArn", "TemplateBody"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::ProvisioningTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::ProvisioningTemplate.ProvisioningHook": {
      "additionalProperties": false,
      "properties": {
        "PayloadVersion": {
          "type": "string"
        },
        "TargetArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::ResourceSpecificLogging": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LogLevel": {
              "type": "string"
            },
            "TargetName": {
              "type": "string"
            },
            "TargetType": {
              "type": "string"
            }
          },
          "required": ["LogLevel", "TargetName", "TargetType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::ResourceSpecificLogging"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::RoleAlias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CredentialDurationSeconds": {
              "type": "number"
            },
            "RoleAlias": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::RoleAlias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::ScheduledAudit": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DayOfMonth": {
              "type": "string"
            },
            "DayOfWeek": {
              "type": "string"
            },
            "Frequency": {
              "type": "string"
            },
            "ScheduledAuditName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetCheckNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Frequency", "TargetCheckNames"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::ScheduledAudit"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalMetricsToRetainV2": {
              "items": {
                "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain"
              },
              "type": "array"
            },
            "AlertTargets": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget"
                }
              },
              "type": "object"
            },
            "Behaviors": {
              "items": {
                "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior"
              },
              "type": "array"
            },
            "SecurityProfileDescription": {
              "type": "string"
            },
            "SecurityProfileName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::SecurityProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.AlertTarget": {
      "additionalProperties": false,
      "properties": {
        "AlertTargetArn": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["AlertTargetArn", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.Behavior": {
      "additionalProperties": false,
      "properties": {
        "Criteria": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria"
        },
        "Metric": {
          "type": "string"
        },
        "MetricDimension": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension"
        },
        "Name": {
          "type": "string"
        },
        "SuppressAlerts": {
          "type": "boolean"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.BehaviorCriteria": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "ConsecutiveDatapointsToAlarm": {
          "type": "number"
        },
        "ConsecutiveDatapointsToClear": {
          "type": "number"
        },
        "DurationSeconds": {
          "type": "number"
        },
        "MlDetectionConfig": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig"
        },
        "StatisticalThreshold": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue"
        }
      },
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": {
      "additionalProperties": false,
      "properties": {
        "ConfidenceLevel": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "DimensionName": {
          "type": "string"
        },
        "Operator": {
          "type": "string"
        }
      },
      "required": ["DimensionName"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.MetricToRetain": {
      "additionalProperties": false,
      "properties": {
        "Metric": {
          "type": "string"
        },
        "MetricDimension": {
          "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension"
        }
      },
      "required": ["Metric"],
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.MetricValue": {
      "additionalProperties": false,
      "properties": {
        "Cidrs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Count": {
          "type": "string"
        },
        "Number": {
          "type": "number"
        },
        "Numbers": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Ports": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Strings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoT::SecurityProfile.StatisticalThreshold": {
      "additionalProperties": false,
      "properties": {
        "Statistic": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::Thing": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttributePayload": {
              "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload"
            },
            "ThingName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::Thing"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoT::Thing.AttributePayload": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::IoT::ThingPrincipalAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Principal": {
              "type": "string"
            },
            "ThingName": {
              "type": "string"
            }
          },
          "required": ["Principal", "ThingName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::ThingPrincipalAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::TopicRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RuleName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TopicRulePayload": {
              "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload"
            }
          },
          "required": ["TopicRulePayload"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::TopicRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.Action": {
      "additionalProperties": false,
      "properties": {
        "CloudwatchAlarm": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction"
        },
        "CloudwatchLogs": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchLogsAction"
        },
        "CloudwatchMetric": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction"
        },
        "DynamoDB": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction"
        },
        "DynamoDBv2": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action"
        },
        "Elasticsearch": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction"
        },
        "Firehose": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction"
        },
        "Http": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAction"
        },
        "IotAnalytics": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction"
        },
        "IotEvents": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.IotEventsAction"
        },
        "IotSiteWise": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.IotSiteWiseAction"
        },
        "Kafka": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.KafkaAction"
        },
        "Kinesis": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction"
        },
        "Lambda": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction"
        },
        "Location": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction"
        },
        "OpenSearch": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction"
        },
        "Republish": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction"
        },
        "S3": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action"
        },
        "Sns": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction"
        },
        "Sqs": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction"
        },
        "StepFunctions": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction"
        },
        "Timestream": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamAction"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.AssetPropertyTimestamp": {
      "additionalProperties": false,
      "properties": {
        "OffsetInNanos": {
          "type": "string"
        },
        "TimeInSeconds": {
          "type": "string"
        }
      },
      "required": ["TimeInSeconds"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.AssetPropertyValue": {
      "additionalProperties": false,
      "properties": {
        "Quality": {
          "type": "string"
        },
        "Timestamp": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyTimestamp"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyVariant"
        }
      },
      "required": ["Timestamp", "Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.AssetPropertyVariant": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "string"
        },
        "DoubleValue": {
          "type": "string"
        },
        "IntegerValue": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.CloudwatchAlarmAction": {
      "additionalProperties": false,
      "properties": {
        "AlarmName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "StateReason": {
          "type": "string"
        },
        "StateValue": {
          "type": "string"
        }
      },
      "required": ["AlarmName", "RoleArn", "StateReason", "StateValue"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.CloudwatchLogsAction": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["LogGroupName", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.CloudwatchMetricAction": {
      "additionalProperties": false,
      "properties": {
        "MetricName": {
          "type": "string"
        },
        "MetricNamespace": {
          "type": "string"
        },
        "MetricTimestamp": {
          "type": "string"
        },
        "MetricUnit": {
          "type": "string"
        },
        "MetricValue": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": [
        "MetricName",
        "MetricNamespace",
        "MetricUnit",
        "MetricValue",
        "RoleArn"
      ],
      "type": "object"
    },
    "AWS::IoT::TopicRule.DynamoDBAction": {
      "additionalProperties": false,
      "properties": {
        "HashKeyField": {
          "type": "string"
        },
        "HashKeyType": {
          "type": "string"
        },
        "HashKeyValue": {
          "type": "string"
        },
        "PayloadField": {
          "type": "string"
        },
        "RangeKeyField": {
          "type": "string"
        },
        "RangeKeyType": {
          "type": "string"
        },
        "RangeKeyValue": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["HashKeyField", "HashKeyValue", "RoleArn", "TableName"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.DynamoDBv2Action": {
      "additionalProperties": false,
      "properties": {
        "PutItem": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.ElasticsearchAction": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Index": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Endpoint", "Id", "Index", "RoleArn", "Type"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.FirehoseAction": {
      "additionalProperties": false,
      "properties": {
        "BatchMode": {
          "type": "boolean"
        },
        "DeliveryStreamName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "Separator": {
          "type": "string"
        }
      },
      "required": ["DeliveryStreamName", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.HttpAction": {
      "additionalProperties": false,
      "properties": {
        "Auth": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAuthorization"
        },
        "ConfirmationUrl": {
          "type": "string"
        },
        "Headers": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.HttpActionHeader"
          },
          "type": "array"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Url"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.HttpActionHeader": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.HttpAuthorization": {
      "additionalProperties": false,
      "properties": {
        "Sigv4": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.SigV4Authorization"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.IotAnalyticsAction": {
      "additionalProperties": false,
      "properties": {
        "BatchMode": {
          "type": "boolean"
        },
        "ChannelName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["ChannelName", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.IotEventsAction": {
      "additionalProperties": false,
      "properties": {
        "BatchMode": {
          "type": "boolean"
        },
        "InputName": {
          "type": "string"
        },
        "MessageId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["InputName", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.IotSiteWiseAction": {
      "additionalProperties": false,
      "properties": {
        "PutAssetPropertyValueEntries": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.PutAssetPropertyValueEntry"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["PutAssetPropertyValueEntries", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.KafkaAction": {
      "additionalProperties": false,
      "properties": {
        "ClientProperties": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "DestinationArn": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Partition": {
          "type": "string"
        },
        "Topic": {
          "type": "string"
        }
      },
      "required": ["ClientProperties", "DestinationArn", "Topic"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.KinesisAction": {
      "additionalProperties": false,
      "properties": {
        "PartitionKey": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "StreamName": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "StreamName"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.LambdaAction": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.LocationAction": {
      "additionalProperties": false,
      "properties": {
        "DeviceId": {
          "type": "string"
        },
        "Latitude": {
          "type": "string"
        },
        "Longitude": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "Timestamp": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp"
        },
        "TrackerName": {
          "type": "string"
        }
      },
      "required": [
        "DeviceId",
        "Latitude",
        "Longitude",
        "RoleArn",
        "TrackerName"
      ],
      "type": "object"
    },
    "AWS::IoT::TopicRule.OpenSearchAction": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Index": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Endpoint", "Id", "Index", "RoleArn", "Type"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": {
      "additionalProperties": false,
      "properties": {
        "AssetId": {
          "type": "string"
        },
        "EntryId": {
          "type": "string"
        },
        "PropertyAlias": {
          "type": "string"
        },
        "PropertyId": {
          "type": "string"
        },
        "PropertyValues": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyValue"
          },
          "type": "array"
        }
      },
      "required": ["PropertyValues"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.PutItemInput": {
      "additionalProperties": false,
      "properties": {
        "TableName": {
          "type": "string"
        }
      },
      "required": ["TableName"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.RepublishAction": {
      "additionalProperties": false,
      "properties": {
        "Headers": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishActionHeaders"
        },
        "Qos": {
          "type": "number"
        },
        "RoleArn": {
          "type": "string"
        },
        "Topic": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "Topic"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.RepublishActionHeaders": {
      "additionalProperties": false,
      "properties": {
        "ContentType": {
          "type": "string"
        },
        "CorrelationData": {
          "type": "string"
        },
        "MessageExpiry": {
          "type": "string"
        },
        "PayloadFormatIndicator": {
          "type": "string"
        },
        "ResponseTopic": {
          "type": "string"
        },
        "UserProperties": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.UserProperty"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRule.S3Action": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "CannedAcl": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["BucketName", "Key", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.SigV4Authorization": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "ServiceName": {
          "type": "string"
        },
        "SigningRegion": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "ServiceName", "SigningRegion"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.SnsAction": {
      "additionalProperties": false,
      "properties": {
        "MessageFormat": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "TargetArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "TargetArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.SqsAction": {
      "additionalProperties": false,
      "properties": {
        "QueueUrl": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "UseBase64": {
          "type": "boolean"
        }
      },
      "required": ["QueueUrl", "RoleArn"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.StepFunctionsAction": {
      "additionalProperties": false,
      "properties": {
        "ExecutionNamePrefix": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "StateMachineName": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "StateMachineName"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.Timestamp": {
      "additionalProperties": false,
      "properties": {
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.TimestreamAction": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamDimension"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "Timestamp": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamTimestamp"
        }
      },
      "required": ["DatabaseName", "Dimensions", "RoleArn", "TableName"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.TimestreamDimension": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.TimestreamTimestamp": {
      "additionalProperties": false,
      "properties": {
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Unit", "Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.TopicRulePayload": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::IoT::TopicRule.Action"
          },
          "type": "array"
        },
        "AwsIotSqlVersion": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "ErrorAction": {
          "$ref": "#/definitions/AWS::IoT::TopicRule.Action"
        },
        "RuleDisabled": {
          "type": "boolean"
        },
        "Sql": {
          "type": "string"
        }
      },
      "required": ["Actions", "Sql"],
      "type": "object"
    },
    "AWS::IoT::TopicRule.UserProperty": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::IoT::TopicRuleDestination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HttpUrlProperties": {
              "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary"
            },
            "Status": {
              "type": "string"
            },
            "VpcProperties": {
              "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.VpcDestinationProperties"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoT::TopicRuleDestination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": {
      "additionalProperties": false,
      "properties": {
        "ConfirmationUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoT::TopicRuleDestination.VpcDestinationProperties": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Channel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ChannelName": {
              "type": "string"
            },
            "ChannelStorage": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Channel.ChannelStorage"
            },
            "RetentionPeriod": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTAnalytics::Channel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Channel.ChannelStorage": {
      "additionalProperties": false,
      "properties": {
        "CustomerManagedS3": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Channel.CustomerManagedS3"
        },
        "ServiceManagedS3": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Channel.CustomerManagedS3": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "KeyPrefix": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["Bucket", "RoleArn"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Channel.RetentionPeriod": {
      "additionalProperties": false,
      "properties": {
        "NumberOfDays": {
          "type": "number"
        },
        "Unlimited": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "items": {
                "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action"
              },
              "type": "array"
            },
            "ContentDeliveryRules": {
              "items": {
                "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule"
              },
              "type": "array"
            },
            "DatasetName": {
              "type": "string"
            },
            "LateDataRules": {
              "items": {
                "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRule"
              },
              "type": "array"
            },
            "RetentionPeriod": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Triggers": {
              "items": {
                "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger"
              },
              "type": "array"
            },
            "VersioningConfiguration": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.VersioningConfiguration"
            }
          },
          "required": ["Actions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTAnalytics::Dataset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.Action": {
      "additionalProperties": false,
      "properties": {
        "ActionName": {
          "type": "string"
        },
        "ContainerAction": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction"
        },
        "QueryAction": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction"
        }
      },
      "required": ["ActionName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.ContainerAction": {
      "additionalProperties": false,
      "properties": {
        "ExecutionRoleArn": {
          "type": "string"
        },
        "Image": {
          "type": "string"
        },
        "ResourceConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration"
        },
        "Variables": {
          "items": {
            "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable"
          },
          "type": "array"
        }
      },
      "required": ["ExecutionRoleArn", "Image", "ResourceConfiguration"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination"
        },
        "EntryName": {
          "type": "string"
        }
      },
      "required": ["Destination"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination": {
      "additionalProperties": false,
      "properties": {
        "IotEventsDestinationConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration"
        },
        "S3DestinationConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.S3DestinationConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": {
      "additionalProperties": false,
      "properties": {
        "DatasetName": {
          "type": "string"
        }
      },
      "required": ["DatasetName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.DeltaTime": {
      "additionalProperties": false,
      "properties": {
        "OffsetSeconds": {
          "type": "number"
        },
        "TimeExpression": {
          "type": "string"
        }
      },
      "required": ["OffsetSeconds", "TimeExpression"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TimeoutInMinutes": {
          "type": "number"
        }
      },
      "required": ["TimeoutInMinutes"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.Filter": {
      "additionalProperties": false,
      "properties": {
        "DeltaTime": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.GlueConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["DatabaseName", "TableName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InputName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["InputName", "RoleArn"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.LateDataRule": {
      "additionalProperties": false,
      "properties": {
        "RuleConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration"
        },
        "RuleName": {
          "type": "string"
        }
      },
      "required": ["RuleConfiguration"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DeltaTimeSessionWindowConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.OutputFileUriValue": {
      "additionalProperties": false,
      "properties": {
        "FileName": {
          "type": "string"
        }
      },
      "required": ["FileName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.QueryAction": {
      "additionalProperties": false,
      "properties": {
        "Filters": {
          "items": {
            "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter"
          },
          "type": "array"
        },
        "SqlQuery": {
          "type": "string"
        }
      },
      "required": ["SqlQuery"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.ResourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ComputeType": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["ComputeType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.RetentionPeriod": {
      "additionalProperties": false,
      "properties": {
        "NumberOfDays": {
          "type": "number"
        },
        "Unlimited": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.S3DestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "GlueConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.GlueConfiguration"
        },
        "Key": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key", "RoleArn"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.Schedule": {
      "additionalProperties": false,
      "properties": {
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.Trigger": {
      "additionalProperties": false,
      "properties": {
        "Schedule": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule"
        },
        "TriggeringDataset": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.TriggeringDataset": {
      "additionalProperties": false,
      "properties": {
        "DatasetName": {
          "type": "string"
        }
      },
      "required": ["DatasetName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.Variable": {
      "additionalProperties": false,
      "properties": {
        "DatasetContentVersionValue": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue"
        },
        "DoubleValue": {
          "type": "number"
        },
        "OutputFileUriValue": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue"
        },
        "StringValue": {
          "type": "string"
        },
        "VariableName": {
          "type": "string"
        }
      },
      "required": ["VariableName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Dataset.VersioningConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MaxVersions": {
          "type": "number"
        },
        "Unlimited": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatastoreName": {
              "type": "string"
            },
            "DatastorePartitions": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartitions"
            },
            "DatastoreStorage": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastoreStorage"
            },
            "FileFormatConfiguration": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.FileFormatConfiguration"
            },
            "RetentionPeriod": {
              "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTAnalytics::Datastore"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.Column": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.CustomerManagedS3": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "KeyPrefix": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["Bucket", "RoleArn"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "KeyPrefix": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.DatastorePartition": {
      "additionalProperties": false,
      "properties": {
        "Partition": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Partition"
        },
        "TimestampPartition": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.TimestampPartition"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.DatastorePartitions": {
      "additionalProperties": false,
      "properties": {
        "Partitions": {
          "items": {
            "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartition"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.DatastoreStorage": {
      "additionalProperties": false,
      "properties": {
        "CustomerManagedS3": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3"
        },
        "IotSiteWiseMultiLayerStorage": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage"
        },
        "ServiceManagedS3": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.FileFormatConfiguration": {
      "additionalProperties": false,
      "properties": {
        "JsonConfiguration": {
          "type": "object"
        },
        "ParquetConfiguration": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.ParquetConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage": {
      "additionalProperties": false,
      "properties": {
        "CustomerManagedS3Storage": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.ParquetConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SchemaDefinition": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.SchemaDefinition"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.Partition": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        }
      },
      "required": ["AttributeName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.RetentionPeriod": {
      "additionalProperties": false,
      "properties": {
        "NumberOfDays": {
          "type": "number"
        },
        "Unlimited": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.SchemaDefinition": {
      "additionalProperties": false,
      "properties": {
        "Columns": {
          "items": {
            "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Column"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Datastore.TimestampPartition": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "TimestampFormat": {
          "type": "string"
        }
      },
      "required": ["AttributeName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PipelineActivities": {
              "items": {
                "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity"
              },
              "type": "array"
            },
            "PipelineName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PipelineActivities"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTAnalytics::Pipeline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Activity": {
      "additionalProperties": false,
      "properties": {
        "AddAttributes": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes"
        },
        "Channel": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel"
        },
        "Datastore": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore"
        },
        "DeviceRegistryEnrich": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich"
        },
        "DeviceShadowEnrich": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter"
        },
        "Lambda": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda"
        },
        "Math": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math"
        },
        "RemoveAttributes": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes"
        },
        "SelectAttributes": {
          "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes"
        }
      },
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.AddAttributes": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["Attributes", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Channel": {
      "additionalProperties": false,
      "properties": {
        "ChannelName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["ChannelName", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Datastore": {
      "additionalProperties": false,
      "properties": {
        "DatastoreName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DatastoreName", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": {
      "additionalProperties": false,
      "properties": {
        "Attribute": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "ThingName": {
          "type": "string"
        }
      },
      "required": ["Attribute", "Name", "RoleArn", "ThingName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": {
      "additionalProperties": false,
      "properties": {
        "Attribute": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "ThingName": {
          "type": "string"
        }
      },
      "required": ["Attribute", "Name", "RoleArn", "ThingName"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Filter": {
      "additionalProperties": false,
      "properties": {
        "Filter": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["Filter", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Lambda": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "LambdaName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["BatchSize", "LambdaName", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.Math": {
      "additionalProperties": false,
      "properties": {
        "Attribute": {
          "type": "string"
        },
        "Math": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["Attribute", "Math", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.RemoveAttributes": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["Attributes", "Name"],
      "type": "object"
    },
    "AWS::IoTAnalytics::Pipeline.SelectAttributes": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "Next": {
          "type": "string"
        }
      },
      "required": ["Attributes", "Name"],
      "type": "object"
    },
    "AWS::IoTCoreDeviceAdvisor::SuiteDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SuiteDefinitionConfiguration": {
              "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SuiteDefinitionConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTCoreDeviceAdvisor::SuiteDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTCoreDeviceAdvisor::SuiteDefinition.DeviceUnderTest": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "ThingArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DevicePermissionRoleArn": {
          "type": "string"
        },
        "Devices": {
          "items": {
            "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.DeviceUnderTest"
          },
          "type": "array"
        },
        "IntendedForQualification": {
          "type": "boolean"
        },
        "RootGroup": {
          "type": "string"
        },
        "SuiteDefinitionName": {
          "type": "string"
        }
      },
      "required": ["DevicePermissionRoleArn", "RootGroup"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlarmCapabilities": {
              "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmCapabilities"
            },
            "AlarmEventActions": {
              "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmEventActions"
            },
            "AlarmModelDescription": {
              "type": "string"
            },
            "AlarmModelName": {
              "type": "string"
            },
            "AlarmRule": {
              "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmRule"
            },
            "Key": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Severity": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AlarmRule", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTEvents::AlarmModel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AcknowledgeFlow": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AlarmAction": {
      "additionalProperties": false,
      "properties": {
        "DynamoDB": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.DynamoDB"
        },
        "DynamoDBv2": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.DynamoDBv2"
        },
        "Firehose": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Firehose"
        },
        "IotEvents": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotEvents"
        },
        "IotSiteWise": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotSiteWise"
        },
        "IotTopicPublish": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotTopicPublish"
        },
        "Lambda": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Lambda"
        },
        "Sns": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Sns"
        },
        "Sqs": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Sqs"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AlarmCapabilities": {
      "additionalProperties": false,
      "properties": {
        "AcknowledgeFlow": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AcknowledgeFlow"
        },
        "InitializationConfiguration": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.InitializationConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AlarmEventActions": {
      "additionalProperties": false,
      "properties": {
        "AlarmActions": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmAction"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AlarmRule": {
      "additionalProperties": false,
      "properties": {
        "SimpleRule": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.SimpleRule"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AssetPropertyTimestamp": {
      "additionalProperties": false,
      "properties": {
        "OffsetInNanos": {
          "type": "string"
        },
        "TimeInSeconds": {
          "type": "string"
        }
      },
      "required": ["TimeInSeconds"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AssetPropertyValue": {
      "additionalProperties": false,
      "properties": {
        "Quality": {
          "type": "string"
        },
        "Timestamp": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyTimestamp"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyVariant"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.AssetPropertyVariant": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "string"
        },
        "DoubleValue": {
          "type": "string"
        },
        "IntegerValue": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.DynamoDB": {
      "additionalProperties": false,
      "properties": {
        "HashKeyField": {
          "type": "string"
        },
        "HashKeyType": {
          "type": "string"
        },
        "HashKeyValue": {
          "type": "string"
        },
        "Operation": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        },
        "PayloadField": {
          "type": "string"
        },
        "RangeKeyField": {
          "type": "string"
        },
        "RangeKeyType": {
          "type": "string"
        },
        "RangeKeyValue": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["HashKeyField", "HashKeyValue", "TableName"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.DynamoDBv2": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["TableName"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.Firehose": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStreamName": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        },
        "Separator": {
          "type": "string"
        }
      },
      "required": ["DeliveryStreamName"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.InitializationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DisabledOnInitialization": {
          "type": "boolean"
        }
      },
      "required": ["DisabledOnInitialization"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.IotEvents": {
      "additionalProperties": false,
      "properties": {
        "InputName": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        }
      },
      "required": ["InputName"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.IotSiteWise": {
      "additionalProperties": false,
      "properties": {
        "AssetId": {
          "type": "string"
        },
        "EntryId": {
          "type": "string"
        },
        "PropertyAlias": {
          "type": "string"
        },
        "PropertyId": {
          "type": "string"
        },
        "PropertyValue": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyValue"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.IotTopicPublish": {
      "additionalProperties": false,
      "properties": {
        "MqttTopic": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        }
      },
      "required": ["MqttTopic"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.Lambda": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        }
      },
      "required": ["FunctionArn"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.Payload": {
      "additionalProperties": false,
      "properties": {
        "ContentExpression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["ContentExpression", "Type"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.SimpleRule": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "InputProperty": {
          "type": "string"
        },
        "Threshold": {
          "type": "string"
        }
      },
      "required": ["ComparisonOperator", "InputProperty", "Threshold"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.Sns": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        },
        "TargetArn": {
          "type": "string"
        }
      },
      "required": ["TargetArn"],
      "type": "object"
    },
    "AWS::IoTEvents::AlarmModel.Sqs": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload"
        },
        "QueueUrl": {
          "type": "string"
        },
        "UseBase64": {
          "type": "boolean"
        }
      },
      "required": ["QueueUrl"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DetectorModelDefinition": {
              "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DetectorModelDefinition"
            },
            "DetectorModelDescription": {
              "type": "string"
            },
            "DetectorModelName": {
              "type": "string"
            },
            "EvaluationMethod": {
              "type": "string"
            },
            "Key": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DetectorModelDefinition", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTEvents::DetectorModel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Action": {
      "additionalProperties": false,
      "properties": {
        "ClearTimer": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ClearTimer"
        },
        "DynamoDB": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDB"
        },
        "DynamoDBv2": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDBv2"
        },
        "Firehose": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Firehose"
        },
        "IotEvents": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotEvents"
        },
        "IotSiteWise": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotSiteWise"
        },
        "IotTopicPublish": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotTopicPublish"
        },
        "Lambda": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Lambda"
        },
        "ResetTimer": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ResetTimer"
        },
        "SetTimer": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetTimer"
        },
        "SetVariable": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetVariable"
        },
        "Sns": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sns"
        },
        "Sqs": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sqs"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp": {
      "additionalProperties": false,
      "properties": {
        "OffsetInNanos": {
          "type": "string"
        },
        "TimeInSeconds": {
          "type": "string"
        }
      },
      "required": ["TimeInSeconds"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.AssetPropertyValue": {
      "additionalProperties": false,
      "properties": {
        "Quality": {
          "type": "string"
        },
        "Timestamp": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyVariant"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.AssetPropertyVariant": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "string"
        },
        "DoubleValue": {
          "type": "string"
        },
        "IntegerValue": {
          "type": "string"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.ClearTimer": {
      "additionalProperties": false,
      "properties": {
        "TimerName": {
          "type": "string"
        }
      },
      "required": ["TimerName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.DetectorModelDefinition": {
      "additionalProperties": false,
      "properties": {
        "InitialStateName": {
          "type": "string"
        },
        "States": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.State"
          },
          "type": "array"
        }
      },
      "required": ["InitialStateName", "States"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.DynamoDB": {
      "additionalProperties": false,
      "properties": {
        "HashKeyField": {
          "type": "string"
        },
        "HashKeyType": {
          "type": "string"
        },
        "HashKeyValue": {
          "type": "string"
        },
        "Operation": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        },
        "PayloadField": {
          "type": "string"
        },
        "RangeKeyField": {
          "type": "string"
        },
        "RangeKeyType": {
          "type": "string"
        },
        "RangeKeyValue": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["HashKeyField", "HashKeyValue", "TableName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.DynamoDBv2": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["TableName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Event": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action"
          },
          "type": "array"
        },
        "Condition": {
          "type": "string"
        },
        "EventName": {
          "type": "string"
        }
      },
      "required": ["EventName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Firehose": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStreamName": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        },
        "Separator": {
          "type": "string"
        }
      },
      "required": ["DeliveryStreamName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.IotEvents": {
      "additionalProperties": false,
      "properties": {
        "InputName": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        }
      },
      "required": ["InputName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.IotSiteWise": {
      "additionalProperties": false,
      "properties": {
        "AssetId": {
          "type": "string"
        },
        "EntryId": {
          "type": "string"
        },
        "PropertyAlias": {
          "type": "string"
        },
        "PropertyId": {
          "type": "string"
        },
        "PropertyValue": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyValue"
        }
      },
      "required": ["PropertyValue"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.IotTopicPublish": {
      "additionalProperties": false,
      "properties": {
        "MqttTopic": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        }
      },
      "required": ["MqttTopic"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Lambda": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        }
      },
      "required": ["FunctionArn"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.OnEnter": {
      "additionalProperties": false,
      "properties": {
        "Events": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.OnExit": {
      "additionalProperties": false,
      "properties": {
        "Events": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.OnInput": {
      "additionalProperties": false,
      "properties": {
        "Events": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event"
          },
          "type": "array"
        },
        "TransitionEvents": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.TransitionEvent"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Payload": {
      "additionalProperties": false,
      "properties": {
        "ContentExpression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["ContentExpression", "Type"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.ResetTimer": {
      "additionalProperties": false,
      "properties": {
        "TimerName": {
          "type": "string"
        }
      },
      "required": ["TimerName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.SetTimer": {
      "additionalProperties": false,
      "properties": {
        "DurationExpression": {
          "type": "string"
        },
        "Seconds": {
          "type": "number"
        },
        "TimerName": {
          "type": "string"
        }
      },
      "required": ["TimerName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.SetVariable": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        },
        "VariableName": {
          "type": "string"
        }
      },
      "required": ["Value", "VariableName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Sns": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        },
        "TargetArn": {
          "type": "string"
        }
      },
      "required": ["TargetArn"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.Sqs": {
      "additionalProperties": false,
      "properties": {
        "Payload": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload"
        },
        "QueueUrl": {
          "type": "string"
        },
        "UseBase64": {
          "type": "boolean"
        }
      },
      "required": ["QueueUrl"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.State": {
      "additionalProperties": false,
      "properties": {
        "OnEnter": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnEnter"
        },
        "OnExit": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnExit"
        },
        "OnInput": {
          "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnInput"
        },
        "StateName": {
          "type": "string"
        }
      },
      "required": ["StateName"],
      "type": "object"
    },
    "AWS::IoTEvents::DetectorModel.TransitionEvent": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action"
          },
          "type": "array"
        },
        "Condition": {
          "type": "string"
        },
        "EventName": {
          "type": "string"
        },
        "NextState": {
          "type": "string"
        }
      },
      "required": ["Condition", "EventName", "NextState"],
      "type": "object"
    },
    "AWS::IoTEvents::Input": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InputDefinition": {
              "$ref": "#/definitions/AWS::IoTEvents::Input.InputDefinition"
            },
            "InputDescription": {
              "type": "string"
            },
            "InputName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InputDefinition"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTEvents::Input"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTEvents::Input.Attribute": {
      "additionalProperties": false,
      "properties": {
        "JsonPath": {
          "type": "string"
        }
      },
      "required": ["JsonPath"],
      "type": "object"
    },
    "AWS::IoTEvents::Input.InputDefinition": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "items": {
            "$ref": "#/definitions/AWS::IoTEvents::Input.Attribute"
          },
          "type": "array"
        }
      },
      "required": ["Attributes"],
      "type": "object"
    },
    "AWS::IoTFleetHub::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationDescription": {
              "type": "string"
            },
            "ApplicationName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ApplicationName", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetHub::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Campaign": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "CollectionScheme": {
              "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.CollectionScheme"
            },
            "Compression": {
              "type": "string"
            },
            "DataExtraDimensions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "DiagnosticsMode": {
              "type": "string"
            },
            "ExpiryTime": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PostTriggerCollectionDuration": {
              "type": "number"
            },
            "Priority": {
              "type": "number"
            },
            "SignalCatalogArn": {
              "type": "string"
            },
            "SignalsToCollect": {
              "items": {
                "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.SignalInformation"
              },
              "type": "array"
            },
            "SpoolingMode": {
              "type": "string"
            },
            "StartTime": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetArn": {
              "type": "string"
            }
          },
          "required": [
            "Action",
            "CollectionScheme",
            "Name",
            "SignalCatalogArn",
            "TargetArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::Campaign"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Campaign.CollectionScheme": {
      "additionalProperties": false,
      "properties": {
        "ConditionBasedCollectionScheme": {
          "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.ConditionBasedCollectionScheme"
        },
        "TimeBasedCollectionScheme": {
          "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.TimeBasedCollectionScheme"
        }
      },
      "type": "object"
    },
    "AWS::IoTFleetWise::Campaign.ConditionBasedCollectionScheme": {
      "additionalProperties": false,
      "properties": {
        "ConditionLanguageVersion": {
          "type": "number"
        },
        "Expression": {
          "type": "string"
        },
        "MinimumTriggerIntervalMs": {
          "type": "number"
        },
        "TriggerMode": {
          "type": "string"
        }
      },
      "required": ["Expression"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Campaign.SignalInformation": {
      "additionalProperties": false,
      "properties": {
        "MaxSampleCount": {
          "type": "number"
        },
        "MinimumSamplingIntervalMs": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Campaign.TimeBasedCollectionScheme": {
      "additionalProperties": false,
      "properties": {
        "PeriodMs": {
          "type": "number"
        }
      },
      "required": ["PeriodMs"],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "ModelManifestArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "NetworkInterfaces": {
              "items": {
                "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.NetworkInterfacesItems"
              },
              "type": "array"
            },
            "SignalDecoders": {
              "items": {
                "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.SignalDecodersItems"
              },
              "type": "array"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ModelManifestArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::DecoderManifest"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.CanInterface": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ProtocolName": {
          "type": "string"
        },
        "ProtocolVersion": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.CanSignal": {
      "additionalProperties": false,
      "properties": {
        "Factor": {
          "type": "string"
        },
        "IsBigEndian": {
          "type": "string"
        },
        "IsSigned": {
          "type": "string"
        },
        "Length": {
          "type": "string"
        },
        "MessageId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Offset": {
          "type": "string"
        },
        "StartBit": {
          "type": "string"
        }
      },
      "required": [
        "Factor",
        "IsBigEndian",
        "IsSigned",
        "Length",
        "MessageId",
        "Offset",
        "StartBit"
      ],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.NetworkInterfacesItems": {
      "additionalProperties": false,
      "properties": {
        "CanInterface": {
          "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.CanInterface"
        },
        "InterfaceId": {
          "type": "string"
        },
        "ObdInterface": {
          "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.ObdInterface"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["InterfaceId", "Type"],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.ObdInterface": {
      "additionalProperties": false,
      "properties": {
        "DtcRequestIntervalSeconds": {
          "type": "string"
        },
        "HasTransmissionEcu": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "ObdStandard": {
          "type": "string"
        },
        "PidRequestIntervalSeconds": {
          "type": "string"
        },
        "RequestMessageId": {
          "type": "string"
        },
        "UseExtendedIds": {
          "type": "string"
        }
      },
      "required": ["Name", "RequestMessageId"],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.ObdSignal": {
      "additionalProperties": false,
      "properties": {
        "BitMaskLength": {
          "type": "string"
        },
        "BitRightShift": {
          "type": "string"
        },
        "ByteLength": {
          "type": "string"
        },
        "Offset": {
          "type": "string"
        },
        "Pid": {
          "type": "string"
        },
        "PidResponseLength": {
          "type": "string"
        },
        "Scaling": {
          "type": "string"
        },
        "ServiceMode": {
          "type": "string"
        },
        "StartByte": {
          "type": "string"
        }
      },
      "required": [
        "ByteLength",
        "Offset",
        "Pid",
        "PidResponseLength",
        "Scaling",
        "ServiceMode",
        "StartByte"
      ],
      "type": "object"
    },
    "AWS::IoTFleetWise::DecoderManifest.SignalDecodersItems": {
      "additionalProperties": false,
      "properties": {
        "CanSignal": {
          "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.CanSignal"
        },
        "FullyQualifiedName": {
          "type": "string"
        },
        "InterfaceId": {
          "type": "string"
        },
        "ObdSignal": {
          "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.ObdSignal"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["FullyQualifiedName", "InterfaceId", "Type"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Fleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Id": {
              "type": "string"
            },
            "SignalCatalogArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Id", "SignalCatalogArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::Fleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTFleetWise::ModelManifest": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Nodes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SignalCatalogArn": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "SignalCatalogArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::ModelManifest"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "NodeCounts": {
              "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.NodeCounts"
            },
            "Nodes": {
              "items": {
                "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Node"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::SignalCatalog"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.Actuator": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AssignedValue": {
          "type": "string"
        },
        "DataType": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "FullyQualifiedName": {
          "type": "string"
        },
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["DataType", "FullyQualifiedName"],
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.Attribute": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AssignedValue": {
          "type": "string"
        },
        "DataType": {
          "type": "string"
        },
        "DefaultValue": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "FullyQualifiedName": {
          "type": "string"
        },
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["DataType", "FullyQualifiedName"],
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.Branch": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "FullyQualifiedName": {
          "type": "string"
        }
      },
      "required": ["FullyQualifiedName"],
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.Node": {
      "additionalProperties": false,
      "properties": {
        "Actuator": {
          "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Actuator"
        },
        "Attribute": {
          "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Attribute"
        },
        "Branch": {
          "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Branch"
        },
        "Sensor": {
          "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Sensor"
        }
      },
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.NodeCounts": {
      "additionalProperties": false,
      "properties": {
        "TotalActuators": {
          "type": "number"
        },
        "TotalAttributes": {
          "type": "number"
        },
        "TotalBranches": {
          "type": "number"
        },
        "TotalNodes": {
          "type": "number"
        },
        "TotalSensors": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::IoTFleetWise::SignalCatalog.Sensor": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DataType": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "FullyQualifiedName": {
          "type": "string"
        },
        "Max": {
          "type": "number"
        },
        "Min": {
          "type": "number"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["DataType", "FullyQualifiedName"],
      "type": "object"
    },
    "AWS::IoTFleetWise::Vehicle": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociationBehavior": {
              "type": "string"
            },
            "Attributes": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "DecoderManifestArn": {
              "type": "string"
            },
            "ModelManifestArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DecoderManifestArn", "ModelManifestArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTFleetWise::Vehicle"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPolicyIdentity": {
              "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity"
            },
            "AccessPolicyPermission": {
              "type": "string"
            },
            "AccessPolicyResource": {
              "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource"
            }
          },
          "required": [
            "AccessPolicyIdentity",
            "AccessPolicyPermission",
            "AccessPolicyResource"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::AccessPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": {
      "additionalProperties": false,
      "properties": {
        "IamRole": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole"
        },
        "IamUser": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser"
        },
        "User": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource": {
      "additionalProperties": false,
      "properties": {
        "Portal": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Portal"
        },
        "Project": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Project"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.IamRole": {
      "additionalProperties": false,
      "properties": {
        "arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.IamUser": {
      "additionalProperties": false,
      "properties": {
        "arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.Portal": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.Project": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AccessPolicy.User": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::Asset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssetDescription": {
              "type": "string"
            },
            "AssetHierarchies": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy"
              },
              "type": "array"
            },
            "AssetModelId": {
              "type": "string"
            },
            "AssetName": {
              "type": "string"
            },
            "AssetProperties": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AssetModelId", "AssetName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::Asset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Asset.AssetHierarchy": {
      "additionalProperties": false,
      "properties": {
        "ChildAssetId": {
          "type": "string"
        },
        "LogicalId": {
          "type": "string"
        }
      },
      "required": ["ChildAssetId", "LogicalId"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Asset.AssetProperty": {
      "additionalProperties": false,
      "properties": {
        "Alias": {
          "type": "string"
        },
        "LogicalId": {
          "type": "string"
        },
        "NotificationState": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["LogicalId"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssetModelCompositeModels": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel"
              },
              "type": "array"
            },
            "AssetModelDescription": {
              "type": "string"
            },
            "AssetModelHierarchies": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy"
              },
              "type": "array"
            },
            "AssetModelName": {
              "type": "string"
            },
            "AssetModelProperties": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AssetModelName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::AssetModel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": {
      "additionalProperties": false,
      "properties": {
        "CompositeModelProperties": {
          "items": {
            "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": {
      "additionalProperties": false,
      "properties": {
        "ChildAssetModelId": {
          "type": "string"
        },
        "LogicalId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["ChildAssetModelId", "LogicalId", "Name"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.AssetModelProperty": {
      "additionalProperties": false,
      "properties": {
        "DataType": {
          "type": "string"
        },
        "DataTypeSpec": {
          "type": "string"
        },
        "LogicalId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["DataType", "LogicalId", "Name", "Type"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.Attribute": {
      "additionalProperties": false,
      "properties": {
        "DefaultValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.ExpressionVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.Metric": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Variables": {
          "items": {
            "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable"
          },
          "type": "array"
        },
        "Window": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow"
        }
      },
      "required": ["Expression", "Variables", "Window"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.MetricWindow": {
      "additionalProperties": false,
      "properties": {
        "Tumbling": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.PropertyType": {
      "additionalProperties": false,
      "properties": {
        "Attribute": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute"
        },
        "Metric": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric"
        },
        "Transform": {
          "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform"
        },
        "TypeName": {
          "type": "string"
        }
      },
      "required": ["TypeName"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.Transform": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Variables": {
          "items": {
            "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable"
          },
          "type": "array"
        }
      },
      "required": ["Expression", "Variables"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.TumblingWindow": {
      "additionalProperties": false,
      "properties": {
        "Interval": {
          "type": "string"
        },
        "Offset": {
          "type": "string"
        }
      },
      "required": ["Interval"],
      "type": "object"
    },
    "AWS::IoTSiteWise::AssetModel.VariableValue": {
      "additionalProperties": false,
      "properties": {
        "HierarchyLogicalId": {
          "type": "string"
        },
        "PropertyLogicalId": {
          "type": "string"
        }
      },
      "required": ["PropertyLogicalId"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Dashboard": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DashboardDefinition": {
              "type": "string"
            },
            "DashboardDescription": {
              "type": "string"
            },
            "DashboardName": {
              "type": "string"
            },
            "ProjectId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "DashboardDefinition",
            "DashboardDescription",
            "DashboardName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::Dashboard"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Gateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GatewayCapabilitySummaries": {
              "items": {
                "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary"
              },
              "type": "array"
            },
            "GatewayName": {
              "type": "string"
            },
            "GatewayPlatform": {
              "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["GatewayName", "GatewayPlatform"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::Gateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": {
      "additionalProperties": false,
      "properties": {
        "CapabilityConfiguration": {
          "type": "string"
        },
        "CapabilityNamespace": {
          "type": "string"
        }
      },
      "required": ["CapabilityNamespace"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Gateway.GatewayPlatform": {
      "additionalProperties": false,
      "properties": {
        "Greengrass": {
          "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass"
        },
        "GreengrassV2": {
          "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GreengrassV2"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::Gateway.Greengrass": {
      "additionalProperties": false,
      "properties": {
        "GroupArn": {
          "type": "string"
        }
      },
      "required": ["GroupArn"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Gateway.GreengrassV2": {
      "additionalProperties": false,
      "properties": {
        "CoreDeviceThingName": {
          "type": "string"
        }
      },
      "required": ["CoreDeviceThingName"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Portal": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Alarms": {
              "$ref": "#/definitions/AWS::IoTSiteWise::Portal.Alarms"
            },
            "NotificationSenderEmail": {
              "type": "string"
            },
            "PortalAuthMode": {
              "type": "string"
            },
            "PortalContactEmail": {
              "type": "string"
            },
            "PortalDescription": {
              "type": "string"
            },
            "PortalName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PortalContactEmail", "PortalName", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::Portal"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTSiteWise::Portal.Alarms": {
      "additionalProperties": false,
      "properties": {
        "AlarmRoleArn": {
          "type": "string"
        },
        "NotificationLambdaArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTSiteWise::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PortalId": {
              "type": "string"
            },
            "ProjectDescription": {
              "type": "string"
            },
            "ProjectName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PortalId", "ProjectName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTSiteWise::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTThingsGraph::FlowTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CompatibleNamespaceVersion": {
              "type": "number"
            },
            "Definition": {
              "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument"
            }
          },
          "required": ["Definition"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTThingsGraph::FlowTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": {
      "additionalProperties": false,
      "properties": {
        "Language": {
          "type": "string"
        },
        "Text": {
          "type": "string"
        }
      },
      "required": ["Language", "Text"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ComponentTypeId": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "ExtendsFrom": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Functions": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Function"
                }
              },
              "type": "object"
            },
            "IsSingleton": {
              "type": "boolean"
            },
            "PropertyDefinitions": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.PropertyDefinition"
                }
              },
              "type": "object"
            },
            "PropertyGroups": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.PropertyGroup"
                }
              },
              "type": "object"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "WorkspaceId": {
              "type": "string"
            }
          },
          "required": ["ComponentTypeId", "WorkspaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTTwinMaker::ComponentType"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.DataConnector": {
      "additionalProperties": false,
      "properties": {
        "IsNative": {
          "type": "boolean"
        },
        "Lambda": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.LambdaFunction"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.DataType": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "items": {
            "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue"
          },
          "type": "array"
        },
        "NestedType": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataType"
        },
        "Relationship": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Relationship"
        },
        "Type": {
          "type": "string"
        },
        "UnitOfMeasure": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.DataValue": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "boolean"
        },
        "DoubleValue": {
          "type": "number"
        },
        "Expression": {
          "type": "string"
        },
        "IntegerValue": {
          "type": "number"
        },
        "ListValue": {
          "items": {
            "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue"
          },
          "type": "array"
        },
        "LongValue": {
          "type": "number"
        },
        "MapValue": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue"
            }
          },
          "type": "object"
        },
        "RelationshipValue": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.RelationshipValue"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.Error": {
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.Function": {
      "additionalProperties": false,
      "properties": {
        "ImplementedBy": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataConnector"
        },
        "RequiredProperties": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Scope": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.LambdaFunction": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.PropertyDefinition": {
      "additionalProperties": false,
      "properties": {
        "Configurations": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "DataType": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataType"
        },
        "DefaultValue": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue"
        },
        "IsExternalId": {
          "type": "boolean"
        },
        "IsRequiredInEntity": {
          "type": "boolean"
        },
        "IsStoredExternally": {
          "type": "boolean"
        },
        "IsTimeSeries": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.PropertyGroup": {
      "additionalProperties": false,
      "properties": {
        "GroupType": {
          "type": "string"
        },
        "PropertyNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.Relationship": {
      "additionalProperties": false,
      "properties": {
        "RelationshipType": {
          "type": "string"
        },
        "TargetComponentTypeId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.RelationshipValue": {
      "additionalProperties": false,
      "properties": {
        "TargetComponentName": {
          "type": "string"
        },
        "TargetEntityId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::ComponentType.Status": {
      "additionalProperties": false,
      "properties": {
        "Error": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Error"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Components": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Component"
                }
              },
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "EntityId": {
              "type": "string"
            },
            "EntityName": {
              "type": "string"
            },
            "ParentEntityId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "WorkspaceId": {
              "type": "string"
            }
          },
          "required": ["EntityName", "WorkspaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTTwinMaker::Entity"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Component": {
      "additionalProperties": false,
      "properties": {
        "ComponentName": {
          "type": "string"
        },
        "ComponentTypeId": {
          "type": "string"
        },
        "DefinedIn": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Properties": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Property"
            }
          },
          "type": "object"
        },
        "PropertyGroups": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.PropertyGroup"
            }
          },
          "type": "object"
        },
        "Status": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Status"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.DataType": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "items": {
            "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue"
          },
          "type": "array"
        },
        "NestedType": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataType"
        },
        "Relationship": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Relationship"
        },
        "Type": {
          "type": "string"
        },
        "UnitOfMeasure": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.DataValue": {
      "additionalProperties": false,
      "properties": {
        "BooleanValue": {
          "type": "boolean"
        },
        "DoubleValue": {
          "type": "number"
        },
        "Expression": {
          "type": "string"
        },
        "IntegerValue": {
          "type": "number"
        },
        "ListValue": {
          "items": {
            "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue"
          },
          "type": "array"
        },
        "LongValue": {
          "type": "number"
        },
        "MapValue": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue"
            }
          },
          "type": "object"
        },
        "RelationshipValue": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.RelationshipValue"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Definition": {
      "additionalProperties": false,
      "properties": {
        "Configuration": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "DataType": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataType"
        },
        "DefaultValue": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue"
        },
        "IsExternalId": {
          "type": "boolean"
        },
        "IsFinal": {
          "type": "boolean"
        },
        "IsImported": {
          "type": "boolean"
        },
        "IsInherited": {
          "type": "boolean"
        },
        "IsRequiredInEntity": {
          "type": "boolean"
        },
        "IsStoredExternally": {
          "type": "boolean"
        },
        "IsTimeSeries": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Error": {
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Property": {
      "additionalProperties": false,
      "properties": {
        "Definition": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Definition"
        },
        "Value": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.PropertyGroup": {
      "additionalProperties": false,
      "properties": {
        "GroupType": {
          "type": "string"
        },
        "PropertyNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Relationship": {
      "additionalProperties": false,
      "properties": {
        "RelationshipType": {
          "type": "string"
        },
        "TargetComponentTypeId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.RelationshipValue": {
      "additionalProperties": false,
      "properties": {
        "TargetComponentName": {
          "type": "string"
        },
        "TargetEntityId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Entity.Status": {
      "additionalProperties": false,
      "properties": {
        "Error": {
          "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Error"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTTwinMaker::Scene": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Capabilities": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ContentLocation": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "SceneId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "WorkspaceId": {
              "type": "string"
            }
          },
          "required": ["ContentLocation", "SceneId", "WorkspaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTTwinMaker::Scene"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::SyncJob": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SyncRole": {
              "type": "string"
            },
            "SyncSource": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "WorkspaceId": {
              "type": "string"
            }
          },
          "required": ["SyncRole", "SyncSource", "WorkspaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTTwinMaker::SyncJob"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTTwinMaker::Workspace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Role": {
              "type": "string"
            },
            "S3Location": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "WorkspaceId": {
              "type": "string"
            }
          },
          "required": ["Role", "S3Location", "WorkspaceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTTwinMaker::Workspace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::Destination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Expression": {
              "type": "string"
            },
            "ExpressionType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Expression", "ExpressionType", "Name", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::Destination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::DeviceProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::DeviceProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile": {
      "additionalProperties": false,
      "properties": {
        "ClassBTimeout": {
          "type": "number"
        },
        "ClassCTimeout": {
          "type": "number"
        },
        "FactoryPresetFreqsList": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "MacVersion": {
          "type": "string"
        },
        "MaxDutyCycle": {
          "type": "number"
        },
        "MaxEirp": {
          "type": "number"
        },
        "PingSlotDr": {
          "type": "number"
        },
        "PingSlotFreq": {
          "type": "number"
        },
        "PingSlotPeriod": {
          "type": "number"
        },
        "RegParamsRevision": {
          "type": "string"
        },
        "RfRegion": {
          "type": "string"
        },
        "RxDataRate2": {
          "type": "number"
        },
        "RxDelay1": {
          "type": "number"
        },
        "RxDrOffset1": {
          "type": "number"
        },
        "RxFreq2": {
          "type": "number"
        },
        "Supports32BitFCnt": {
          "type": "boolean"
        },
        "SupportsClassB": {
          "type": "boolean"
        },
        "SupportsClassC": {
          "type": "boolean"
        },
        "SupportsJoin": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::FuotaTask": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociateMulticastGroup": {
              "type": "string"
            },
            "AssociateWirelessDevice": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisassociateMulticastGroup": {
              "type": "string"
            },
            "DisassociateWirelessDevice": {
              "type": "string"
            },
            "FirmwareUpdateImage": {
              "type": "string"
            },
            "FirmwareUpdateRole": {
              "type": "string"
            },
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FirmwareUpdateImage", "FirmwareUpdateRole", "LoRaWAN"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::FuotaTask"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::FuotaTask.LoRaWAN": {
      "additionalProperties": false,
      "properties": {
        "RfRegion": {
          "type": "string"
        },
        "StartTime": {
          "type": "string"
        }
      },
      "required": ["RfRegion"],
      "type": "object"
    },
    "AWS::IoTWireless::MulticastGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociateWirelessDevice": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisassociateWirelessDevice": {
              "type": "string"
            },
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["LoRaWAN"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::MulticastGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::MulticastGroup.LoRaWAN": {
      "additionalProperties": false,
      "properties": {
        "DlClass": {
          "type": "string"
        },
        "NumberOfDevicesInGroup": {
          "type": "number"
        },
        "NumberOfDevicesRequested": {
          "type": "number"
        },
        "RfRegion": {
          "type": "string"
        }
      },
      "required": ["DlClass", "RfRegion"],
      "type": "object"
    },
    "AWS::IoTWireless::NetworkAnalyzerConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TraceContent": {
              "$ref": "#/definitions/AWS::IoTWireless::NetworkAnalyzerConfiguration.TraceContent"
            },
            "WirelessDevices": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "WirelessGateways": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::NetworkAnalyzerConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::NetworkAnalyzerConfiguration.TraceContent": {
      "additionalProperties": false,
      "properties": {
        "LogLevel": {
          "type": "string"
        },
        "WirelessDeviceFrameInfo": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::PartnerAccount": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountLinked": {
              "type": "boolean"
            },
            "PartnerAccountId": {
              "type": "string"
            },
            "PartnerType": {
              "type": "string"
            },
            "Sidewalk": {
              "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo"
            },
            "SidewalkResponse": {
              "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint"
            },
            "SidewalkUpdate": {
              "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::PartnerAccount"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo": {
      "additionalProperties": false,
      "properties": {
        "AppServerPrivateKey": {
          "type": "string"
        }
      },
      "required": ["AppServerPrivateKey"],
      "type": "object"
    },
    "AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint": {
      "additionalProperties": false,
      "properties": {
        "AmazonId": {
          "type": "string"
        },
        "Arn": {
          "type": "string"
        },
        "Fingerprint": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount": {
      "additionalProperties": false,
      "properties": {
        "AppServerPrivateKey": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::ServiceProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::ServiceProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile": {
      "additionalProperties": false,
      "properties": {
        "AddGwMetadata": {
          "type": "boolean"
        },
        "ChannelMask": {
          "type": "string"
        },
        "DevStatusReqFreq": {
          "type": "number"
        },
        "DlBucketSize": {
          "type": "number"
        },
        "DlRate": {
          "type": "number"
        },
        "DlRatePolicy": {
          "type": "string"
        },
        "DrMax": {
          "type": "number"
        },
        "DrMin": {
          "type": "number"
        },
        "HrAllowed": {
          "type": "boolean"
        },
        "MinGwDiversity": {
          "type": "number"
        },
        "NwkGeoLoc": {
          "type": "boolean"
        },
        "PrAllowed": {
          "type": "boolean"
        },
        "RaAllowed": {
          "type": "boolean"
        },
        "ReportDevStatusBattery": {
          "type": "boolean"
        },
        "ReportDevStatusMargin": {
          "type": "boolean"
        },
        "TargetPer": {
          "type": "number"
        },
        "UlBucketSize": {
          "type": "number"
        },
        "UlRate": {
          "type": "number"
        },
        "UlRatePolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::TaskDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoCreateTasks": {
              "type": "boolean"
            },
            "LoRaWANUpdateGatewayTaskEntry": {
              "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TaskDefinitionType": {
              "type": "string"
            },
            "Update": {
              "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate"
            }
          },
          "required": ["AutoCreateTasks"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::TaskDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion": {
      "additionalProperties": false,
      "properties": {
        "Model": {
          "type": "string"
        },
        "PackageVersion": {
          "type": "string"
        },
        "Station": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate": {
      "additionalProperties": false,
      "properties": {
        "CurrentVersion": {
          "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion"
        },
        "SigKeyCrc": {
          "type": "number"
        },
        "UpdateSignature": {
          "type": "string"
        },
        "UpdateVersion": {
          "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry": {
      "additionalProperties": false,
      "properties": {
        "CurrentVersion": {
          "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion"
        },
        "UpdateVersion": {
          "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate": {
      "additionalProperties": false,
      "properties": {
        "LoRaWAN": {
          "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate"
        },
        "UpdateDataRole": {
          "type": "string"
        },
        "UpdateDataSource": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DestinationName": {
              "type": "string"
            },
            "LastUplinkReceivedAt": {
              "type": "string"
            },
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.LoRaWANDevice"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThingArn": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["DestinationName", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::WirelessDevice"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.AbpV10x": {
      "additionalProperties": false,
      "properties": {
        "DevAddr": {
          "type": "string"
        },
        "SessionKeys": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x"
        }
      },
      "required": ["DevAddr", "SessionKeys"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.AbpV11": {
      "additionalProperties": false,
      "properties": {
        "DevAddr": {
          "type": "string"
        },
        "SessionKeys": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11"
        }
      },
      "required": ["DevAddr", "SessionKeys"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.LoRaWANDevice": {
      "additionalProperties": false,
      "properties": {
        "AbpV10x": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV10x"
        },
        "AbpV11": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV11"
        },
        "DevEui": {
          "type": "string"
        },
        "DeviceProfileId": {
          "type": "string"
        },
        "OtaaV10x": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV10x"
        },
        "OtaaV11": {
          "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV11"
        },
        "ServiceProfileId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.OtaaV10x": {
      "additionalProperties": false,
      "properties": {
        "AppEui": {
          "type": "string"
        },
        "AppKey": {
          "type": "string"
        }
      },
      "required": ["AppEui", "AppKey"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.OtaaV11": {
      "additionalProperties": false,
      "properties": {
        "AppKey": {
          "type": "string"
        },
        "JoinEui": {
          "type": "string"
        },
        "NwkKey": {
          "type": "string"
        }
      },
      "required": ["AppKey", "JoinEui", "NwkKey"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x": {
      "additionalProperties": false,
      "properties": {
        "AppSKey": {
          "type": "string"
        },
        "NwkSKey": {
          "type": "string"
        }
      },
      "required": ["AppSKey", "NwkSKey"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11": {
      "additionalProperties": false,
      "properties": {
        "AppSKey": {
          "type": "string"
        },
        "FNwkSIntKey": {
          "type": "string"
        },
        "NwkSEncKey": {
          "type": "string"
        },
        "SNwkSIntKey": {
          "type": "string"
        }
      },
      "required": ["AppSKey", "FNwkSIntKey", "NwkSEncKey", "SNwkSIntKey"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessGateway": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "LastUplinkReceivedAt": {
              "type": "string"
            },
            "LoRaWAN": {
              "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway.LoRaWANGateway"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThingArn": {
              "type": "string"
            },
            "ThingName": {
              "type": "string"
            }
          },
          "required": ["LoRaWAN"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::IoTWireless::WirelessGateway"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::IoTWireless::WirelessGateway.LoRaWANGateway": {
      "additionalProperties": false,
      "properties": {
        "GatewayEui": {
          "type": "string"
        },
        "RfRegion": {
          "type": "string"
        }
      },
      "required": ["GatewayEui", "RfRegion"],
      "type": "object"
    },
    "AWS::KMS::Alias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AliasName": {
              "type": "string"
            },
            "TargetKeyId": {
              "type": "string"
            }
          },
          "required": ["AliasName", "TargetKeyId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KMS::Alias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KMS::Key": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EnableKeyRotation": {
              "type": "boolean"
            },
            "Enabled": {
              "type": "boolean"
            },
            "KeyPolicy": {
              "type": "object"
            },
            "KeySpec": {
              "type": "string"
            },
            "KeyUsage": {
              "type": "string"
            },
            "MultiRegion": {
              "type": "boolean"
            },
            "PendingWindowInDays": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KeyPolicy"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KMS::Key"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KMS::ReplicaKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "KeyPolicy": {
              "type": "object"
            },
            "PendingWindowInDays": {
              "type": "number"
            },
            "PrimaryKeyArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KeyPolicy", "PrimaryKeyArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KMS::ReplicaKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Capacity": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.Capacity"
            },
            "ConnectorConfiguration": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ConnectorDescription": {
              "type": "string"
            },
            "ConnectorName": {
              "type": "string"
            },
            "KafkaCluster": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaCluster"
            },
            "KafkaClusterClientAuthentication": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication"
            },
            "KafkaClusterEncryptionInTransit": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit"
            },
            "KafkaConnectVersion": {
              "type": "string"
            },
            "LogDelivery": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.LogDelivery"
            },
            "Plugins": {
              "items": {
                "$ref": "#/definitions/AWS::KafkaConnect::Connector.Plugin"
              },
              "type": "array"
            },
            "ServiceExecutionRoleArn": {
              "type": "string"
            },
            "WorkerConfiguration": {
              "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerConfiguration"
            }
          },
          "required": [
            "Capacity",
            "ConnectorConfiguration",
            "ConnectorName",
            "KafkaCluster",
            "KafkaClusterClientAuthentication",
            "KafkaClusterEncryptionInTransit",
            "KafkaConnectVersion",
            "Plugins",
            "ServiceExecutionRoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KafkaConnect::Connector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.ApacheKafkaCluster": {
      "additionalProperties": false,
      "properties": {
        "BootstrapServers": {
          "type": "string"
        },
        "Vpc": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.Vpc"
        }
      },
      "required": ["BootstrapServers", "Vpc"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.AutoScaling": {
      "additionalProperties": false,
      "properties": {
        "MaxWorkerCount": {
          "type": "number"
        },
        "McuCount": {
          "type": "number"
        },
        "MinWorkerCount": {
          "type": "number"
        },
        "ScaleInPolicy": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleInPolicy"
        },
        "ScaleOutPolicy": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleOutPolicy"
        }
      },
      "required": [
        "MaxWorkerCount",
        "McuCount",
        "MinWorkerCount",
        "ScaleInPolicy",
        "ScaleOutPolicy"
      ],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.Capacity": {
      "additionalProperties": false,
      "properties": {
        "AutoScaling": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.AutoScaling"
        },
        "ProvisionedCapacity": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.ProvisionedCapacity"
        }
      },
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "LogGroup": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.CustomPlugin": {
      "additionalProperties": false,
      "properties": {
        "CustomPluginArn": {
          "type": "string"
        },
        "Revision": {
          "type": "number"
        }
      },
      "required": ["CustomPluginArn", "Revision"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.FirehoseLogDelivery": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStream": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.KafkaCluster": {
      "additionalProperties": false,
      "properties": {
        "ApacheKafkaCluster": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.ApacheKafkaCluster"
        }
      },
      "required": ["ApacheKafkaCluster"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationType": {
          "type": "string"
        }
      },
      "required": ["AuthenticationType"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit": {
      "additionalProperties": false,
      "properties": {
        "EncryptionType": {
          "type": "string"
        }
      },
      "required": ["EncryptionType"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.LogDelivery": {
      "additionalProperties": false,
      "properties": {
        "WorkerLogDelivery": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerLogDelivery"
        }
      },
      "required": ["WorkerLogDelivery"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.Plugin": {
      "additionalProperties": false,
      "properties": {
        "CustomPlugin": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.CustomPlugin"
        }
      },
      "required": ["CustomPlugin"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.ProvisionedCapacity": {
      "additionalProperties": false,
      "properties": {
        "McuCount": {
          "type": "number"
        },
        "WorkerCount": {
          "type": "number"
        }
      },
      "required": ["WorkerCount"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.S3LogDelivery": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.ScaleInPolicy": {
      "additionalProperties": false,
      "properties": {
        "CpuUtilizationPercentage": {
          "type": "number"
        }
      },
      "required": ["CpuUtilizationPercentage"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.ScaleOutPolicy": {
      "additionalProperties": false,
      "properties": {
        "CpuUtilizationPercentage": {
          "type": "number"
        }
      },
      "required": ["CpuUtilizationPercentage"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.Vpc": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroups", "Subnets"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.WorkerConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Revision": {
          "type": "number"
        },
        "WorkerConfigurationArn": {
          "type": "string"
        }
      },
      "required": ["Revision", "WorkerConfigurationArn"],
      "type": "object"
    },
    "AWS::KafkaConnect::Connector.WorkerLogDelivery": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogs": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery"
        },
        "Firehose": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.FirehoseLogDelivery"
        },
        "S3": {
          "$ref": "#/definitions/AWS::KafkaConnect::Connector.S3LogDelivery"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomDocumentEnrichmentConfiguration": {
              "$ref": "#/definitions/AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration"
            },
            "DataSourceConfiguration": {
              "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "IndexId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Schedule": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["IndexId", "Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Kendra::DataSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.AccessControlListConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KeyPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.AclConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedGroupsColumnName": {
          "type": "string"
        }
      },
      "required": ["AllowedGroupsColumnName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ColumnConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ChangeDetectingColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DocumentDataColumnName": {
          "type": "string"
        },
        "DocumentIdColumnName": {
          "type": "string"
        },
        "DocumentTitleColumnName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "required": [
        "ChangeDetectingColumns",
        "DocumentDataColumnName",
        "DocumentIdColumnName"
      ],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AttachmentFieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping"
          },
          "type": "array"
        },
        "CrawlAttachments": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping": {
      "additionalProperties": false,
      "properties": {
        "DataSourceFieldName": {
          "type": "string"
        },
        "DateFieldFormat": {
          "type": "string"
        },
        "IndexFieldName": {
          "type": "string"
        }
      },
      "required": ["DataSourceFieldName", "IndexFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceBlogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlogFieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping": {
      "additionalProperties": false,
      "properties": {
        "DataSourceFieldName": {
          "type": "string"
        },
        "DateFieldFormat": {
          "type": "string"
        },
        "IndexFieldName": {
          "type": "string"
        }
      },
      "required": ["DataSourceFieldName", "IndexFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AttachmentConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration"
        },
        "BlogConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceBlogConfiguration"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PageConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageConfiguration"
        },
        "SecretArn": {
          "type": "string"
        },
        "ServerUrl": {
          "type": "string"
        },
        "SpaceConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceConfiguration"
        },
        "Version": {
          "type": "string"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration"
        }
      },
      "required": ["SecretArn", "ServerUrl", "Version"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluencePageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "PageFieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping": {
      "additionalProperties": false,
      "properties": {
        "DataSourceFieldName": {
          "type": "string"
        },
        "DateFieldFormat": {
          "type": "string"
        },
        "IndexFieldName": {
          "type": "string"
        }
      },
      "required": ["DataSourceFieldName", "IndexFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceSpaceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrawlArchivedSpaces": {
          "type": "boolean"
        },
        "CrawlPersonalSpaces": {
          "type": "boolean"
        },
        "ExcludeSpaces": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludeSpaces": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SpaceFieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping": {
      "additionalProperties": false,
      "properties": {
        "DataSourceFieldName": {
          "type": "string"
        },
        "DateFieldFormat": {
          "type": "string"
        },
        "IndexFieldName": {
          "type": "string"
        }
      },
      "required": ["DataSourceFieldName", "IndexFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ConnectionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DatabaseHost": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DatabasePort": {
          "type": "number"
        },
        "SecretArn": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": [
        "DatabaseHost",
        "DatabaseName",
        "DatabasePort",
        "SecretArn",
        "TableName"
      ],
      "type": "object"
    },
    "AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InlineConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.InlineCustomDocumentEnrichmentConfiguration"
          },
          "type": "array"
        },
        "PostExtractionHookConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.HookConfiguration"
        },
        "PreExtractionHookConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.HookConfiguration"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.DataSourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ConfluenceConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceConfiguration"
        },
        "DatabaseConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DatabaseConfiguration"
        },
        "GoogleDriveConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.GoogleDriveConfiguration"
        },
        "OneDriveConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.OneDriveConfiguration"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.S3DataSourceConfiguration"
        },
        "SalesforceConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceConfiguration"
        },
        "ServiceNowConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowConfiguration"
        },
        "SharePointConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration"
        },
        "WebCrawlerConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration"
        },
        "WorkDocsConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.DataSourceToIndexFieldMapping": {
      "additionalProperties": false,
      "properties": {
        "DataSourceFieldName": {
          "type": "string"
        },
        "DateFieldFormat": {
          "type": "string"
        },
        "IndexFieldName": {
          "type": "string"
        }
      },
      "required": ["DataSourceFieldName", "IndexFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.DataSourceVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "SubnetIds"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.DatabaseConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AclConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.AclConfiguration"
        },
        "ColumnConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ColumnConfiguration"
        },
        "ConnectionConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ConnectionConfiguration"
        },
        "DatabaseEngineType": {
          "type": "string"
        },
        "SqlConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SqlConfiguration"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration"
        }
      },
      "required": [
        "ColumnConfiguration",
        "ConnectionConfiguration",
        "DatabaseEngineType"
      ],
      "type": "object"
    },
    "AWS::Kendra::DataSource.DocumentAttributeCondition": {
      "additionalProperties": false,
      "properties": {
        "ConditionDocumentAttributeKey": {
          "type": "string"
        },
        "ConditionOnValue": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeValue"
        },
        "Operator": {
          "type": "string"
        }
      },
      "required": ["ConditionDocumentAttributeKey", "Operator"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.DocumentAttributeTarget": {
      "additionalProperties": false,
      "properties": {
        "TargetDocumentAttributeKey": {
          "type": "string"
        },
        "TargetDocumentAttributeValue": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeValue"
        },
        "TargetDocumentAttributeValueDeletion": {
          "type": "boolean"
        }
      },
      "required": ["TargetDocumentAttributeKey"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.DocumentAttributeValue": {
      "additionalProperties": false,
      "properties": {
        "DateValue": {
          "type": "string"
        },
        "LongValue": {
          "type": "number"
        },
        "StringListValue": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StringValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.DocumentsMetadataConfiguration": {
      "additionalProperties": false,
      "properties": {
        "S3Prefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.GoogleDriveConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ExcludeMimeTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludeSharedDrives": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExcludeUserAccounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "required": ["SecretArn"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.HookConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InvocationCondition": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeCondition"
        },
        "LambdaArn": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        }
      },
      "required": ["LambdaArn", "S3Bucket"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.InlineCustomDocumentEnrichmentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeCondition"
        },
        "DocumentContentDeletion": {
          "type": "boolean"
        },
        "Target": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeTarget"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.OneDriveConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DisableLocalGroups": {
          "type": "boolean"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OneDriveUsers": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.OneDriveUsers"
        },
        "SecretArn": {
          "type": "string"
        },
        "TenantDomain": {
          "type": "string"
        }
      },
      "required": ["OneDriveUsers", "SecretArn", "TenantDomain"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.OneDriveUsers": {
      "additionalProperties": false,
      "properties": {
        "OneDriveUserList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OneDriveUserS3Path": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.ProxyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Credentials": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Host", "Port"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.S3DataSourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccessControlListConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.AccessControlListConfiguration"
        },
        "BucketName": {
          "type": "string"
        },
        "DocumentsMetadataConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentsMetadataConfiguration"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "InclusionPrefixes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.S3Path": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "IncludeFilterTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["DocumentDataFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ChatterFeedConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration"
        },
        "CrawlAttachments": {
          "type": "boolean"
        },
        "ExcludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "KnowledgeArticleConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration"
        },
        "SecretArn": {
          "type": "string"
        },
        "ServerUrl": {
          "type": "string"
        },
        "StandardObjectAttachmentConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration"
        },
        "StandardObjectConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration"
          },
          "type": "array"
        }
      },
      "required": ["SecretArn", "ServerUrl"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DocumentDataFieldName", "Name"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CustomKnowledgeArticleTypeConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration"
          },
          "type": "array"
        },
        "IncludedStates": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StandardKnowledgeArticleTypeConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration"
        }
      },
      "required": ["IncludedStates"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "required": ["DocumentDataFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DocumentDataFieldName", "Name"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ServiceNowConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationType": {
          "type": "string"
        },
        "HostUrl": {
          "type": "string"
        },
        "KnowledgeArticleConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration"
        },
        "SecretArn": {
          "type": "string"
        },
        "ServiceCatalogConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration"
        },
        "ServiceNowBuildVersion": {
          "type": "string"
        }
      },
      "required": ["HostUrl", "SecretArn", "ServiceNowBuildVersion"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrawlAttachments": {
          "type": "boolean"
        },
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "ExcludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "FilterQuery": {
          "type": "string"
        },
        "IncludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["DocumentDataFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrawlAttachments": {
          "type": "boolean"
        },
        "DocumentDataFieldName": {
          "type": "string"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "ExcludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "IncludeAttachmentFilePatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["DocumentDataFieldName"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SharePointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrawlAttachments": {
          "type": "boolean"
        },
        "DisableLocalGroups": {
          "type": "boolean"
        },
        "DocumentTitleFieldName": {
          "type": "string"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecretArn": {
          "type": "string"
        },
        "SharePointVersion": {
          "type": "string"
        },
        "SslCertificateS3Path": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path"
        },
        "Urls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UseChangeLog": {
          "type": "boolean"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration"
        }
      },
      "required": ["SecretArn", "SharePointVersion", "Urls"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.SqlConfiguration": {
      "additionalProperties": false,
      "properties": {
        "QueryIdentifiersEnclosingOption": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BasicAuthentication": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": {
      "additionalProperties": false,
      "properties": {
        "Credentials": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Credentials", "Host", "Port"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AuthenticationConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration"
        },
        "CrawlDepth": {
          "type": "number"
        },
        "MaxContentSizePerPageInMegaBytes": {
          "type": "number"
        },
        "MaxLinksPerPage": {
          "type": "number"
        },
        "MaxUrlsPerMinuteCrawlRate": {
          "type": "number"
        },
        "ProxyConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration"
        },
        "UrlExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "UrlInclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Urls": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls"
        }
      },
      "required": ["Urls"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SeedUrls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WebCrawlerMode": {
          "type": "string"
        }
      },
      "required": ["SeedUrls"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SiteMaps": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SiteMaps"],
      "type": "object"
    },
    "AWS::Kendra::DataSource.WebCrawlerUrls": {
      "additionalProperties": false,
      "properties": {
        "SeedUrlConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration"
        },
        "SiteMapsConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::DataSource.WorkDocsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CrawlComments": {
          "type": "boolean"
        },
        "ExclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FieldMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
          },
          "type": "array"
        },
        "InclusionPatterns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OrganizationId": {
          "type": "string"
        },
        "UseChangeLog": {
          "type": "boolean"
        }
      },
      "required": ["OrganizationId"],
      "type": "object"
    },
    "AWS::Kendra::Faq": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "FileFormat": {
              "type": "string"
            },
            "IndexId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "S3Path": {
              "$ref": "#/definitions/AWS::Kendra::Faq.S3Path"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["IndexId", "Name", "RoleArn", "S3Path"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Kendra::Faq"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Kendra::Faq.S3Path": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::Kendra::Index": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CapacityUnits": {
              "$ref": "#/definitions/AWS::Kendra::Index.CapacityUnitsConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "DocumentMetadataConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::Kendra::Index.DocumentMetadataConfiguration"
              },
              "type": "array"
            },
            "Edition": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "ServerSideEncryptionConfiguration": {
              "$ref": "#/definitions/AWS::Kendra::Index.ServerSideEncryptionConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserContextPolicy": {
              "type": "string"
            },
            "UserTokenConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::Kendra::Index.UserTokenConfiguration"
              },
              "type": "array"
            }
          },
          "required": ["Edition", "Name", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Kendra::Index"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Kendra::Index.CapacityUnitsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "QueryCapacityUnits": {
          "type": "number"
        },
        "StorageCapacityUnits": {
          "type": "number"
        }
      },
      "required": ["QueryCapacityUnits", "StorageCapacityUnits"],
      "type": "object"
    },
    "AWS::Kendra::Index.DocumentMetadataConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Relevance": {
          "$ref": "#/definitions/AWS::Kendra::Index.Relevance"
        },
        "Search": {
          "$ref": "#/definitions/AWS::Kendra::Index.Search"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::Kendra::Index.JsonTokenTypeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "GroupAttributeField": {
          "type": "string"
        },
        "UserNameAttributeField": {
          "type": "string"
        }
      },
      "required": ["GroupAttributeField", "UserNameAttributeField"],
      "type": "object"
    },
    "AWS::Kendra::Index.JwtTokenTypeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ClaimRegex": {
          "type": "string"
        },
        "GroupAttributeField": {
          "type": "string"
        },
        "Issuer": {
          "type": "string"
        },
        "KeyLocation": {
          "type": "string"
        },
        "SecretManagerArn": {
          "type": "string"
        },
        "URL": {
          "type": "string"
        },
        "UserNameAttributeField": {
          "type": "string"
        }
      },
      "required": ["KeyLocation"],
      "type": "object"
    },
    "AWS::Kendra::Index.Relevance": {
      "additionalProperties": false,
      "properties": {
        "Duration": {
          "type": "string"
        },
        "Freshness": {
          "type": "boolean"
        },
        "Importance": {
          "type": "number"
        },
        "RankOrder": {
          "type": "string"
        },
        "ValueImportanceItems": {
          "items": {
            "$ref": "#/definitions/AWS::Kendra::Index.ValueImportanceItem"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::Index.Search": {
      "additionalProperties": false,
      "properties": {
        "Displayable": {
          "type": "boolean"
        },
        "Facetable": {
          "type": "boolean"
        },
        "Searchable": {
          "type": "boolean"
        },
        "Sortable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::Index.ServerSideEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::Index.UserTokenConfiguration": {
      "additionalProperties": false,
      "properties": {
        "JsonTokenTypeConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::Index.JsonTokenTypeConfiguration"
        },
        "JwtTokenTypeConfiguration": {
          "$ref": "#/definitions/AWS::Kendra::Index.JwtTokenTypeConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Kendra::Index.ValueImportanceItem": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Kinesis::Stream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "RetentionPeriodHours": {
              "type": "number"
            },
            "ShardCount": {
              "type": "number"
            },
            "StreamEncryption": {
              "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption"
            },
            "StreamModeDetails": {
              "$ref": "#/definitions/AWS::Kinesis::Stream.StreamModeDetails"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Kinesis::Stream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Kinesis::Stream.StreamEncryption": {
      "additionalProperties": false,
      "properties": {
        "EncryptionType": {
          "type": "string"
        },
        "KeyId": {
          "type": "string"
        }
      },
      "required": ["EncryptionType", "KeyId"],
      "type": "object"
    },
    "AWS::Kinesis::Stream.StreamModeDetails": {
      "additionalProperties": false,
      "properties": {
        "StreamMode": {
          "type": "string"
        }
      },
      "required": ["StreamMode"],
      "type": "object"
    },
    "AWS::Kinesis::StreamConsumer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConsumerName": {
              "type": "string"
            },
            "StreamARN": {
              "type": "string"
            }
          },
          "required": ["ConsumerName", "StreamARN"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Kinesis::StreamConsumer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationCode": {
              "type": "string"
            },
            "ApplicationDescription": {
              "type": "string"
            },
            "ApplicationName": {
              "type": "string"
            },
            "Inputs": {
              "items": {
                "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input"
              },
              "type": "array"
            }
          },
          "required": ["Inputs"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalytics::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.CSVMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordColumnDelimiter": {
          "type": "string"
        },
        "RecordRowDelimiter": {
          "type": "string"
        }
      },
      "required": ["RecordColumnDelimiter", "RecordRowDelimiter"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.Input": {
      "additionalProperties": false,
      "properties": {
        "InputParallelism": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism"
        },
        "InputProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration"
        },
        "InputSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema"
        },
        "KinesisFirehoseInput": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput"
        },
        "KinesisStreamsInput": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput"
        },
        "NamePrefix": {
          "type": "string"
        }
      },
      "required": ["InputSchema", "NamePrefix"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.InputLambdaProcessor": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.InputParallelism": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InputLambdaProcessor": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.InputSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordColumns": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn"
          },
          "type": "array"
        },
        "RecordEncoding": {
          "type": "string"
        },
        "RecordFormat": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat"
        }
      },
      "required": ["RecordColumns", "RecordFormat"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.JSONMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordRowPath": {
          "type": "string"
        }
      },
      "required": ["RecordRowPath"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.KinesisStreamsInput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.MappingParameters": {
      "additionalProperties": false,
      "properties": {
        "CSVMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters"
        },
        "JSONMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.RecordColumn": {
      "additionalProperties": false,
      "properties": {
        "Mapping": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SqlType": {
          "type": "string"
        }
      },
      "required": ["Name", "SqlType"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::Application.RecordFormat": {
      "additionalProperties": false,
      "properties": {
        "MappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters"
        },
        "RecordFormatType": {
          "type": "string"
        }
      },
      "required": ["RecordFormatType"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "Output": {
              "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output"
            }
          },
          "required": ["ApplicationName", "Output"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalytics::ApplicationOutput"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordFormatType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationOutput.Output": {
      "additionalProperties": false,
      "properties": {
        "DestinationSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema"
        },
        "KinesisFirehoseOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput"
        },
        "KinesisStreamsOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput"
        },
        "LambdaOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DestinationSchema"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "ReferenceDataSource": {
              "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource"
            }
          },
          "required": ["ApplicationName", "ReferenceDataSource"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalytics::ApplicationReferenceDataSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordColumnDelimiter": {
          "type": "string"
        },
        "RecordRowDelimiter": {
          "type": "string"
        }
      },
      "required": ["RecordColumnDelimiter", "RecordRowDelimiter"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordRowPath": {
          "type": "string"
        }
      },
      "required": ["RecordRowPath"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": {
      "additionalProperties": false,
      "properties": {
        "CSVMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters"
        },
        "JSONMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": {
      "additionalProperties": false,
      "properties": {
        "Mapping": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SqlType": {
          "type": "string"
        }
      },
      "required": ["Name", "SqlType"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": {
      "additionalProperties": false,
      "properties": {
        "MappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters"
        },
        "RecordFormatType": {
          "type": "string"
        }
      },
      "required": ["RecordFormatType"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "ReferenceSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema"
        },
        "S3ReferenceDataSource": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["ReferenceSchema"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordColumns": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn"
          },
          "type": "array"
        },
        "RecordEncoding": {
          "type": "string"
        },
        "RecordFormat": {
          "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat"
        }
      },
      "required": ["RecordColumns", "RecordFormat"],
      "type": "object"
    },
    "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "BucketARN": {
          "type": "string"
        },
        "FileKey": {
          "type": "string"
        },
        "ReferenceRoleARN": {
          "type": "string"
        }
      },
      "required": ["BucketARN", "FileKey", "ReferenceRoleARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration"
            },
            "ApplicationDescription": {
              "type": "string"
            },
            "ApplicationMaintenanceConfiguration": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationMaintenanceConfiguration"
            },
            "ApplicationMode": {
              "type": "string"
            },
            "ApplicationName": {
              "type": "string"
            },
            "RunConfiguration": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RunConfiguration"
            },
            "RuntimeEnvironment": {
              "type": "string"
            },
            "ServiceExecutionRole": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["RuntimeEnvironment", "ServiceExecutionRole"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalyticsV2::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CodeContent": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent"
        },
        "CodeContentType": {
          "type": "string"
        }
      },
      "required": ["CodeContent", "CodeContentType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationCodeConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration"
        },
        "ApplicationSnapshotConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration"
        },
        "EnvironmentProperties": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties"
        },
        "FlinkApplicationConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration"
        },
        "SqlApplicationConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration"
        },
        "VpcConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.VpcConfiguration"
          },
          "type": "array"
        },
        "ZeppelinApplicationConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ApplicationMaintenanceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationMaintenanceWindowStartTime": {
          "type": "string"
        }
      },
      "required": ["ApplicationMaintenanceWindowStartTime"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ApplicationRestoreConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationRestoreType": {
          "type": "string"
        },
        "SnapshotName": {
          "type": "string"
        }
      },
      "required": ["ApplicationRestoreType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SnapshotsEnabled": {
          "type": "boolean"
        }
      },
      "required": ["SnapshotsEnabled"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordColumnDelimiter": {
          "type": "string"
        },
        "RecordRowDelimiter": {
          "type": "string"
        }
      },
      "required": ["RecordColumnDelimiter", "RecordRowDelimiter"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.CatalogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "GlueDataCatalogConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CheckpointInterval": {
          "type": "number"
        },
        "CheckpointingEnabled": {
          "type": "boolean"
        },
        "ConfigurationType": {
          "type": "string"
        },
        "MinPauseBetweenCheckpoints": {
          "type": "number"
        }
      },
      "required": ["ConfigurationType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.CodeContent": {
      "additionalProperties": false,
      "properties": {
        "S3ContentLocation": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation"
        },
        "TextContent": {
          "type": "string"
        },
        "ZipFileContent": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ArtifactType": {
          "type": "string"
        },
        "MavenReference": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MavenReference"
        },
        "S3ContentLocation": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation"
        }
      },
      "required": ["ArtifactType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "S3ContentLocation": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation"
        }
      },
      "required": ["S3ContentLocation"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": {
      "additionalProperties": false,
      "properties": {
        "PropertyGroups": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CheckpointConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration"
        },
        "MonitoringConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration"
        },
        "ParallelismConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.FlinkRunConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowNonRestoredState": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DatabaseARN": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.Input": {
      "additionalProperties": false,
      "properties": {
        "InputParallelism": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism"
        },
        "InputProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration"
        },
        "InputSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema"
        },
        "KinesisFirehoseInput": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput"
        },
        "KinesisStreamsInput": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput"
        },
        "NamePrefix": {
          "type": "string"
        }
      },
      "required": ["InputSchema", "NamePrefix"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.InputParallelism": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InputLambdaProcessor": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.InputSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordColumns": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn"
          },
          "type": "array"
        },
        "RecordEncoding": {
          "type": "string"
        },
        "RecordFormat": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat"
        }
      },
      "required": ["RecordColumns", "RecordFormat"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordRowPath": {
          "type": "string"
        }
      },
      "required": ["RecordRowPath"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.MappingParameters": {
      "additionalProperties": false,
      "properties": {
        "CSVMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters"
        },
        "JSONMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.MavenReference": {
      "additionalProperties": false,
      "properties": {
        "ArtifactId": {
          "type": "string"
        },
        "GroupId": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["ArtifactId", "GroupId", "Version"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ConfigurationType": {
          "type": "string"
        },
        "LogLevel": {
          "type": "string"
        },
        "MetricsLevel": {
          "type": "string"
        }
      },
      "required": ["ConfigurationType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutoScalingEnabled": {
          "type": "boolean"
        },
        "ConfigurationType": {
          "type": "string"
        },
        "Parallelism": {
          "type": "number"
        },
        "ParallelismPerKPU": {
          "type": "number"
        }
      },
      "required": ["ConfigurationType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.PropertyGroup": {
      "additionalProperties": false,
      "properties": {
        "PropertyGroupId": {
          "type": "string"
        },
        "PropertyMap": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.RecordColumn": {
      "additionalProperties": false,
      "properties": {
        "Mapping": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SqlType": {
          "type": "string"
        }
      },
      "required": ["Name", "SqlType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.RecordFormat": {
      "additionalProperties": false,
      "properties": {
        "MappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters"
        },
        "RecordFormatType": {
          "type": "string"
        }
      },
      "required": ["RecordFormatType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.RunConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ApplicationRestoreConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationRestoreConfiguration"
        },
        "FlinkRunConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkRunConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation": {
      "additionalProperties": false,
      "properties": {
        "BasePath": {
          "type": "string"
        },
        "BucketARN": {
          "type": "string"
        }
      },
      "required": ["BucketARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": {
      "additionalProperties": false,
      "properties": {
        "BucketARN": {
          "type": "string"
        },
        "FileKey": {
          "type": "string"
        },
        "ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["BucketARN", "FileKey"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Inputs": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "SubnetIds"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CatalogConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CatalogConfiguration"
        },
        "CustomArtifactsConfiguration": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration"
          },
          "type": "array"
        },
        "DeployAsApplicationConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration"
        },
        "MonitoringConfiguration": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogLevel": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "CloudWatchLoggingOption": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption"
            }
          },
          "required": ["ApplicationName", "CloudWatchLoggingOption"],
          "type": "object"
        },
        "Type": {
          "enum": [
            "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption"
          ],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": {
      "additionalProperties": false,
      "properties": {
        "LogStreamARN": {
          "type": "string"
        }
      },
      "required": ["LogStreamARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "Output": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output"
            }
          },
          "required": ["ApplicationName", "Output"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalyticsV2::ApplicationOutput"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordFormatType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": {
      "additionalProperties": false,
      "properties": {
        "ResourceARN": {
          "type": "string"
        }
      },
      "required": ["ResourceARN"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": {
      "additionalProperties": false,
      "properties": {
        "DestinationSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema"
        },
        "KinesisFirehoseOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput"
        },
        "KinesisStreamsOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput"
        },
        "LambdaOutput": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DestinationSchema"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationName": {
              "type": "string"
            },
            "ReferenceDataSource": {
              "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource"
            }
          },
          "required": ["ApplicationName", "ReferenceDataSource"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordColumnDelimiter": {
          "type": "string"
        },
        "RecordRowDelimiter": {
          "type": "string"
        }
      },
      "required": ["RecordColumnDelimiter", "RecordRowDelimiter"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": {
      "additionalProperties": false,
      "properties": {
        "RecordRowPath": {
          "type": "string"
        }
      },
      "required": ["RecordRowPath"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": {
      "additionalProperties": false,
      "properties": {
        "CSVMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters"
        },
        "JSONMappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters"
        }
      },
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": {
      "additionalProperties": false,
      "properties": {
        "Mapping": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SqlType": {
          "type": "string"
        }
      },
      "required": ["Name", "SqlType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": {
      "additionalProperties": false,
      "properties": {
        "MappingParameters": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters"
        },
        "RecordFormatType": {
          "type": "string"
        }
      },
      "required": ["RecordFormatType"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "ReferenceSchema": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema"
        },
        "S3ReferenceDataSource": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["ReferenceSchema"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": {
      "additionalProperties": false,
      "properties": {
        "RecordColumns": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn"
          },
          "type": "array"
        },
        "RecordEncoding": {
          "type": "string"
        },
        "RecordFormat": {
          "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat"
        }
      },
      "required": ["RecordColumns", "RecordFormat"],
      "type": "object"
    },
    "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": {
      "additionalProperties": false,
      "properties": {
        "BucketARN": {
          "type": "string"
        },
        "FileKey": {
          "type": "string"
        }
      },
      "required": ["BucketARN", "FileKey"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmazonOpenSearchServerlessDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessDestinationConfiguration"
            },
            "AmazonopensearchserviceDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration"
            },
            "DeliveryStreamEncryptionConfigurationInput": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput"
            },
            "DeliveryStreamName": {
              "type": "string"
            },
            "DeliveryStreamType": {
              "type": "string"
            },
            "ElasticsearchDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration"
            },
            "ExtendedS3DestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration"
            },
            "HttpEndpointDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration"
            },
            "KinesisStreamSourceConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration"
            },
            "RedshiftDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration"
            },
            "S3DestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
            },
            "SplunkDestinationConfiguration": {
              "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisFirehose::DeliveryStream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessBufferingHints": {
      "additionalProperties": false,
      "properties": {
        "IntervalInSeconds": {
          "type": "number"
        },
        "SizeInMBs": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessBufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "CollectionEndpoint": {
          "type": "string"
        },
        "IndexName": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessRetryOptions"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration"
        }
      },
      "required": ["IndexName", "RoleARN", "S3Configuration"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessRetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": {
      "additionalProperties": false,
      "properties": {
        "IntervalInSeconds": {
          "type": "number"
        },
        "SizeInMBs": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "ClusterEndpoint": {
          "type": "string"
        },
        "DomainARN": {
          "type": "string"
        },
        "IndexName": {
          "type": "string"
        },
        "IndexRotationPeriod": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "TypeName": {
          "type": "string"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration"
        }
      },
      "required": ["IndexName", "RoleARN", "S3Configuration"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.BufferingHints": {
      "additionalProperties": false,
      "properties": {
        "IntervalInSeconds": {
          "type": "number"
        },
        "SizeInMBs": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "LogGroupName": {
          "type": "string"
        },
        "LogStreamName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.CopyCommand": {
      "additionalProperties": false,
      "properties": {
        "CopyOptions": {
          "type": "string"
        },
        "DataTableColumns": {
          "type": "string"
        },
        "DataTableName": {
          "type": "string"
        }
      },
      "required": ["DataTableName"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "InputFormatConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration"
        },
        "OutputFormatConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration"
        },
        "SchemaConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": {
      "additionalProperties": false,
      "properties": {
        "KeyARN": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        }
      },
      "required": ["KeyType"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.Deserializer": {
      "additionalProperties": false,
      "properties": {
        "HiveJsonSerDe": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe"
        },
        "OpenXJsonSerDe": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": {
      "additionalProperties": false,
      "properties": {
        "IntervalInSeconds": {
          "type": "number"
        },
        "SizeInMBs": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "ClusterEndpoint": {
          "type": "string"
        },
        "DomainARN": {
          "type": "string"
        },
        "IndexName": {
          "type": "string"
        },
        "IndexRotationPeriod": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "TypeName": {
          "type": "string"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration"
        }
      },
      "required": ["IndexName", "RoleARN", "S3Configuration"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KMSEncryptionConfig": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig"
        },
        "NoEncryptionConfig": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BucketARN": {
          "type": "string"
        },
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "CompressionFormat": {
          "type": "string"
        },
        "DataFormatConversionConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration"
        },
        "DynamicPartitioningConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration"
        },
        "EncryptionConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration"
        },
        "ErrorOutputPrefix": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "S3BackupMode": {
          "type": "string"
        }
      },
      "required": ["BucketARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe": {
      "additionalProperties": false,
      "properties": {
        "TimestampFormats": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute": {
      "additionalProperties": false,
      "properties": {
        "AttributeName": {
          "type": "string"
        },
        "AttributeValue": {
          "type": "string"
        }
      },
      "required": ["AttributeName", "AttributeValue"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccessKey": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Url"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "EndpointConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RequestConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        }
      },
      "required": ["EndpointConfiguration", "S3Configuration"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CommonAttributes": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute"
          },
          "type": "array"
        },
        "ContentEncoding": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Deserializer": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Deserializer"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig": {
      "additionalProperties": false,
      "properties": {
        "AWSKMSKeyARN": {
          "type": "string"
        }
      },
      "required": ["AWSKMSKeyARN"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KinesisStreamARN": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["KinesisStreamARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe": {
      "additionalProperties": false,
      "properties": {
        "CaseInsensitive": {
          "type": "boolean"
        },
        "ColumnToJsonKeyMappings": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ConvertDotsInJsonKeysToUnderscores": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.OrcSerDe": {
      "additionalProperties": false,
      "properties": {
        "BlockSizeBytes": {
          "type": "number"
        },
        "BloomFilterColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BloomFilterFalsePositiveProbability": {
          "type": "number"
        },
        "Compression": {
          "type": "string"
        },
        "DictionaryKeyThreshold": {
          "type": "number"
        },
        "EnablePadding": {
          "type": "boolean"
        },
        "FormatVersion": {
          "type": "string"
        },
        "PaddingTolerance": {
          "type": "number"
        },
        "RowIndexStride": {
          "type": "number"
        },
        "StripeSizeBytes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Serializer": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Serializer"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ParquetSerDe": {
      "additionalProperties": false,
      "properties": {
        "BlockSizeBytes": {
          "type": "number"
        },
        "Compression": {
          "type": "string"
        },
        "EnableDictionaryCompression": {
          "type": "boolean"
        },
        "MaxPaddingBytes": {
          "type": "number"
        },
        "PageSizeBytes": {
          "type": "number"
        },
        "WriterVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "Processors": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Processor"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.Processor": {
      "additionalProperties": false,
      "properties": {
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessorParameter"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.ProcessorParameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterName", "ParameterValue"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "ClusterJDBCURL": {
          "type": "string"
        },
        "CopyCommand": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CopyCommand"
        },
        "Password": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions"
        },
        "RoleARN": {
          "type": "string"
        },
        "S3BackupConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": [
        "ClusterJDBCURL",
        "CopyCommand",
        "Password",
        "RoleARN",
        "S3Configuration",
        "Username"
      ],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.RetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BucketARN": {
          "type": "string"
        },
        "BufferingHints": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints"
        },
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "CompressionFormat": {
          "type": "string"
        },
        "EncryptionConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration"
        },
        "ErrorOutputPrefix": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        }
      },
      "required": ["BucketARN", "RoleARN"],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "VersionId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.Serializer": {
      "additionalProperties": false,
      "properties": {
        "OrcSerDe": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OrcSerDe"
        },
        "ParquetSerDe": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ParquetSerDe"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLoggingOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
        },
        "HECAcknowledgmentTimeoutInSeconds": {
          "type": "number"
        },
        "HECEndpoint": {
          "type": "string"
        },
        "HECEndpointType": {
          "type": "string"
        },
        "HECToken": {
          "type": "string"
        },
        "ProcessingConfiguration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
        },
        "RetryOptions": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions"
        },
        "S3BackupMode": {
          "type": "string"
        },
        "S3Configuration": {
          "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
        }
      },
      "required": [
        "HECEndpoint",
        "HECEndpointType",
        "HECToken",
        "S3Configuration"
      ],
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::KinesisFirehose::DeliveryStream.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "RoleARN": {
          "type": "string"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["RoleARN", "SecurityGroupIds", "SubnetIds"],
      "type": "object"
    },
    "AWS::KinesisVideo::SignalingChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MessageTtlSeconds": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisVideo::SignalingChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::KinesisVideo::Stream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataRetentionInHours": {
              "type": "number"
            },
            "DeviceName": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MediaType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::KinesisVideo::Stream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::LakeFormation::DataCellsFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ColumnNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ColumnWildcard": {
              "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter.ColumnWildcard"
            },
            "DatabaseName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RowFilter": {
              "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter.RowFilter"
            },
            "TableCatalogId": {
              "type": "string"
            },
            "TableName": {
              "type": "string"
            }
          },
          "required": ["DatabaseName", "Name", "TableCatalogId", "TableName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::DataCellsFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::DataCellsFilter.ColumnWildcard": {
      "additionalProperties": false,
      "properties": {
        "ExcludedColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::DataCellsFilter.RowFilter": {
      "additionalProperties": false,
      "properties": {
        "AllRowsWildcard": {
          "type": "object"
        },
        "FilterExpression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::DataLakeSettings": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Admins": {
              "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins"
            },
            "TrustedResourceOwners": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::DataLakeSettings"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::LakeFormation::DataLakeSettings.Admins": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::LakeFormation::DataLakeSettings.DataLakePrincipal": {
      "additionalProperties": false,
      "properties": {
        "DataLakePrincipalIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataLakePrincipal": {
              "$ref": "#/definitions/AWS::LakeFormation::Permissions.DataLakePrincipal"
            },
            "Permissions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PermissionsWithGrantOption": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Resource": {
              "$ref": "#/definitions/AWS::LakeFormation::Permissions.Resource"
            }
          },
          "required": ["DataLakePrincipal", "Resource"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::Permissions"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.ColumnWildcard": {
      "additionalProperties": false,
      "properties": {
        "ExcludedColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.DataLakePrincipal": {
      "additionalProperties": false,
      "properties": {
        "DataLakePrincipalIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.DataLocationResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "S3Resource": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.DatabaseResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.Resource": {
      "additionalProperties": false,
      "properties": {
        "DataLocationResource": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.DataLocationResource"
        },
        "DatabaseResource": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.DatabaseResource"
        },
        "TableResource": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableResource"
        },
        "TableWithColumnsResource": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableWithColumnsResource"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.TableResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "TableWildcard": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableWildcard"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.TableWildcard": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::LakeFormation::Permissions.TableWithColumnsResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "ColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ColumnWildcard": {
          "$ref": "#/definitions/AWS::LakeFormation::Permissions.ColumnWildcard"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Catalog": {
              "type": "string"
            },
            "Permissions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PermissionsWithGrantOption": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Principal": {
              "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataLakePrincipal"
            },
            "Resource": {
              "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.Resource"
            }
          },
          "required": [
            "Permissions",
            "PermissionsWithGrantOption",
            "Principal",
            "Resource"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::PrincipalPermissions"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.ColumnWildcard": {
      "additionalProperties": false,
      "properties": {
        "ExcludedColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.DataCellsFilterResource": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "TableCatalogId": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["DatabaseName", "Name", "TableCatalogId", "TableName"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.DataLakePrincipal": {
      "additionalProperties": false,
      "properties": {
        "DataLakePrincipalIdentifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.DataLocationResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "ResourceArn": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "ResourceArn"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.DatabaseResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "Name"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.LFTag": {
      "additionalProperties": false,
      "properties": {
        "TagKey": {
          "type": "string"
        },
        "TagValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.LFTagKeyResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "TagKey": {
          "type": "string"
        },
        "TagValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CatalogId", "TagKey", "TagValues"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.LFTagPolicyResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "Expression": {
          "items": {
            "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTag"
          },
          "type": "array"
        },
        "ResourceType": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "Expression", "ResourceType"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.Resource": {
      "additionalProperties": false,
      "properties": {
        "Catalog": {
          "type": "object"
        },
        "DataCellsFilter": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataCellsFilterResource"
        },
        "DataLocation": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataLocationResource"
        },
        "Database": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DatabaseResource"
        },
        "LFTag": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTagKeyResource"
        },
        "LFTagPolicy": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTagPolicyResource"
        },
        "Table": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.TableResource"
        },
        "TableWithColumns": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.TableWithColumnsResource"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.TableResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "TableWildcard": {
          "type": "object"
        }
      },
      "required": ["CatalogId", "DatabaseName"],
      "type": "object"
    },
    "AWS::LakeFormation::PrincipalPermissions.TableWithColumnsResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "ColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ColumnWildcard": {
          "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.ColumnWildcard"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "DatabaseName", "Name"],
      "type": "object"
    },
    "AWS::LakeFormation::Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceArn": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "UseServiceLinkedRole": {
              "type": "boolean"
            }
          },
          "required": ["ResourceArn", "UseServiceLinkedRole"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::Resource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::Tag": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CatalogId": {
              "type": "string"
            },
            "TagKey": {
              "type": "string"
            },
            "TagValues": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["TagKey", "TagValues"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::Tag"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LFTags": {
              "items": {
                "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.LFTagPair"
              },
              "type": "array"
            },
            "Resource": {
              "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.Resource"
            }
          },
          "required": ["LFTags", "Resource"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LakeFormation::TagAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation.DatabaseResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "Name"],
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation.LFTagPair": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "TagKey": {
          "type": "string"
        },
        "TagValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["CatalogId", "TagKey", "TagValues"],
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation.Resource": {
      "additionalProperties": false,
      "properties": {
        "Catalog": {
          "type": "object"
        },
        "Database": {
          "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.DatabaseResource"
        },
        "Table": {
          "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.TableResource"
        },
        "TableWithColumns": {
          "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.TableWithColumnsResource"
        }
      },
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation.TableResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "TableWildcard": {
          "type": "object"
        }
      },
      "required": ["CatalogId", "DatabaseName"],
      "type": "object"
    },
    "AWS::LakeFormation::TagAssociation.TableWithColumnsResource": {
      "additionalProperties": false,
      "properties": {
        "CatalogId": {
          "type": "string"
        },
        "ColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["CatalogId", "ColumnNames", "DatabaseName", "Name"],
      "type": "object"
    },
    "AWS::Lambda::Alias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "FunctionName": {
              "type": "string"
            },
            "FunctionVersion": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ProvisionedConcurrencyConfig": {
              "$ref": "#/definitions/AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration"
            },
            "RoutingConfig": {
              "$ref": "#/definitions/AWS::Lambda::Alias.AliasRoutingConfiguration"
            }
          },
          "required": ["FunctionName", "FunctionVersion", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::Alias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Alias.AliasRoutingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdditionalVersionWeights": {
          "items": {
            "$ref": "#/definitions/AWS::Lambda::Alias.VersionWeight"
          },
          "type": "array"
        }
      },
      "required": ["AdditionalVersionWeights"],
      "type": "object"
    },
    "AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ProvisionedConcurrentExecutions": {
          "type": "number"
        }
      },
      "required": ["ProvisionedConcurrentExecutions"],
      "type": "object"
    },
    "AWS::Lambda::Alias.VersionWeight": {
      "additionalProperties": false,
      "properties": {
        "FunctionVersion": {
          "type": "string"
        },
        "FunctionWeight": {
          "type": "number"
        }
      },
      "required": ["FunctionVersion", "FunctionWeight"],
      "type": "object"
    },
    "AWS::Lambda::CodeSigningConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowedPublishers": {
              "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers"
            },
            "CodeSigningPolicies": {
              "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies"
            },
            "Description": {
              "type": "string"
            }
          },
          "required": ["AllowedPublishers"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::CodeSigningConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::CodeSigningConfig.AllowedPublishers": {
      "additionalProperties": false,
      "properties": {
        "SigningProfileVersionArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SigningProfileVersionArns"],
      "type": "object"
    },
    "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": {
      "additionalProperties": false,
      "properties": {
        "UntrustedArtifactOnDeployment": {
          "type": "string"
        }
      },
      "required": ["UntrustedArtifactOnDeployment"],
      "type": "object"
    },
    "AWS::Lambda::EventInvokeConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationConfig": {
              "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.DestinationConfig"
            },
            "FunctionName": {
              "type": "string"
            },
            "MaximumEventAgeInSeconds": {
              "type": "number"
            },
            "MaximumRetryAttempts": {
              "type": "number"
            },
            "Qualifier": {
              "type": "string"
            }
          },
          "required": ["FunctionName", "Qualifier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::EventInvokeConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::EventInvokeConfig.DestinationConfig": {
      "additionalProperties": false,
      "properties": {
        "OnFailure": {
          "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.OnFailure"
        },
        "OnSuccess": {
          "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.OnSuccess"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventInvokeConfig.OnFailure": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        }
      },
      "required": ["Destination"],
      "type": "object"
    },
    "AWS::Lambda::EventInvokeConfig.OnSuccess": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        }
      },
      "required": ["Destination"],
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AmazonManagedKafkaEventSourceConfig": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.AmazonManagedKafkaEventSourceConfig"
            },
            "BatchSize": {
              "type": "number"
            },
            "BisectBatchOnFunctionError": {
              "type": "boolean"
            },
            "DestinationConfig": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DestinationConfig"
            },
            "Enabled": {
              "type": "boolean"
            },
            "EventSourceArn": {
              "type": "string"
            },
            "FilterCriteria": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.FilterCriteria"
            },
            "FunctionName": {
              "type": "string"
            },
            "FunctionResponseTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MaximumBatchingWindowInSeconds": {
              "type": "number"
            },
            "MaximumRecordAgeInSeconds": {
              "type": "number"
            },
            "MaximumRetryAttempts": {
              "type": "number"
            },
            "ParallelizationFactor": {
              "type": "number"
            },
            "Queues": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ScalingConfig": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.ScalingConfig"
            },
            "SelfManagedEventSource": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SelfManagedEventSource"
            },
            "SelfManagedKafkaEventSourceConfig": {
              "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SelfManagedKafkaEventSourceConfig"
            },
            "SourceAccessConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration"
              },
              "type": "array"
            },
            "StartingPosition": {
              "type": "string"
            },
            "StartingPositionTimestamp": {
              "type": "number"
            },
            "Topics": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "TumblingWindowInSeconds": {
              "type": "number"
            }
          },
          "required": ["FunctionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::EventSourceMapping"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.AmazonManagedKafkaEventSourceConfig": {
      "additionalProperties": false,
      "properties": {
        "ConsumerGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.DestinationConfig": {
      "additionalProperties": false,
      "properties": {
        "OnFailure": {
          "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.OnFailure"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.Endpoints": {
      "additionalProperties": false,
      "properties": {
        "KafkaBootstrapServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.Filter": {
      "additionalProperties": false,
      "properties": {
        "Pattern": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.FilterCriteria": {
      "additionalProperties": false,
      "properties": {
        "Filters": {
          "items": {
            "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.Filter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.OnFailure": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.ScalingConfig": {
      "additionalProperties": false,
      "properties": {
        "MaximumConcurrency": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.SelfManagedEventSource": {
      "additionalProperties": false,
      "properties": {
        "Endpoints": {
          "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.Endpoints"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.SelfManagedKafkaEventSourceConfig": {
      "additionalProperties": false,
      "properties": {
        "ConsumerGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "URI": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Architectures": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Code": {
              "$ref": "#/definitions/AWS::Lambda::Function.Code"
            },
            "CodeSigningConfigArn": {
              "type": "string"
            },
            "DeadLetterConfig": {
              "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig"
            },
            "Description": {
              "type": "string"
            },
            "Environment": {
              "$ref": "#/definitions/AWS::Lambda::Function.Environment"
            },
            "EphemeralStorage": {
              "$ref": "#/definitions/AWS::Lambda::Function.EphemeralStorage"
            },
            "FileSystemConfigs": {
              "items": {
                "$ref": "#/definitions/AWS::Lambda::Function.FileSystemConfig"
              },
              "type": "array"
            },
            "FunctionName": {
              "type": "string"
            },
            "Handler": {
              "type": "string"
            },
            "ImageConfig": {
              "$ref": "#/definitions/AWS::Lambda::Function.ImageConfig"
            },
            "KmsKeyArn": {
              "type": "string"
            },
            "Layers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MemorySize": {
              "type": "number"
            },
            "PackageType": {
              "type": "string"
            },
            "ReservedConcurrentExecutions": {
              "type": "number"
            },
            "Role": {
              "type": "string"
            },
            "Runtime": {
              "type": "string"
            },
            "SnapStart": {
              "$ref": "#/definitions/AWS::Lambda::Function.SnapStart"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Timeout": {
              "type": "number"
            },
            "TracingConfig": {
              "$ref": "#/definitions/AWS::Lambda::Function.TracingConfig"
            },
            "VpcConfig": {
              "$ref": "#/definitions/AWS::Lambda::Function.VpcConfig"
            }
          },
          "required": ["Code", "Role"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::Function"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Function.Code": {
      "additionalProperties": false,
      "properties": {
        "ImageUri": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        },
        "S3ObjectVersion": {
          "type": "string"
        },
        "ZipFile": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "TargetArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.Environment": {
      "additionalProperties": false,
      "properties": {
        "Variables": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.EphemeralStorage": {
      "additionalProperties": false,
      "properties": {
        "Size": {
          "type": "number"
        }
      },
      "required": ["Size"],
      "type": "object"
    },
    "AWS::Lambda::Function.FileSystemConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "LocalMountPath": {
          "type": "string"
        }
      },
      "required": ["Arn", "LocalMountPath"],
      "type": "object"
    },
    "AWS::Lambda::Function.ImageConfig": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EntryPoint": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WorkingDirectory": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.SnapStart": {
      "additionalProperties": false,
      "properties": {
        "ApplyOn": {
          "type": "string"
        }
      },
      "required": ["ApplyOn"],
      "type": "object"
    },
    "AWS::Lambda::Function.SnapStartResponse": {
      "additionalProperties": false,
      "properties": {
        "ApplyOn": {
          "type": "string"
        },
        "OptimizationStatus": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.TracingConfig": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Function.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::LayerVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CompatibleArchitectures": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CompatibleRuntimes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Content": {
              "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content"
            },
            "Description": {
              "type": "string"
            },
            "LayerName": {
              "type": "string"
            },
            "LicenseInfo": {
              "type": "string"
            }
          },
          "required": ["Content"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::LayerVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::LayerVersion.Content": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        },
        "S3ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::Lambda::LayerVersionPermission": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "LayerVersionArn": {
              "type": "string"
            },
            "OrganizationId": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            }
          },
          "required": ["Action", "LayerVersionArn", "Principal"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::LayerVersionPermission"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Permission": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "EventSourceToken": {
              "type": "string"
            },
            "FunctionName": {
              "type": "string"
            },
            "FunctionUrlAuthType": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            },
            "PrincipalOrgID": {
              "type": "string"
            },
            "SourceAccount": {
              "type": "string"
            },
            "SourceArn": {
              "type": "string"
            }
          },
          "required": ["Action", "FunctionName", "Principal"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::Permission"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Url": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthType": {
              "type": "string"
            },
            "Cors": {
              "$ref": "#/definitions/AWS::Lambda::Url.Cors"
            },
            "InvokeMode": {
              "type": "string"
            },
            "Qualifier": {
              "type": "string"
            },
            "TargetFunctionArn": {
              "type": "string"
            }
          },
          "required": ["AuthType", "TargetFunctionArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::Url"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Url.Cors": {
      "additionalProperties": false,
      "properties": {
        "AllowCredentials": {
          "type": "boolean"
        },
        "AllowHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowOrigins": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExposeHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxAge": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lambda::Version": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CodeSha256": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "FunctionName": {
              "type": "string"
            },
            "ProvisionedConcurrencyConfig": {
              "$ref": "#/definitions/AWS::Lambda::Version.ProvisionedConcurrencyConfiguration"
            }
          },
          "required": ["FunctionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lambda::Version"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lambda::Version.ProvisionedConcurrencyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ProvisionedConcurrentExecutions": {
          "type": "number"
        }
      },
      "required": ["ProvisionedConcurrentExecutions"],
      "type": "object"
    },
    "AWS::Lex::Bot": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutoBuildBotLocales": {
              "type": "boolean"
            },
            "BotFileS3Location": {
              "$ref": "#/definitions/AWS::Lex::Bot.S3Location"
            },
            "BotLocales": {
              "items": {
                "$ref": "#/definitions/AWS::Lex::Bot.BotLocale"
              },
              "type": "array"
            },
            "BotTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "DataPrivacy": {
              "$ref": "#/definitions/AWS::Lex::Bot.DataPrivacy"
            },
            "Description": {
              "type": "string"
            },
            "IdleSessionTTLInSeconds": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "TestBotAliasSettings": {
              "$ref": "#/definitions/AWS::Lex::Bot.TestBotAliasSettings"
            },
            "TestBotAliasTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "DataPrivacy",
            "IdleSessionTTLInSeconds",
            "Name",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lex::Bot"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lex::Bot.AdvancedRecognitionSetting": {
      "additionalProperties": false,
      "properties": {
        "AudioRecognitionStrategy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.AllowedInputTypes": {
      "additionalProperties": false,
      "properties": {
        "AllowAudioInput": {
          "type": "boolean"
        },
        "AllowDTMFInput": {
          "type": "boolean"
        }
      },
      "required": ["AllowAudioInput", "AllowDTMFInput"],
      "type": "object"
    },
    "AWS::Lex::Bot.AudioAndDTMFInputSpecification": {
      "additionalProperties": false,
      "properties": {
        "AudioSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.AudioSpecification"
        },
        "DTMFSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.DTMFSpecification"
        },
        "StartTimeoutMs": {
          "type": "number"
        }
      },
      "required": ["StartTimeoutMs"],
      "type": "object"
    },
    "AWS::Lex::Bot.AudioLogDestination": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "$ref": "#/definitions/AWS::Lex::Bot.S3BucketLogDestination"
        }
      },
      "required": ["S3Bucket"],
      "type": "object"
    },
    "AWS::Lex::Bot.AudioLogSetting": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::Lex::Bot.AudioLogDestination"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Destination", "Enabled"],
      "type": "object"
    },
    "AWS::Lex::Bot.AudioSpecification": {
      "additionalProperties": false,
      "properties": {
        "EndTimeoutMs": {
          "type": "number"
        },
        "MaxLengthMs": {
          "type": "number"
        }
      },
      "required": ["EndTimeoutMs", "MaxLengthMs"],
      "type": "object"
    },
    "AWS::Lex::Bot.BotAliasLocaleSettings": {
      "additionalProperties": false,
      "properties": {
        "CodeHookSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.CodeHookSpecification"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::Lex::Bot.BotAliasLocaleSettingsItem": {
      "additionalProperties": false,
      "properties": {
        "BotAliasLocaleSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettings"
        },
        "LocaleId": {
          "type": "string"
        }
      },
      "required": ["BotAliasLocaleSetting", "LocaleId"],
      "type": "object"
    },
    "AWS::Lex::Bot.BotLocale": {
      "additionalProperties": false,
      "properties": {
        "CustomVocabulary": {
          "$ref": "#/definitions/AWS::Lex::Bot.CustomVocabulary"
        },
        "Description": {
          "type": "string"
        },
        "Intents": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.Intent"
          },
          "type": "array"
        },
        "LocaleId": {
          "type": "string"
        },
        "NluConfidenceThreshold": {
          "type": "number"
        },
        "SlotTypes": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SlotType"
          },
          "type": "array"
        },
        "VoiceSettings": {
          "$ref": "#/definitions/AWS::Lex::Bot.VoiceSettings"
        }
      },
      "required": ["LocaleId", "NluConfidenceThreshold"],
      "type": "object"
    },
    "AWS::Lex::Bot.Button": {
      "additionalProperties": false,
      "properties": {
        "Text": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Text", "Value"],
      "type": "object"
    },
    "AWS::Lex::Bot.CloudWatchLogGroupLogDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogGroupArn": {
          "type": "string"
        },
        "LogPrefix": {
          "type": "string"
        }
      },
      "required": ["CloudWatchLogGroupArn", "LogPrefix"],
      "type": "object"
    },
    "AWS::Lex::Bot.CodeHookSpecification": {
      "additionalProperties": false,
      "properties": {
        "LambdaCodeHook": {
          "$ref": "#/definitions/AWS::Lex::Bot.LambdaCodeHook"
        }
      },
      "required": ["LambdaCodeHook"],
      "type": "object"
    },
    "AWS::Lex::Bot.ConversationLogSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioLogSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.AudioLogSetting"
          },
          "type": "array"
        },
        "TextLogSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.TextLogSetting"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.CustomPayload": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::Lex::Bot.CustomVocabulary": {
      "additionalProperties": false,
      "properties": {
        "CustomVocabularyItems": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.CustomVocabularyItem"
          },
          "type": "array"
        }
      },
      "required": ["CustomVocabularyItems"],
      "type": "object"
    },
    "AWS::Lex::Bot.CustomVocabularyItem": {
      "additionalProperties": false,
      "properties": {
        "Phrase": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["Phrase"],
      "type": "object"
    },
    "AWS::Lex::Bot.DTMFSpecification": {
      "additionalProperties": false,
      "properties": {
        "DeletionCharacter": {
          "type": "string"
        },
        "EndCharacter": {
          "type": "string"
        },
        "EndTimeoutMs": {
          "type": "number"
        },
        "MaxLength": {
          "type": "number"
        }
      },
      "required": [
        "DeletionCharacter",
        "EndCharacter",
        "EndTimeoutMs",
        "MaxLength"
      ],
      "type": "object"
    },
    "AWS::Lex::Bot.DataPrivacy": {
      "additionalProperties": false,
      "properties": {
        "ChildDirected": {
          "type": "boolean"
        }
      },
      "required": ["ChildDirected"],
      "type": "object"
    },
    "AWS::Lex::Bot.DialogCodeHookSetting": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::Lex::Bot.ExternalSourceSetting": {
      "additionalProperties": false,
      "properties": {
        "GrammarSlotTypeSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.GrammarSlotTypeSetting"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.FulfillmentCodeHookSetting": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "FulfillmentUpdatesSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentUpdatesSpecification"
        },
        "PostFulfillmentStatusSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.PostFulfillmentStatusSpecification"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::Lex::Bot.FulfillmentStartResponseSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "DelayInSeconds": {
          "type": "number"
        },
        "MessageGroups": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup"
          },
          "type": "array"
        }
      },
      "required": ["DelayInSeconds", "MessageGroups"],
      "type": "object"
    },
    "AWS::Lex::Bot.FulfillmentUpdateResponseSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "FrequencyInSeconds": {
          "type": "number"
        },
        "MessageGroups": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup"
          },
          "type": "array"
        }
      },
      "required": ["FrequencyInSeconds", "MessageGroups"],
      "type": "object"
    },
    "AWS::Lex::Bot.FulfillmentUpdatesSpecification": {
      "additionalProperties": false,
      "properties": {
        "Active": {
          "type": "boolean"
        },
        "StartResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentStartResponseSpecification"
        },
        "TimeoutInSeconds": {
          "type": "number"
        },
        "UpdateResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentUpdateResponseSpecification"
        }
      },
      "required": ["Active"],
      "type": "object"
    },
    "AWS::Lex::Bot.GrammarSlotTypeSetting": {
      "additionalProperties": false,
      "properties": {
        "Source": {
          "$ref": "#/definitions/AWS::Lex::Bot.GrammarSlotTypeSource"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.GrammarSlotTypeSource": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyArn": {
          "type": "string"
        },
        "S3BucketName": {
          "type": "string"
        },
        "S3ObjectKey": {
          "type": "string"
        }
      },
      "required": ["S3BucketName", "S3ObjectKey"],
      "type": "object"
    },
    "AWS::Lex::Bot.ImageResponseCard": {
      "additionalProperties": false,
      "properties": {
        "Buttons": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.Button"
          },
          "type": "array"
        },
        "ImageUrl": {
          "type": "string"
        },
        "Subtitle": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        }
      },
      "required": ["Title"],
      "type": "object"
    },
    "AWS::Lex::Bot.InputContext": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Lex::Bot.Intent": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "DialogCodeHook": {
          "$ref": "#/definitions/AWS::Lex::Bot.DialogCodeHookSetting"
        },
        "FulfillmentCodeHook": {
          "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentCodeHookSetting"
        },
        "InputContexts": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.InputContext"
          },
          "type": "array"
        },
        "IntentClosingSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.IntentClosingSetting"
        },
        "IntentConfirmationSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.IntentConfirmationSetting"
        },
        "KendraConfiguration": {
          "$ref": "#/definitions/AWS::Lex::Bot.KendraConfiguration"
        },
        "Name": {
          "type": "string"
        },
        "OutputContexts": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.OutputContext"
          },
          "type": "array"
        },
        "ParentIntentSignature": {
          "type": "string"
        },
        "SampleUtterances": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SampleUtterance"
          },
          "type": "array"
        },
        "SlotPriorities": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SlotPriority"
          },
          "type": "array"
        },
        "Slots": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.Slot"
          },
          "type": "array"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Lex::Bot.IntentClosingSetting": {
      "additionalProperties": false,
      "properties": {
        "ClosingResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        },
        "IsActive": {
          "type": "boolean"
        }
      },
      "required": ["ClosingResponse"],
      "type": "object"
    },
    "AWS::Lex::Bot.IntentConfirmationSetting": {
      "additionalProperties": false,
      "properties": {
        "DeclinationResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        },
        "IsActive": {
          "type": "boolean"
        },
        "PromptSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.PromptSpecification"
        }
      },
      "required": ["DeclinationResponse", "PromptSpecification"],
      "type": "object"
    },
    "AWS::Lex::Bot.KendraConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KendraIndex": {
          "type": "string"
        },
        "QueryFilterString": {
          "type": "string"
        },
        "QueryFilterStringEnabled": {
          "type": "boolean"
        }
      },
      "required": ["KendraIndex"],
      "type": "object"
    },
    "AWS::Lex::Bot.LambdaCodeHook": {
      "additionalProperties": false,
      "properties": {
        "CodeHookInterfaceVersion": {
          "type": "string"
        },
        "LambdaArn": {
          "type": "string"
        }
      },
      "required": ["CodeHookInterfaceVersion", "LambdaArn"],
      "type": "object"
    },
    "AWS::Lex::Bot.Message": {
      "additionalProperties": false,
      "properties": {
        "CustomPayload": {
          "$ref": "#/definitions/AWS::Lex::Bot.CustomPayload"
        },
        "ImageResponseCard": {
          "$ref": "#/definitions/AWS::Lex::Bot.ImageResponseCard"
        },
        "PlainTextMessage": {
          "$ref": "#/definitions/AWS::Lex::Bot.PlainTextMessage"
        },
        "SSMLMessage": {
          "$ref": "#/definitions/AWS::Lex::Bot.SSMLMessage"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.MessageGroup": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "$ref": "#/definitions/AWS::Lex::Bot.Message"
        },
        "Variations": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.Message"
          },
          "type": "array"
        }
      },
      "required": ["Message"],
      "type": "object"
    },
    "AWS::Lex::Bot.MultipleValuesSetting": {
      "additionalProperties": false,
      "properties": {
        "AllowMultipleValues": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.ObfuscationSetting": {
      "additionalProperties": false,
      "properties": {
        "ObfuscationSettingType": {
          "type": "string"
        }
      },
      "required": ["ObfuscationSettingType"],
      "type": "object"
    },
    "AWS::Lex::Bot.OutputContext": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "TimeToLiveInSeconds": {
          "type": "number"
        },
        "TurnsToLive": {
          "type": "number"
        }
      },
      "required": ["Name", "TimeToLiveInSeconds", "TurnsToLive"],
      "type": "object"
    },
    "AWS::Lex::Bot.PlainTextMessage": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::Lex::Bot.PostFulfillmentStatusSpecification": {
      "additionalProperties": false,
      "properties": {
        "FailureResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        },
        "SuccessResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        },
        "TimeoutResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.PromptAttemptSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "AllowedInputTypes": {
          "$ref": "#/definitions/AWS::Lex::Bot.AllowedInputTypes"
        },
        "AudioAndDTMFInputSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.AudioAndDTMFInputSpecification"
        },
        "TextInputSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.TextInputSpecification"
        }
      },
      "required": ["AllowedInputTypes"],
      "type": "object"
    },
    "AWS::Lex::Bot.PromptSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "MaxRetries": {
          "type": "number"
        },
        "MessageGroupsList": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup"
          },
          "type": "array"
        },
        "MessageSelectionStrategy": {
          "type": "string"
        },
        "PromptAttemptsSpecification": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::Lex::Bot.PromptAttemptSpecification"
            }
          },
          "type": "object"
        }
      },
      "required": ["MaxRetries", "MessageGroupsList"],
      "type": "object"
    },
    "AWS::Lex::Bot.ResponseSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "MessageGroupsList": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup"
          },
          "type": "array"
        }
      },
      "required": ["MessageGroupsList"],
      "type": "object"
    },
    "AWS::Lex::Bot.S3BucketLogDestination": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyArn": {
          "type": "string"
        },
        "LogPrefix": {
          "type": "string"
        },
        "S3BucketArn": {
          "type": "string"
        }
      },
      "required": ["LogPrefix", "S3BucketArn"],
      "type": "object"
    },
    "AWS::Lex::Bot.S3Location": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "type": "string"
        },
        "S3ObjectKey": {
          "type": "string"
        },
        "S3ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3ObjectKey"],
      "type": "object"
    },
    "AWS::Lex::Bot.SSMLMessage": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::Lex::Bot.SampleUtterance": {
      "additionalProperties": false,
      "properties": {
        "Utterance": {
          "type": "string"
        }
      },
      "required": ["Utterance"],
      "type": "object"
    },
    "AWS::Lex::Bot.SampleValue": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::Lex::Bot.SentimentAnalysisSettings": {
      "additionalProperties": false,
      "properties": {
        "DetectSentiment": {
          "type": "boolean"
        }
      },
      "required": ["DetectSentiment"],
      "type": "object"
    },
    "AWS::Lex::Bot.Slot": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "MultipleValuesSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.MultipleValuesSetting"
        },
        "Name": {
          "type": "string"
        },
        "ObfuscationSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.ObfuscationSetting"
        },
        "SlotTypeName": {
          "type": "string"
        },
        "ValueElicitationSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.SlotValueElicitationSetting"
        }
      },
      "required": ["Name", "SlotTypeName", "ValueElicitationSetting"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotDefaultValue": {
      "additionalProperties": false,
      "properties": {
        "DefaultValue": {
          "type": "string"
        }
      },
      "required": ["DefaultValue"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotDefaultValueSpecification": {
      "additionalProperties": false,
      "properties": {
        "DefaultValueList": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SlotDefaultValue"
          },
          "type": "array"
        }
      },
      "required": ["DefaultValueList"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotPriority": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "SlotName": {
          "type": "string"
        }
      },
      "required": ["Priority", "SlotName"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotType": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "ExternalSourceSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.ExternalSourceSetting"
        },
        "Name": {
          "type": "string"
        },
        "ParentSlotTypeSignature": {
          "type": "string"
        },
        "SlotTypeValues": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SlotTypeValue"
          },
          "type": "array"
        },
        "ValueSelectionSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.SlotValueSelectionSetting"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotTypeValue": {
      "additionalProperties": false,
      "properties": {
        "SampleValue": {
          "$ref": "#/definitions/AWS::Lex::Bot.SampleValue"
        },
        "Synonyms": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SampleValue"
          },
          "type": "array"
        }
      },
      "required": ["SampleValue"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotValueElicitationSetting": {
      "additionalProperties": false,
      "properties": {
        "DefaultValueSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.SlotDefaultValueSpecification"
        },
        "PromptSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.PromptSpecification"
        },
        "SampleUtterances": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.SampleUtterance"
          },
          "type": "array"
        },
        "SlotConstraint": {
          "type": "string"
        },
        "WaitAndContinueSpecification": {
          "$ref": "#/definitions/AWS::Lex::Bot.WaitAndContinueSpecification"
        }
      },
      "required": ["SlotConstraint"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotValueRegexFilter": {
      "additionalProperties": false,
      "properties": {
        "Pattern": {
          "type": "string"
        }
      },
      "required": ["Pattern"],
      "type": "object"
    },
    "AWS::Lex::Bot.SlotValueSelectionSetting": {
      "additionalProperties": false,
      "properties": {
        "AdvancedRecognitionSetting": {
          "$ref": "#/definitions/AWS::Lex::Bot.AdvancedRecognitionSetting"
        },
        "RegexFilter": {
          "$ref": "#/definitions/AWS::Lex::Bot.SlotValueRegexFilter"
        },
        "ResolutionStrategy": {
          "type": "string"
        }
      },
      "required": ["ResolutionStrategy"],
      "type": "object"
    },
    "AWS::Lex::Bot.StillWaitingResponseSpecification": {
      "additionalProperties": false,
      "properties": {
        "AllowInterrupt": {
          "type": "boolean"
        },
        "FrequencyInSeconds": {
          "type": "number"
        },
        "MessageGroupsList": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup"
          },
          "type": "array"
        },
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "required": [
        "FrequencyInSeconds",
        "MessageGroupsList",
        "TimeoutInSeconds"
      ],
      "type": "object"
    },
    "AWS::Lex::Bot.TestBotAliasSettings": {
      "additionalProperties": false,
      "properties": {
        "BotAliasLocaleSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettingsItem"
          },
          "type": "array"
        },
        "ConversationLogSettings": {
          "$ref": "#/definitions/AWS::Lex::Bot.ConversationLogSettings"
        },
        "Description": {
          "type": "string"
        },
        "SentimentAnalysisSettings": {
          "$ref": "#/definitions/AWS::Lex::Bot.SentimentAnalysisSettings"
        }
      },
      "type": "object"
    },
    "AWS::Lex::Bot.TextInputSpecification": {
      "additionalProperties": false,
      "properties": {
        "StartTimeoutMs": {
          "type": "number"
        }
      },
      "required": ["StartTimeoutMs"],
      "type": "object"
    },
    "AWS::Lex::Bot.TextLogDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatch": {
          "$ref": "#/definitions/AWS::Lex::Bot.CloudWatchLogGroupLogDestination"
        }
      },
      "required": ["CloudWatch"],
      "type": "object"
    },
    "AWS::Lex::Bot.TextLogSetting": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::Lex::Bot.TextLogDestination"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Destination", "Enabled"],
      "type": "object"
    },
    "AWS::Lex::Bot.VoiceSettings": {
      "additionalProperties": false,
      "properties": {
        "Engine": {
          "type": "string"
        },
        "VoiceId": {
          "type": "string"
        }
      },
      "required": ["VoiceId"],
      "type": "object"
    },
    "AWS::Lex::Bot.WaitAndContinueSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContinueResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        },
        "IsActive": {
          "type": "boolean"
        },
        "StillWaitingResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.StillWaitingResponseSpecification"
        },
        "WaitingResponse": {
          "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification"
        }
      },
      "required": ["ContinueResponse", "WaitingResponse"],
      "type": "object"
    },
    "AWS::Lex::BotAlias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BotAliasLocaleSettings": {
              "items": {
                "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettingsItem"
              },
              "type": "array"
            },
            "BotAliasName": {
              "type": "string"
            },
            "BotAliasTags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "BotId": {
              "type": "string"
            },
            "BotVersion": {
              "type": "string"
            },
            "ConversationLogSettings": {
              "$ref": "#/definitions/AWS::Lex::BotAlias.ConversationLogSettings"
            },
            "Description": {
              "type": "string"
            },
            "SentimentAnalysisSettings": {
              "$ref": "#/definitions/AWS::Lex::BotAlias.SentimentAnalysisSettings"
            }
          },
          "required": ["BotAliasName", "BotId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lex::BotAlias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.AudioLogDestination": {
      "additionalProperties": false,
      "properties": {
        "S3Bucket": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.S3BucketLogDestination"
        }
      },
      "required": ["S3Bucket"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.AudioLogSetting": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogDestination"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Destination", "Enabled"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.BotAliasLocaleSettings": {
      "additionalProperties": false,
      "properties": {
        "CodeHookSpecification": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.CodeHookSpecification"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.BotAliasLocaleSettingsItem": {
      "additionalProperties": false,
      "properties": {
        "BotAliasLocaleSetting": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettings"
        },
        "LocaleId": {
          "type": "string"
        }
      },
      "required": ["BotAliasLocaleSetting", "LocaleId"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogGroupArn": {
          "type": "string"
        },
        "LogPrefix": {
          "type": "string"
        }
      },
      "required": ["CloudWatchLogGroupArn", "LogPrefix"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.CodeHookSpecification": {
      "additionalProperties": false,
      "properties": {
        "LambdaCodeHook": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.LambdaCodeHook"
        }
      },
      "required": ["LambdaCodeHook"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.ConversationLogSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioLogSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogSetting"
          },
          "type": "array"
        },
        "TextLogSettings": {
          "items": {
            "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogSetting"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lex::BotAlias.LambdaCodeHook": {
      "additionalProperties": false,
      "properties": {
        "CodeHookInterfaceVersion": {
          "type": "string"
        },
        "LambdaArn": {
          "type": "string"
        }
      },
      "required": ["CodeHookInterfaceVersion", "LambdaArn"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.S3BucketLogDestination": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyArn": {
          "type": "string"
        },
        "LogPrefix": {
          "type": "string"
        },
        "S3BucketArn": {
          "type": "string"
        }
      },
      "required": ["LogPrefix", "S3BucketArn"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.SentimentAnalysisSettings": {
      "additionalProperties": false,
      "properties": {
        "DetectSentiment": {
          "type": "boolean"
        }
      },
      "required": ["DetectSentiment"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.TextLogDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatch": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination"
        }
      },
      "required": ["CloudWatch"],
      "type": "object"
    },
    "AWS::Lex::BotAlias.TextLogSetting": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogDestination"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Destination", "Enabled"],
      "type": "object"
    },
    "AWS::Lex::BotVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BotId": {
              "type": "string"
            },
            "BotVersionLocaleSpecification": {
              "items": {
                "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleSpecification"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            }
          },
          "required": ["BotId", "BotVersionLocaleSpecification"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lex::BotVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lex::BotVersion.BotVersionLocaleDetails": {
      "additionalProperties": false,
      "properties": {
        "SourceBotVersion": {
          "type": "string"
        }
      },
      "required": ["SourceBotVersion"],
      "type": "object"
    },
    "AWS::Lex::BotVersion.BotVersionLocaleSpecification": {
      "additionalProperties": false,
      "properties": {
        "BotVersionLocaleDetails": {
          "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleDetails"
        },
        "LocaleId": {
          "type": "string"
        }
      },
      "required": ["BotVersionLocaleDetails", "LocaleId"],
      "type": "object"
    },
    "AWS::Lex::ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Policy": {
              "type": "object"
            },
            "ResourceArn": {
              "type": "string"
            }
          },
          "required": ["Policy", "ResourceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lex::ResourcePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LicenseManager::Grant": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowedOperations": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "GrantName": {
              "type": "string"
            },
            "HomeRegion": {
              "type": "string"
            },
            "LicenseArn": {
              "type": "string"
            },
            "Principals": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Status": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LicenseManager::Grant"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::LicenseManager::License": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Beneficiary": {
              "type": "string"
            },
            "ConsumptionConfiguration": {
              "$ref": "#/definitions/AWS::LicenseManager::License.ConsumptionConfiguration"
            },
            "Entitlements": {
              "items": {
                "$ref": "#/definitions/AWS::LicenseManager::License.Entitlement"
              },
              "type": "array"
            },
            "HomeRegion": {
              "type": "string"
            },
            "Issuer": {
              "$ref": "#/definitions/AWS::LicenseManager::License.IssuerData"
            },
            "LicenseMetadata": {
              "items": {
                "$ref": "#/definitions/AWS::LicenseManager::License.Metadata"
              },
              "type": "array"
            },
            "LicenseName": {
              "type": "string"
            },
            "ProductName": {
              "type": "string"
            },
            "ProductSKU": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Validity": {
              "$ref": "#/definitions/AWS::LicenseManager::License.ValidityDateFormat"
            }
          },
          "required": [
            "ConsumptionConfiguration",
            "Entitlements",
            "HomeRegion",
            "Issuer",
            "LicenseName",
            "ProductName",
            "Validity"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LicenseManager::License"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LicenseManager::License.BorrowConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowEarlyCheckIn": {
          "type": "boolean"
        },
        "MaxTimeToLiveInMinutes": {
          "type": "number"
        }
      },
      "required": ["AllowEarlyCheckIn", "MaxTimeToLiveInMinutes"],
      "type": "object"
    },
    "AWS::LicenseManager::License.ConsumptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BorrowConfiguration": {
          "$ref": "#/definitions/AWS::LicenseManager::License.BorrowConfiguration"
        },
        "ProvisionalConfiguration": {
          "$ref": "#/definitions/AWS::LicenseManager::License.ProvisionalConfiguration"
        },
        "RenewType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LicenseManager::License.Entitlement": {
      "additionalProperties": false,
      "properties": {
        "AllowCheckIn": {
          "type": "boolean"
        },
        "MaxCount": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Overage": {
          "type": "boolean"
        },
        "Unit": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Unit"],
      "type": "object"
    },
    "AWS::LicenseManager::License.IssuerData": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SignKey": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::LicenseManager::License.Metadata": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::LicenseManager::License.ProvisionalConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MaxTimeToLiveInMinutes": {
          "type": "number"
        }
      },
      "required": ["MaxTimeToLiveInMinutes"],
      "type": "object"
    },
    "AWS::LicenseManager::License.ValidityDateFormat": {
      "additionalProperties": false,
      "properties": {
        "Begin": {
          "type": "string"
        },
        "End": {
          "type": "string"
        }
      },
      "required": ["Begin", "End"],
      "type": "object"
    },
    "AWS::Lightsail::Alarm": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlarmName": {
              "type": "string"
            },
            "ComparisonOperator": {
              "type": "string"
            },
            "ContactProtocols": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DatapointsToAlarm": {
              "type": "number"
            },
            "EvaluationPeriods": {
              "type": "number"
            },
            "MetricName": {
              "type": "string"
            },
            "MonitoredResourceName": {
              "type": "string"
            },
            "NotificationEnabled": {
              "type": "boolean"
            },
            "NotificationTriggers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Threshold": {
              "type": "number"
            },
            "TreatMissingData": {
              "type": "string"
            }
          },
          "required": [
            "AlarmName",
            "ComparisonOperator",
            "EvaluationPeriods",
            "MetricName",
            "MonitoredResourceName",
            "Threshold"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Alarm"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Bucket": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessRules": {
              "$ref": "#/definitions/AWS::Lightsail::Bucket.AccessRules"
            },
            "BucketName": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "ObjectVersioning": {
              "type": "boolean"
            },
            "ReadOnlyAccessAccounts": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ResourcesReceivingAccess": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["BucketName", "BundleId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Bucket"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Bucket.AccessRules": {
      "additionalProperties": false,
      "properties": {
        "AllowPublicOverrides": {
          "type": "boolean"
        },
        "GetObject": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateName": {
              "type": "string"
            },
            "DomainName": {
              "type": "string"
            },
            "SubjectAlternativeNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["CertificateName", "DomainName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Container": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContainerServiceDeployment": {
              "$ref": "#/definitions/AWS::Lightsail::Container.ContainerServiceDeployment"
            },
            "IsDisabled": {
              "type": "boolean"
            },
            "Power": {
              "type": "string"
            },
            "PublicDomainNames": {
              "items": {
                "$ref": "#/definitions/AWS::Lightsail::Container.PublicDomainName"
              },
              "type": "array"
            },
            "Scale": {
              "type": "number"
            },
            "ServiceName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Power", "Scale", "ServiceName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Container"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Container.Container": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ContainerName": {
          "type": "string"
        },
        "Environment": {
          "items": {
            "$ref": "#/definitions/AWS::Lightsail::Container.EnvironmentVariable"
          },
          "type": "array"
        },
        "Image": {
          "type": "string"
        },
        "Ports": {
          "items": {
            "$ref": "#/definitions/AWS::Lightsail::Container.PortInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.ContainerServiceDeployment": {
      "additionalProperties": false,
      "properties": {
        "Containers": {
          "items": {
            "$ref": "#/definitions/AWS::Lightsail::Container.Container"
          },
          "type": "array"
        },
        "PublicEndpoint": {
          "$ref": "#/definitions/AWS::Lightsail::Container.PublicEndpoint"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.EnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        },
        "Variable": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.HealthCheckConfig": {
      "additionalProperties": false,
      "properties": {
        "HealthyThreshold": {
          "type": "number"
        },
        "IntervalSeconds": {
          "type": "number"
        },
        "Path": {
          "type": "string"
        },
        "SuccessCodes": {
          "type": "string"
        },
        "TimeoutSeconds": {
          "type": "number"
        },
        "UnhealthyThreshold": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.PortInfo": {
      "additionalProperties": false,
      "properties": {
        "Port": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.PublicDomainName": {
      "additionalProperties": false,
      "properties": {
        "CertificateName": {
          "type": "string"
        },
        "DomainNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Container.PublicEndpoint": {
      "additionalProperties": false,
      "properties": {
        "ContainerName": {
          "type": "string"
        },
        "ContainerPort": {
          "type": "number"
        },
        "HealthCheckConfig": {
          "$ref": "#/definitions/AWS::Lightsail::Container.HealthCheckConfig"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Database": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZone": {
              "type": "string"
            },
            "BackupRetention": {
              "type": "boolean"
            },
            "CaCertificateIdentifier": {
              "type": "string"
            },
            "MasterDatabaseName": {
              "type": "string"
            },
            "MasterUserPassword": {
              "type": "string"
            },
            "MasterUsername": {
              "type": "string"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "RelationalDatabaseBlueprintId": {
              "type": "string"
            },
            "RelationalDatabaseBundleId": {
              "type": "string"
            },
            "RelationalDatabaseName": {
              "type": "string"
            },
            "RelationalDatabaseParameters": {
              "items": {
                "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter"
              },
              "type": "array"
            },
            "RotateMasterUserPassword": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "MasterDatabaseName",
            "MasterUsername",
            "RelationalDatabaseBlueprintId",
            "RelationalDatabaseBundleId",
            "RelationalDatabaseName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Database"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Database.RelationalDatabaseParameter": {
      "additionalProperties": false,
      "properties": {
        "AllowedValues": {
          "type": "string"
        },
        "ApplyMethod": {
          "type": "string"
        },
        "ApplyType": {
          "type": "string"
        },
        "DataType": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "IsModifiable": {
          "type": "boolean"
        },
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Disk": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddOns": {
              "items": {
                "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn"
              },
              "type": "array"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "DiskName": {
              "type": "string"
            },
            "SizeInGb": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DiskName", "SizeInGb"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Disk"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Disk.AddOn": {
      "additionalProperties": false,
      "properties": {
        "AddOnType": {
          "type": "string"
        },
        "AutoSnapshotAddOnRequest": {
          "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["AddOnType"],
      "type": "object"
    },
    "AWS::Lightsail::Disk.AutoSnapshotAddOn": {
      "additionalProperties": false,
      "properties": {
        "SnapshotTimeOfDay": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Disk.Location": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "RegionName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BundleId": {
              "type": "string"
            },
            "CacheBehaviorSettings": {
              "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheSettings"
            },
            "CacheBehaviors": {
              "items": {
                "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehaviorPerPath"
              },
              "type": "array"
            },
            "CertificateName": {
              "type": "string"
            },
            "DefaultCacheBehavior": {
              "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehavior"
            },
            "DistributionName": {
              "type": "string"
            },
            "IpAddressType": {
              "type": "string"
            },
            "IsEnabled": {
              "type": "boolean"
            },
            "Origin": {
              "$ref": "#/definitions/AWS::Lightsail::Distribution.InputOrigin"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "BundleId",
            "DefaultCacheBehavior",
            "DistributionName",
            "Origin"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Distribution"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Distribution.CacheBehavior": {
      "additionalProperties": false,
      "properties": {
        "Behavior": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.CacheBehaviorPerPath": {
      "additionalProperties": false,
      "properties": {
        "Behavior": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.CacheSettings": {
      "additionalProperties": false,
      "properties": {
        "AllowedHTTPMethods": {
          "type": "string"
        },
        "CachedHTTPMethods": {
          "type": "string"
        },
        "DefaultTTL": {
          "type": "number"
        },
        "ForwardedCookies": {
          "$ref": "#/definitions/AWS::Lightsail::Distribution.CookieObject"
        },
        "ForwardedHeaders": {
          "$ref": "#/definitions/AWS::Lightsail::Distribution.HeaderObject"
        },
        "ForwardedQueryStrings": {
          "$ref": "#/definitions/AWS::Lightsail::Distribution.QueryStringObject"
        },
        "MaximumTTL": {
          "type": "number"
        },
        "MinimumTTL": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.CookieObject": {
      "additionalProperties": false,
      "properties": {
        "CookiesAllowList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Option": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.HeaderObject": {
      "additionalProperties": false,
      "properties": {
        "HeadersAllowList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Option": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.InputOrigin": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "ProtocolPolicy": {
          "type": "string"
        },
        "RegionName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Distribution.QueryStringObject": {
      "additionalProperties": false,
      "properties": {
        "Option": {
          "type": "boolean"
        },
        "QueryStringsAllowList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AddOns": {
              "items": {
                "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn"
              },
              "type": "array"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "BlueprintId": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "Hardware": {
              "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware"
            },
            "InstanceName": {
              "type": "string"
            },
            "KeyPairName": {
              "type": "string"
            },
            "Location": {
              "$ref": "#/definitions/AWS::Lightsail::Instance.Location"
            },
            "Networking": {
              "$ref": "#/definitions/AWS::Lightsail::Instance.Networking"
            },
            "State": {
              "$ref": "#/definitions/AWS::Lightsail::Instance.State"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserData": {
              "type": "string"
            }
          },
          "required": ["BlueprintId", "BundleId", "InstanceName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::Instance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::Instance.AddOn": {
      "additionalProperties": false,
      "properties": {
        "AddOnType": {
          "type": "string"
        },
        "AutoSnapshotAddOnRequest": {
          "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["AddOnType"],
      "type": "object"
    },
    "AWS::Lightsail::Instance.AutoSnapshotAddOn": {
      "additionalProperties": false,
      "properties": {
        "SnapshotTimeOfDay": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance.Disk": {
      "additionalProperties": false,
      "properties": {
        "AttachedTo": {
          "type": "string"
        },
        "AttachmentState": {
          "type": "string"
        },
        "DiskName": {
          "type": "string"
        },
        "IOPS": {
          "type": "number"
        },
        "IsSystemDisk": {
          "type": "boolean"
        },
        "Path": {
          "type": "string"
        },
        "SizeInGb": {
          "type": "string"
        }
      },
      "required": ["DiskName", "Path"],
      "type": "object"
    },
    "AWS::Lightsail::Instance.Hardware": {
      "additionalProperties": false,
      "properties": {
        "CpuCount": {
          "type": "number"
        },
        "Disks": {
          "items": {
            "$ref": "#/definitions/AWS::Lightsail::Instance.Disk"
          },
          "type": "array"
        },
        "RamSizeInGb": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance.Location": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "RegionName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance.MonthlyTransfer": {
      "additionalProperties": false,
      "properties": {
        "GbPerMonthAllocated": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance.Networking": {
      "additionalProperties": false,
      "properties": {
        "MonthlyTransfer": {
          "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer"
        },
        "Ports": {
          "items": {
            "$ref": "#/definitions/AWS::Lightsail::Instance.Port"
          },
          "type": "array"
        }
      },
      "required": ["Ports"],
      "type": "object"
    },
    "AWS::Lightsail::Instance.Port": {
      "additionalProperties": false,
      "properties": {
        "AccessDirection": {
          "type": "string"
        },
        "AccessFrom": {
          "type": "string"
        },
        "AccessType": {
          "type": "string"
        },
        "CidrListAliases": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Cidrs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CommonName": {
          "type": "string"
        },
        "FromPort": {
          "type": "number"
        },
        "Ipv6Cidrs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Protocol": {
          "type": "string"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::Instance.State": {
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Lightsail::LoadBalancer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttachedInstances": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "HealthCheckPath": {
              "type": "string"
            },
            "InstancePort": {
              "type": "number"
            },
            "IpAddressType": {
              "type": "string"
            },
            "LoadBalancerName": {
              "type": "string"
            },
            "SessionStickinessEnabled": {
              "type": "boolean"
            },
            "SessionStickinessLBCookieDurationSeconds": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TlsPolicyName": {
              "type": "string"
            }
          },
          "required": ["InstancePort", "LoadBalancerName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::LoadBalancer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::LoadBalancerTlsCertificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CertificateAlternativeNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "CertificateDomainName": {
              "type": "string"
            },
            "CertificateName": {
              "type": "string"
            },
            "HttpsRedirectionEnabled": {
              "type": "boolean"
            },
            "IsAttached": {
              "type": "boolean"
            },
            "LoadBalancerName": {
              "type": "string"
            }
          },
          "required": [
            "CertificateDomainName",
            "CertificateName",
            "LoadBalancerName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::LoadBalancerTlsCertificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Lightsail::StaticIp": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AttachedTo": {
              "type": "string"
            },
            "StaticIpName": {
              "type": "string"
            }
          },
          "required": ["StaticIpName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Lightsail::StaticIp"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::GeofenceCollection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CollectionName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            },
            "PricingPlanDataSource": {
              "type": "string"
            }
          },
          "required": ["CollectionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::GeofenceCollection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::Map": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Configuration": {
              "$ref": "#/definitions/AWS::Location::Map.MapConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "MapName": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            }
          },
          "required": ["Configuration", "MapName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::Map"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::Map.MapConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Style": {
          "type": "string"
        }
      },
      "required": ["Style"],
      "type": "object"
    },
    "AWS::Location::PlaceIndex": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataSource": {
              "type": "string"
            },
            "DataSourceConfiguration": {
              "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "IndexName": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            }
          },
          "required": ["DataSource", "IndexName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::PlaceIndex"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::PlaceIndex.DataSourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "IntendedUse": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Location::RouteCalculator": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CalculatorName": {
              "type": "string"
            },
            "DataSource": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            }
          },
          "required": ["CalculatorName", "DataSource"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::RouteCalculator"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::Tracker": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "PositionFiltering": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            },
            "PricingPlanDataSource": {
              "type": "string"
            },
            "TrackerName": {
              "type": "string"
            }
          },
          "required": ["TrackerName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::Tracker"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Location::TrackerConsumer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConsumerArn": {
              "type": "string"
            },
            "TrackerName": {
              "type": "string"
            }
          },
          "required": ["ConsumerArn", "TrackerName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Location::TrackerConsumer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::Destination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationName": {
              "type": "string"
            },
            "DestinationPolicy": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "TargetArn": {
              "type": "string"
            }
          },
          "required": ["DestinationName", "RoleArn", "TargetArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::Destination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::LogGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataProtectionPolicy": {
              "type": "object"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LogGroupName": {
              "type": "string"
            },
            "RetentionInDays": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::LogGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Logs::LogStream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LogGroupName": {
              "type": "string"
            },
            "LogStreamName": {
              "type": "string"
            }
          },
          "required": ["LogGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::LogStream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::MetricFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FilterName": {
              "type": "string"
            },
            "FilterPattern": {
              "type": "string"
            },
            "LogGroupName": {
              "type": "string"
            },
            "MetricTransformations": {
              "items": {
                "$ref": "#/definitions/AWS::Logs::MetricFilter.MetricTransformation"
              },
              "type": "array"
            }
          },
          "required": [
            "FilterPattern",
            "LogGroupName",
            "MetricTransformations"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::MetricFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::MetricFilter.Dimension": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Logs::MetricFilter.MetricTransformation": {
      "additionalProperties": false,
      "properties": {
        "DefaultValue": {
          "type": "number"
        },
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension"
          },
          "type": "array"
        },
        "MetricName": {
          "type": "string"
        },
        "MetricNamespace": {
          "type": "string"
        },
        "MetricValue": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        }
      },
      "required": ["MetricName", "MetricNamespace", "MetricValue"],
      "type": "object"
    },
    "AWS::Logs::QueryDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LogGroupNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "QueryString": {
              "type": "string"
            }
          },
          "required": ["Name", "QueryString"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::QueryDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyDocument": {
              "type": "string"
            },
            "PolicyName": {
              "type": "string"
            }
          },
          "required": ["PolicyDocument", "PolicyName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::ResourcePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Logs::SubscriptionFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationArn": {
              "type": "string"
            },
            "Distribution": {
              "type": "string"
            },
            "FilterName": {
              "type": "string"
            },
            "FilterPattern": {
              "type": "string"
            },
            "LogGroupName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["DestinationArn", "FilterPattern", "LogGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Logs::SubscriptionFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataDelayOffsetInMinutes": {
              "type": "number"
            },
            "DataInputConfiguration": {
              "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration"
            },
            "DataOutputConfiguration": {
              "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration"
            },
            "DataUploadFrequency": {
              "type": "string"
            },
            "InferenceSchedulerName": {
              "type": "string"
            },
            "ModelName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "ServerSideKmsKeyId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "DataInputConfiguration",
            "DataOutputConfiguration",
            "DataUploadFrequency",
            "ModelName",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LookoutEquipment::InferenceScheduler"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InferenceInputNameConfiguration": {
          "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.InputNameConfiguration"
        },
        "InputTimeZoneOffset": {
          "type": "string"
        },
        "S3InputConfiguration": {
          "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.S3InputConfiguration"
        }
      },
      "required": ["S3InputConfiguration"],
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "S3OutputConfiguration": {
          "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.S3OutputConfiguration"
        }
      },
      "required": ["S3OutputConfiguration"],
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler.InputNameConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ComponentTimestampDelimiter": {
          "type": "string"
        },
        "TimestampFormat": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler.S3InputConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::LookoutEquipment::InferenceScheduler.S3OutputConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::LookoutMetrics::Alert": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "$ref": "#/definitions/AWS::LookoutMetrics::Alert.Action"
            },
            "AlertDescription": {
              "type": "string"
            },
            "AlertName": {
              "type": "string"
            },
            "AlertSensitivityThreshold": {
              "type": "number"
            },
            "AnomalyDetectorArn": {
              "type": "string"
            }
          },
          "required": [
            "Action",
            "AlertSensitivityThreshold",
            "AnomalyDetectorArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LookoutMetrics::Alert"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LookoutMetrics::Alert.Action": {
      "additionalProperties": false,
      "properties": {
        "LambdaConfiguration": {
          "$ref": "#/definitions/AWS::LookoutMetrics::Alert.LambdaConfiguration"
        },
        "SNSConfiguration": {
          "$ref": "#/definitions/AWS::LookoutMetrics::Alert.SNSConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::Alert.LambdaConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LambdaArn": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["LambdaArn", "RoleArn"],
      "type": "object"
    },
    "AWS::LookoutMetrics::Alert.SNSConfiguration": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        },
        "SnsTopicArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "SnsTopicArn"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AnomalyDetectorConfig": {
              "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig"
            },
            "AnomalyDetectorDescription": {
              "type": "string"
            },
            "AnomalyDetectorName": {
              "type": "string"
            },
            "KmsKeyArn": {
              "type": "string"
            },
            "MetricSetList": {
              "items": {
                "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSet"
              },
              "type": "array"
            }
          },
          "required": ["AnomalyDetectorConfig", "MetricSetList"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LookoutMetrics::AnomalyDetector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig": {
      "additionalProperties": false,
      "properties": {
        "AnomalyDetectorFrequency": {
          "type": "string"
        }
      },
      "required": ["AnomalyDetectorFrequency"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig": {
      "additionalProperties": false,
      "properties": {
        "FlowName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["FlowName", "RoleArn"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig": {
      "additionalProperties": false,
      "properties": {
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor": {
      "additionalProperties": false,
      "properties": {
        "Charset": {
          "type": "string"
        },
        "ContainsHeader": {
          "type": "boolean"
        },
        "Delimiter": {
          "type": "string"
        },
        "FileCompression": {
          "type": "string"
        },
        "HeaderList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "QuoteSymbol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor": {
      "additionalProperties": false,
      "properties": {
        "CsvFormatDescriptor": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor"
        },
        "JsonFormatDescriptor": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor": {
      "additionalProperties": false,
      "properties": {
        "Charset": {
          "type": "string"
        },
        "FileCompression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.Metric": {
      "additionalProperties": false,
      "properties": {
        "AggregationFunction": {
          "type": "string"
        },
        "MetricName": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        }
      },
      "required": ["AggregationFunction", "MetricName"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.MetricSet": {
      "additionalProperties": false,
      "properties": {
        "DimensionList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MetricList": {
          "items": {
            "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.Metric"
          },
          "type": "array"
        },
        "MetricSetDescription": {
          "type": "string"
        },
        "MetricSetFrequency": {
          "type": "string"
        },
        "MetricSetName": {
          "type": "string"
        },
        "MetricSource": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSource"
        },
        "Offset": {
          "type": "number"
        },
        "TimestampColumn": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.TimestampColumn"
        },
        "Timezone": {
          "type": "string"
        }
      },
      "required": ["MetricList", "MetricSetName", "MetricSource"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.MetricSource": {
      "additionalProperties": false,
      "properties": {
        "AppFlowConfig": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig"
        },
        "CloudwatchConfig": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig"
        },
        "RDSSourceConfig": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig"
        },
        "RedshiftSourceConfig": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig"
        },
        "S3SourceConfig": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig": {
      "additionalProperties": false,
      "properties": {
        "DBInstanceIdentifier": {
          "type": "string"
        },
        "DatabaseHost": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DatabasePort": {
          "type": "number"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretManagerArn": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration"
        }
      },
      "required": [
        "DBInstanceIdentifier",
        "DatabaseHost",
        "DatabaseName",
        "DatabasePort",
        "RoleArn",
        "SecretManagerArn",
        "TableName",
        "VpcConfiguration"
      ],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig": {
      "additionalProperties": false,
      "properties": {
        "ClusterIdentifier": {
          "type": "string"
        },
        "DatabaseHost": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "DatabasePort": {
          "type": "number"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretManagerArn": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        },
        "VpcConfiguration": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration"
        }
      },
      "required": [
        "ClusterIdentifier",
        "DatabaseHost",
        "DatabaseName",
        "DatabasePort",
        "RoleArn",
        "SecretManagerArn",
        "TableName",
        "VpcConfiguration"
      ],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig": {
      "additionalProperties": false,
      "properties": {
        "FileFormatDescriptor": {
          "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor"
        },
        "HistoricalDataPathList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        },
        "TemplatedPathList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["FileFormatDescriptor", "RoleArn"],
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.TimestampColumn": {
      "additionalProperties": false,
      "properties": {
        "ColumnFormat": {
          "type": "string"
        },
        "ColumnName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIdList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIdList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIdList", "SubnetIdList"],
      "type": "object"
    },
    "AWS::LookoutVision::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ProjectName": {
              "type": "string"
            }
          },
          "required": ["ProjectName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::LookoutVision::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::M2::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Definition": {
              "$ref": "#/definitions/AWS::M2::Application.Definition"
            },
            "Description": {
              "type": "string"
            },
            "EngineType": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Definition", "EngineType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::M2::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::M2::Application.Definition": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "S3Location": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::M2::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EngineType": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "HighAvailabilityConfig": {
              "$ref": "#/definitions/AWS::M2::Environment.HighAvailabilityConfig"
            },
            "InstanceType": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StorageConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::M2::Environment.StorageConfiguration"
              },
              "type": "array"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["EngineType", "InstanceType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::M2::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::M2::Environment.EfsStorageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FileSystemId": {
          "type": "string"
        },
        "MountPoint": {
          "type": "string"
        }
      },
      "required": ["FileSystemId", "MountPoint"],
      "type": "object"
    },
    "AWS::M2::Environment.FsxStorageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FileSystemId": {
          "type": "string"
        },
        "MountPoint": {
          "type": "string"
        }
      },
      "required": ["FileSystemId", "MountPoint"],
      "type": "object"
    },
    "AWS::M2::Environment.HighAvailabilityConfig": {
      "additionalProperties": false,
      "properties": {
        "DesiredCapacity": {
          "type": "number"
        }
      },
      "required": ["DesiredCapacity"],
      "type": "object"
    },
    "AWS::M2::Environment.StorageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Efs": {
          "$ref": "#/definitions/AWS::M2::Environment.EfsStorageConfiguration"
        },
        "Fsx": {
          "$ref": "#/definitions/AWS::M2::Environment.FsxStorageConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::MSK::BatchScramSecret": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterArn": {
              "type": "string"
            },
            "SecretArnList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["ClusterArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MSK::BatchScramSecret"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MSK::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BrokerNodeGroupInfo": {
              "$ref": "#/definitions/AWS::MSK::Cluster.BrokerNodeGroupInfo"
            },
            "ClientAuthentication": {
              "$ref": "#/definitions/AWS::MSK::Cluster.ClientAuthentication"
            },
            "ClusterName": {
              "type": "string"
            },
            "ConfigurationInfo": {
              "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo"
            },
            "CurrentVersion": {
              "type": "string"
            },
            "EncryptionInfo": {
              "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo"
            },
            "EnhancedMonitoring": {
              "type": "string"
            },
            "KafkaVersion": {
              "type": "string"
            },
            "LoggingInfo": {
              "$ref": "#/definitions/AWS::MSK::Cluster.LoggingInfo"
            },
            "NumberOfBrokerNodes": {
              "type": "number"
            },
            "OpenMonitoring": {
              "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring"
            },
            "StorageMode": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "BrokerNodeGroupInfo",
            "ClusterName",
            "KafkaVersion",
            "NumberOfBrokerNodes"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MSK::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MSK::Cluster.BrokerLogs": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogs": {
          "$ref": "#/definitions/AWS::MSK::Cluster.CloudWatchLogs"
        },
        "Firehose": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Firehose"
        },
        "S3": {
          "$ref": "#/definitions/AWS::MSK::Cluster.S3"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.BrokerNodeGroupInfo": {
      "additionalProperties": false,
      "properties": {
        "BrokerAZDistribution": {
          "type": "string"
        },
        "ClientSubnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ConnectivityInfo": {
          "$ref": "#/definitions/AWS::MSK::Cluster.ConnectivityInfo"
        },
        "InstanceType": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StorageInfo": {
          "$ref": "#/definitions/AWS::MSK::Cluster.StorageInfo"
        }
      },
      "required": ["ClientSubnets", "InstanceType"],
      "type": "object"
    },
    "AWS::MSK::Cluster.ClientAuthentication": {
      "additionalProperties": false,
      "properties": {
        "Sasl": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Sasl"
        },
        "Tls": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Tls"
        },
        "Unauthenticated": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.CloudWatchLogs": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "LogGroup": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.ConfigurationInfo": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "Revision": {
          "type": "number"
        }
      },
      "required": ["Arn", "Revision"],
      "type": "object"
    },
    "AWS::MSK::Cluster.ConnectivityInfo": {
      "additionalProperties": false,
      "properties": {
        "PublicAccess": {
          "$ref": "#/definitions/AWS::MSK::Cluster.PublicAccess"
        },
        "VpcConnectivity": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivity"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.EBSStorageInfo": {
      "additionalProperties": false,
      "properties": {
        "ProvisionedThroughput": {
          "$ref": "#/definitions/AWS::MSK::Cluster.ProvisionedThroughput"
        },
        "VolumeSize": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.EncryptionAtRest": {
      "additionalProperties": false,
      "properties": {
        "DataVolumeKMSKeyId": {
          "type": "string"
        }
      },
      "required": ["DataVolumeKMSKeyId"],
      "type": "object"
    },
    "AWS::MSK::Cluster.EncryptionInTransit": {
      "additionalProperties": false,
      "properties": {
        "ClientBroker": {
          "type": "string"
        },
        "InCluster": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.EncryptionInfo": {
      "additionalProperties": false,
      "properties": {
        "EncryptionAtRest": {
          "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionAtRest"
        },
        "EncryptionInTransit": {
          "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInTransit"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.Firehose": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStream": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.Iam": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.JmxExporter": {
      "additionalProperties": false,
      "properties": {
        "EnabledInBroker": {
          "type": "boolean"
        }
      },
      "required": ["EnabledInBroker"],
      "type": "object"
    },
    "AWS::MSK::Cluster.LoggingInfo": {
      "additionalProperties": false,
      "properties": {
        "BrokerLogs": {
          "$ref": "#/definitions/AWS::MSK::Cluster.BrokerLogs"
        }
      },
      "required": ["BrokerLogs"],
      "type": "object"
    },
    "AWS::MSK::Cluster.NodeExporter": {
      "additionalProperties": false,
      "properties": {
        "EnabledInBroker": {
          "type": "boolean"
        }
      },
      "required": ["EnabledInBroker"],
      "type": "object"
    },
    "AWS::MSK::Cluster.OpenMonitoring": {
      "additionalProperties": false,
      "properties": {
        "Prometheus": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Prometheus"
        }
      },
      "required": ["Prometheus"],
      "type": "object"
    },
    "AWS::MSK::Cluster.Prometheus": {
      "additionalProperties": false,
      "properties": {
        "JmxExporter": {
          "$ref": "#/definitions/AWS::MSK::Cluster.JmxExporter"
        },
        "NodeExporter": {
          "$ref": "#/definitions/AWS::MSK::Cluster.NodeExporter"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.ProvisionedThroughput": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "VolumeThroughput": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.PublicAccess": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.S3": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.Sasl": {
      "additionalProperties": false,
      "properties": {
        "Iam": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Iam"
        },
        "Scram": {
          "$ref": "#/definitions/AWS::MSK::Cluster.Scram"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.Scram": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.StorageInfo": {
      "additionalProperties": false,
      "properties": {
        "EBSStorageInfo": {
          "$ref": "#/definitions/AWS::MSK::Cluster.EBSStorageInfo"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.Tls": {
      "additionalProperties": false,
      "properties": {
        "CertificateAuthorityArnList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.Unauthenticated": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivity": {
      "additionalProperties": false,
      "properties": {
        "ClientAuthentication": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityClientAuthentication"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivityClientAuthentication": {
      "additionalProperties": false,
      "properties": {
        "Sasl": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivitySasl"
        },
        "Tls": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityTls"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivityIam": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivitySasl": {
      "additionalProperties": false,
      "properties": {
        "Iam": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityIam"
        },
        "Scram": {
          "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityScram"
        }
      },
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivityScram": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Cluster.VpcConnectivityTls": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::Configuration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "KafkaVersionsList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "ServerProperties": {
              "type": "string"
            }
          },
          "required": ["Name", "ServerProperties"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MSK::Configuration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MSK::ServerlessCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientAuthentication": {
              "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication"
            },
            "ClusterName": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "VpcConfigs": {
              "items": {
                "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig"
              },
              "type": "array"
            }
          },
          "required": ["ClientAuthentication", "ClusterName", "VpcConfigs"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MSK::ServerlessCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MSK::ServerlessCluster.ClientAuthentication": {
      "additionalProperties": false,
      "properties": {
        "Sasl": {
          "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl"
        }
      },
      "required": ["Sasl"],
      "type": "object"
    },
    "AWS::MSK::ServerlessCluster.Iam": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "required": ["Enabled"],
      "type": "object"
    },
    "AWS::MSK::ServerlessCluster.Sasl": {
      "additionalProperties": false,
      "properties": {
        "Iam": {
          "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam"
        }
      },
      "required": ["Iam"],
      "type": "object"
    },
    "AWS::MSK::ServerlessCluster.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SubnetIds"],
      "type": "object"
    },
    "AWS::MWAA::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AirflowConfigurationOptions": {
              "type": "object"
            },
            "AirflowVersion": {
              "type": "string"
            },
            "DagS3Path": {
              "type": "string"
            },
            "EnvironmentClass": {
              "type": "string"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "KmsKey": {
              "type": "string"
            },
            "LoggingConfiguration": {
              "$ref": "#/definitions/AWS::MWAA::Environment.LoggingConfiguration"
            },
            "MaxWorkers": {
              "type": "number"
            },
            "MinWorkers": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::MWAA::Environment.NetworkConfiguration"
            },
            "PluginsS3ObjectVersion": {
              "type": "string"
            },
            "PluginsS3Path": {
              "type": "string"
            },
            "RequirementsS3ObjectVersion": {
              "type": "string"
            },
            "RequirementsS3Path": {
              "type": "string"
            },
            "Schedulers": {
              "type": "number"
            },
            "SourceBucketArn": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "WebserverAccessMode": {
              "type": "string"
            },
            "WeeklyMaintenanceWindowStart": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MWAA::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MWAA::Environment.LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DagProcessingLogs": {
          "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration"
        },
        "SchedulerLogs": {
          "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration"
        },
        "TaskLogs": {
          "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration"
        },
        "WebserverLogs": {
          "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration"
        },
        "WorkerLogs": {
          "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::MWAA::Environment.ModuleLoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogGroupArn": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        },
        "LogLevel": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MWAA::Environment.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Macie::AllowList": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Criteria": {
              "$ref": "#/definitions/AWS::Macie::AllowList.Criteria"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Criteria", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Macie::AllowList"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Macie::AllowList.Criteria": {
      "additionalProperties": false,
      "properties": {
        "Regex": {
          "type": "string"
        },
        "S3WordsList": {
          "$ref": "#/definitions/AWS::Macie::AllowList.S3WordsList"
        }
      },
      "type": "object"
    },
    "AWS::Macie::AllowList.S3WordsList": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "ObjectKey": {
          "type": "string"
        }
      },
      "required": ["BucketName", "ObjectKey"],
      "type": "object"
    },
    "AWS::Macie::CustomDataIdentifier": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "IgnoreWords": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Keywords": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MaximumMatchDistance": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Regex": {
              "type": "string"
            }
          },
          "required": ["Name", "Regex"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Macie::CustomDataIdentifier"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Macie::FindingsFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "FindingCriteria": {
              "$ref": "#/definitions/AWS::Macie::FindingsFilter.FindingCriteria"
            },
            "Name": {
              "type": "string"
            },
            "Position": {
              "type": "number"
            }
          },
          "required": ["FindingCriteria", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Macie::FindingsFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Macie::FindingsFilter.CriterionAdditionalProperties": {
      "additionalProperties": false,
      "properties": {
        "eq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "gt": {
          "type": "number"
        },
        "gte": {
          "type": "number"
        },
        "lt": {
          "type": "number"
        },
        "lte": {
          "type": "number"
        },
        "neq": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Macie::FindingsFilter.FindingCriteria": {
      "additionalProperties": false,
      "properties": {
        "Criterion": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::Macie::FindingsFilter.CriterionAdditionalProperties"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Macie::FindingsFilter.FindingsFilterListItem": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Macie::Session": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FindingPublishingFrequency": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Macie::Session"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InvitationId": {
              "type": "string"
            },
            "MemberConfiguration": {
              "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberConfiguration"
            },
            "NetworkConfiguration": {
              "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkConfiguration"
            },
            "NetworkId": {
              "type": "string"
            }
          },
          "required": ["MemberConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ManagedBlockchain::Member"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy": {
      "additionalProperties": false,
      "properties": {
        "ProposalDurationInHours": {
          "type": "number"
        },
        "ThresholdComparator": {
          "type": "string"
        },
        "ThresholdPercentage": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.MemberConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "MemberFrameworkConfiguration": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.MemberFabricConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdminPassword": {
          "type": "string"
        },
        "AdminUsername": {
          "type": "string"
        }
      },
      "required": ["AdminPassword", "AdminUsername"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MemberFabricConfiguration": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFabricConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Framework": {
          "type": "string"
        },
        "FrameworkVersion": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "NetworkFrameworkConfiguration": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration"
        },
        "VotingPolicy": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy"
        }
      },
      "required": ["Framework", "FrameworkVersion", "Name", "VotingPolicy"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.NetworkFabricConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Edition": {
          "type": "string"
        }
      },
      "required": ["Edition"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NetworkFabricConfiguration": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::ManagedBlockchain::Member.VotingPolicy": {
      "additionalProperties": false,
      "properties": {
        "ApprovalThresholdPolicy": {
          "$ref": "#/definitions/AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy"
        }
      },
      "type": "object"
    },
    "AWS::ManagedBlockchain::Node": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MemberId": {
              "type": "string"
            },
            "NetworkId": {
              "type": "string"
            },
            "NodeConfiguration": {
              "$ref": "#/definitions/AWS::ManagedBlockchain::Node.NodeConfiguration"
            }
          },
          "required": ["NetworkId", "NodeConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ManagedBlockchain::Node"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ManagedBlockchain::Node.NodeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "InstanceType": {
          "type": "string"
        }
      },
      "required": ["AvailabilityZone", "InstanceType"],
      "type": "object"
    },
    "AWS::MediaConnect::Flow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailabilityZone": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Source": {
              "$ref": "#/definitions/AWS::MediaConnect::Flow.Source"
            },
            "SourceFailoverConfig": {
              "$ref": "#/definitions/AWS::MediaConnect::Flow.FailoverConfig"
            }
          },
          "required": ["Name", "Source"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConnect::Flow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConnect::Flow.Encryption": {
      "additionalProperties": false,
      "properties": {
        "Algorithm": {
          "type": "string"
        },
        "ConstantInitializationVector": {
          "type": "string"
        },
        "DeviceId": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::MediaConnect::Flow.FailoverConfig": {
      "additionalProperties": false,
      "properties": {
        "FailoverMode": {
          "type": "string"
        },
        "RecoveryWindow": {
          "type": "number"
        },
        "SourcePriority": {
          "$ref": "#/definitions/AWS::MediaConnect::Flow.SourcePriority"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaConnect::Flow.Source": {
      "additionalProperties": false,
      "properties": {
        "Decryption": {
          "$ref": "#/definitions/AWS::MediaConnect::Flow.Encryption"
        },
        "Description": {
          "type": "string"
        },
        "EntitlementArn": {
          "type": "string"
        },
        "IngestIp": {
          "type": "string"
        },
        "IngestPort": {
          "type": "number"
        },
        "MaxBitrate": {
          "type": "number"
        },
        "MaxLatency": {
          "type": "number"
        },
        "MinLatency": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "SenderControlPort": {
          "type": "number"
        },
        "SenderIpAddress": {
          "type": "string"
        },
        "SourceArn": {
          "type": "string"
        },
        "SourceIngestPort": {
          "type": "string"
        },
        "SourceListenerAddress": {
          "type": "string"
        },
        "SourceListenerPort": {
          "type": "number"
        },
        "StreamId": {
          "type": "string"
        },
        "VpcInterfaceName": {
          "type": "string"
        },
        "WhitelistCidr": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaConnect::Flow.SourcePriority": {
      "additionalProperties": false,
      "properties": {
        "PrimarySource": {
          "type": "string"
        }
      },
      "required": ["PrimarySource"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowEntitlement": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataTransferSubscriberFeePercent": {
              "type": "number"
            },
            "Description": {
              "type": "string"
            },
            "Encryption": {
              "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement.Encryption"
            },
            "EntitlementStatus": {
              "type": "string"
            },
            "FlowArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Subscribers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Description", "FlowArn", "Name", "Subscribers"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConnect::FlowEntitlement"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowEntitlement.Encryption": {
      "additionalProperties": false,
      "properties": {
        "Algorithm": {
          "type": "string"
        },
        "ConstantInitializationVector": {
          "type": "string"
        },
        "DeviceId": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Algorithm", "RoleArn"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowOutput": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CidrAllowList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Destination": {
              "type": "string"
            },
            "Encryption": {
              "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.Encryption"
            },
            "FlowArn": {
              "type": "string"
            },
            "MaxLatency": {
              "type": "number"
            },
            "MinLatency": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "Protocol": {
              "type": "string"
            },
            "RemoteId": {
              "type": "string"
            },
            "SmoothingLatency": {
              "type": "number"
            },
            "StreamId": {
              "type": "string"
            },
            "VpcInterfaceAttachment": {
              "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment"
            }
          },
          "required": ["FlowArn", "Protocol"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConnect::FlowOutput"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowOutput.Encryption": {
      "additionalProperties": false,
      "properties": {
        "Algorithm": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "SecretArn"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment": {
      "additionalProperties": false,
      "properties": {
        "VpcInterfaceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaConnect::FlowSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Decryption": {
              "$ref": "#/definitions/AWS::MediaConnect::FlowSource.Encryption"
            },
            "Description": {
              "type": "string"
            },
            "EntitlementArn": {
              "type": "string"
            },
            "FlowArn": {
              "type": "string"
            },
            "IngestPort": {
              "type": "number"
            },
            "MaxBitrate": {
              "type": "number"
            },
            "MaxLatency": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "Protocol": {
              "type": "string"
            },
            "StreamId": {
              "type": "string"
            },
            "VpcInterfaceName": {
              "type": "string"
            },
            "WhitelistCidr": {
              "type": "string"
            }
          },
          "required": ["Description", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConnect::FlowSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowSource.Encryption": {
      "additionalProperties": false,
      "properties": {
        "Algorithm": {
          "type": "string"
        },
        "ConstantInitializationVector": {
          "type": "string"
        },
        "DeviceId": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Algorithm", "RoleArn"],
      "type": "object"
    },
    "AWS::MediaConnect::FlowVpcInterface": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FlowArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": [
            "FlowArn",
            "Name",
            "RoleArn",
            "SecurityGroupIds",
            "SubnetId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConnect::FlowVpcInterface"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConvert::JobTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccelerationSettings": {
              "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.AccelerationSettings"
            },
            "Category": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "HopDestinations": {
              "items": {
                "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.HopDestination"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            },
            "Queue": {
              "type": "string"
            },
            "SettingsJson": {
              "type": "object"
            },
            "StatusUpdateInterval": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["SettingsJson"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConvert::JobTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConvert::JobTemplate.AccelerationSettings": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        }
      },
      "required": ["Mode"],
      "type": "object"
    },
    "AWS::MediaConvert::JobTemplate.HopDestination": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "Queue": {
          "type": "string"
        },
        "WaitMinutes": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaConvert::Preset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Category": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SettingsJson": {
              "type": "object"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["SettingsJson"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConvert::Preset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaConvert::Queue": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PricingPlan": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaConvert::Queue"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::MediaLive::Channel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CdiInputSpecification": {
              "$ref": "#/definitions/AWS::MediaLive::Channel.CdiInputSpecification"
            },
            "ChannelClass": {
              "type": "string"
            },
            "Destinations": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestination"
              },
              "type": "array"
            },
            "EncoderSettings": {
              "$ref": "#/definitions/AWS::MediaLive::Channel.EncoderSettings"
            },
            "InputAttachments": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Channel.InputAttachment"
              },
              "type": "array"
            },
            "InputSpecification": {
              "$ref": "#/definitions/AWS::MediaLive::Channel.InputSpecification"
            },
            "LogLevel": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "Vpc": {
              "$ref": "#/definitions/AWS::MediaLive::Channel.VpcOutputSettings"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaLive::Channel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::MediaLive::Channel.AacSettings": {
      "additionalProperties": false,
      "properties": {
        "Bitrate": {
          "type": "number"
        },
        "CodingMode": {
          "type": "string"
        },
        "InputType": {
          "type": "string"
        },
        "Profile": {
          "type": "string"
        },
        "RateControlMode": {
          "type": "string"
        },
        "RawFormat": {
          "type": "string"
        },
        "SampleRate": {
          "type": "number"
        },
        "Spec": {
          "type": "string"
        },
        "VbrQuality": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Ac3Settings": {
      "additionalProperties": false,
      "properties": {
        "Bitrate": {
          "type": "number"
        },
        "BitstreamMode": {
          "type": "string"
        },
        "CodingMode": {
          "type": "string"
        },
        "Dialnorm": {
          "type": "number"
        },
        "DrcProfile": {
          "type": "string"
        },
        "LfeFilter": {
          "type": "string"
        },
        "MetadataControl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AncillarySourceSettings": {
      "additionalProperties": false,
      "properties": {
        "SourceAncillaryChannelNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ArchiveCdnSettings": {
      "additionalProperties": false,
      "properties": {
        "ArchiveS3Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveS3Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ArchiveContainerSettings": {
      "additionalProperties": false,
      "properties": {
        "M2tsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings"
        },
        "RawSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.RawSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ArchiveGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "ArchiveCdnSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveCdnSettings"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "RolloverInterval": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ArchiveOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "ContainerSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveContainerSettings"
        },
        "Extension": {
          "type": "string"
        },
        "NameModifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ArchiveS3Settings": {
      "additionalProperties": false,
      "properties": {
        "CannedAcl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AribDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.AribSourceSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioChannelMapping": {
      "additionalProperties": false,
      "properties": {
        "InputChannelLevels": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.InputChannelLevel"
          },
          "type": "array"
        },
        "OutputChannel": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioCodecSettings": {
      "additionalProperties": false,
      "properties": {
        "AacSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AacSettings"
        },
        "Ac3Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Ac3Settings"
        },
        "Eac3Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Eac3Settings"
        },
        "Mp2Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Mp2Settings"
        },
        "PassThroughSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.PassThroughSettings"
        },
        "WavSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.WavSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioDescription": {
      "additionalProperties": false,
      "properties": {
        "AudioNormalizationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioNormalizationSettings"
        },
        "AudioSelectorName": {
          "type": "string"
        },
        "AudioType": {
          "type": "string"
        },
        "AudioTypeControl": {
          "type": "string"
        },
        "AudioWatermarkingSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioWatermarkSettings"
        },
        "CodecSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioCodecSettings"
        },
        "LanguageCode": {
          "type": "string"
        },
        "LanguageCodeControl": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "RemixSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.RemixSettings"
        },
        "StreamName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioHlsRenditionSelection": {
      "additionalProperties": false,
      "properties": {
        "GroupId": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioLanguageSelection": {
      "additionalProperties": false,
      "properties": {
        "LanguageCode": {
          "type": "string"
        },
        "LanguageSelectionPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioNormalizationSettings": {
      "additionalProperties": false,
      "properties": {
        "Algorithm": {
          "type": "string"
        },
        "AlgorithmControl": {
          "type": "string"
        },
        "TargetLkfs": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioOnlyHlsSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioGroupId": {
          "type": "string"
        },
        "AudioOnlyImage": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "AudioTrackType": {
          "type": "string"
        },
        "SegmentType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioPidSelection": {
      "additionalProperties": false,
      "properties": {
        "Pid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioSelector": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SelectorSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelectorSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioSelectorSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioHlsRenditionSelection": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioHlsRenditionSelection"
        },
        "AudioLanguageSelection": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioLanguageSelection"
        },
        "AudioPidSelection": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioPidSelection"
        },
        "AudioTrackSelection": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrackSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioSilenceFailoverSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioSelectorName": {
          "type": "string"
        },
        "AudioSilenceThresholdMsec": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioTrack": {
      "additionalProperties": false,
      "properties": {
        "Track": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioTrackSelection": {
      "additionalProperties": false,
      "properties": {
        "Tracks": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrack"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AudioWatermarkSettings": {
      "additionalProperties": false,
      "properties": {
        "NielsenWatermarksSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenWatermarksSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AutomaticInputFailoverSettings": {
      "additionalProperties": false,
      "properties": {
        "ErrorClearTimeMsec": {
          "type": "number"
        },
        "FailoverConditions": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverCondition"
          },
          "type": "array"
        },
        "InputPreference": {
          "type": "string"
        },
        "SecondaryInputId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AvailBlanking": {
      "additionalProperties": false,
      "properties": {
        "AvailBlankingImage": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AvailConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AvailSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AvailSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.AvailSettings": {
      "additionalProperties": false,
      "properties": {
        "Scte35SpliceInsert": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35SpliceInsert"
        },
        "Scte35TimeSignalApos": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35TimeSignalApos"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.BlackoutSlate": {
      "additionalProperties": false,
      "properties": {
        "BlackoutSlateImage": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "NetworkEndBlackout": {
          "type": "string"
        },
        "NetworkEndBlackoutImage": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "NetworkId": {
          "type": "string"
        },
        "State": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.BurnInDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "BackgroundColor": {
          "type": "string"
        },
        "BackgroundOpacity": {
          "type": "number"
        },
        "Font": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "FontColor": {
          "type": "string"
        },
        "FontOpacity": {
          "type": "number"
        },
        "FontResolution": {
          "type": "number"
        },
        "FontSize": {
          "type": "string"
        },
        "OutlineColor": {
          "type": "string"
        },
        "OutlineSize": {
          "type": "number"
        },
        "ShadowColor": {
          "type": "string"
        },
        "ShadowOpacity": {
          "type": "number"
        },
        "ShadowXOffset": {
          "type": "number"
        },
        "ShadowYOffset": {
          "type": "number"
        },
        "TeletextGridControl": {
          "type": "string"
        },
        "XPosition": {
          "type": "number"
        },
        "YPosition": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionDescription": {
      "additionalProperties": false,
      "properties": {
        "CaptionSelectorName": {
          "type": "string"
        },
        "DestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDestinationSettings"
        },
        "LanguageCode": {
          "type": "string"
        },
        "LanguageDescription": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "AribDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AribDestinationSettings"
        },
        "BurnInDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.BurnInDestinationSettings"
        },
        "DvbSubDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubDestinationSettings"
        },
        "EbuTtDDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.EbuTtDDestinationSettings"
        },
        "EmbeddedDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedDestinationSettings"
        },
        "EmbeddedPlusScte20DestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings"
        },
        "RtmpCaptionInfoDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings"
        },
        "Scte20PlusEmbeddedDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings"
        },
        "Scte27DestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27DestinationSettings"
        },
        "SmpteTtDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.SmpteTtDestinationSettings"
        },
        "TeletextDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextDestinationSettings"
        },
        "TtmlDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TtmlDestinationSettings"
        },
        "WebvttDestinationSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.WebvttDestinationSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionLanguageMapping": {
      "additionalProperties": false,
      "properties": {
        "CaptionChannel": {
          "type": "number"
        },
        "LanguageCode": {
          "type": "string"
        },
        "LanguageDescription": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionRectangle": {
      "additionalProperties": false,
      "properties": {
        "Height": {
          "type": "number"
        },
        "LeftOffset": {
          "type": "number"
        },
        "TopOffset": {
          "type": "number"
        },
        "Width": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionSelector": {
      "additionalProperties": false,
      "properties": {
        "LanguageCode": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SelectorSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelectorSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CaptionSelectorSettings": {
      "additionalProperties": false,
      "properties": {
        "AncillarySourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AncillarySourceSettings"
        },
        "AribSourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AribSourceSettings"
        },
        "DvbSubSourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubSourceSettings"
        },
        "EmbeddedSourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedSourceSettings"
        },
        "Scte20SourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20SourceSettings"
        },
        "Scte27SourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27SourceSettings"
        },
        "TeletextSourceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextSourceSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.CdiInputSpecification": {
      "additionalProperties": false,
      "properties": {
        "Resolution": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.ColorSpacePassthroughSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.DvbNitSettings": {
      "additionalProperties": false,
      "properties": {
        "NetworkId": {
          "type": "number"
        },
        "NetworkName": {
          "type": "string"
        },
        "RepInterval": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.DvbSdtSettings": {
      "additionalProperties": false,
      "properties": {
        "OutputSdt": {
          "type": "string"
        },
        "RepInterval": {
          "type": "number"
        },
        "ServiceName": {
          "type": "string"
        },
        "ServiceProviderName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.DvbSubDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "BackgroundColor": {
          "type": "string"
        },
        "BackgroundOpacity": {
          "type": "number"
        },
        "Font": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "FontColor": {
          "type": "string"
        },
        "FontOpacity": {
          "type": "number"
        },
        "FontResolution": {
          "type": "number"
        },
        "FontSize": {
          "type": "string"
        },
        "OutlineColor": {
          "type": "string"
        },
        "OutlineSize": {
          "type": "number"
        },
        "ShadowColor": {
          "type": "string"
        },
        "ShadowOpacity": {
          "type": "number"
        },
        "ShadowXOffset": {
          "type": "number"
        },
        "ShadowYOffset": {
          "type": "number"
        },
        "TeletextGridControl": {
          "type": "string"
        },
        "XPosition": {
          "type": "number"
        },
        "YPosition": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.DvbSubSourceSettings": {
      "additionalProperties": false,
      "properties": {
        "OcrLanguage": {
          "type": "string"
        },
        "Pid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.DvbTdtSettings": {
      "additionalProperties": false,
      "properties": {
        "RepInterval": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Eac3Settings": {
      "additionalProperties": false,
      "properties": {
        "AttenuationControl": {
          "type": "string"
        },
        "Bitrate": {
          "type": "number"
        },
        "BitstreamMode": {
          "type": "string"
        },
        "CodingMode": {
          "type": "string"
        },
        "DcFilter": {
          "type": "string"
        },
        "Dialnorm": {
          "type": "number"
        },
        "DrcLine": {
          "type": "string"
        },
        "DrcRf": {
          "type": "string"
        },
        "LfeControl": {
          "type": "string"
        },
        "LfeFilter": {
          "type": "string"
        },
        "LoRoCenterMixLevel": {
          "type": "number"
        },
        "LoRoSurroundMixLevel": {
          "type": "number"
        },
        "LtRtCenterMixLevel": {
          "type": "number"
        },
        "LtRtSurroundMixLevel": {
          "type": "number"
        },
        "MetadataControl": {
          "type": "string"
        },
        "PassthroughControl": {
          "type": "string"
        },
        "PhaseControl": {
          "type": "string"
        },
        "StereoDownmix": {
          "type": "string"
        },
        "SurroundExMode": {
          "type": "string"
        },
        "SurroundMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.EbuTtDDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "CopyrightHolder": {
          "type": "string"
        },
        "FillLineGap": {
          "type": "string"
        },
        "FontFamily": {
          "type": "string"
        },
        "StyleControl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.EmbeddedDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.EmbeddedSourceSettings": {
      "additionalProperties": false,
      "properties": {
        "Convert608To708": {
          "type": "string"
        },
        "Scte20Detection": {
          "type": "string"
        },
        "Source608ChannelNumber": {
          "type": "number"
        },
        "Source608TrackNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.EncoderSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioDescriptions": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.AudioDescription"
          },
          "type": "array"
        },
        "AvailBlanking": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AvailBlanking"
        },
        "AvailConfiguration": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AvailConfiguration"
        },
        "BlackoutSlate": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.BlackoutSlate"
        },
        "CaptionDescriptions": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDescription"
          },
          "type": "array"
        },
        "FeatureActivations": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FeatureActivations"
        },
        "GlobalConfiguration": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.GlobalConfiguration"
        },
        "MotionGraphicsConfiguration": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsConfiguration"
        },
        "NielsenConfiguration": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenConfiguration"
        },
        "OutputGroups": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroup"
          },
          "type": "array"
        },
        "TimecodeConfig": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TimecodeConfig"
        },
        "VideoDescriptions": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.VideoDescription"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FailoverCondition": {
      "additionalProperties": false,
      "properties": {
        "FailoverConditionSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverConditionSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FailoverConditionSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioSilenceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSilenceFailoverSettings"
        },
        "InputLossSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossFailoverSettings"
        },
        "VideoBlackSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoBlackFailoverSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FeatureActivations": {
      "additionalProperties": false,
      "properties": {
        "InputPrepareScheduleActions": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FecOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "ColumnDepth": {
          "type": "number"
        },
        "IncludeFec": {
          "type": "string"
        },
        "RowLength": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Fmp4HlsSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioRenditionSets": {
          "type": "string"
        },
        "NielsenId3Behavior": {
          "type": "string"
        },
        "TimedMetadataBehavior": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureCdnSettings": {
      "additionalProperties": false,
      "properties": {
        "FrameCaptureS3Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureS3Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "FrameCaptureCdnSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureCdnSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureHlsSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "NameModifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureS3Settings": {
      "additionalProperties": false,
      "properties": {
        "CannedAcl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.FrameCaptureSettings": {
      "additionalProperties": false,
      "properties": {
        "CaptureInterval": {
          "type": "number"
        },
        "CaptureIntervalUnits": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.GlobalConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InitialAudioGain": {
          "type": "number"
        },
        "InputEndAction": {
          "type": "string"
        },
        "InputLossBehavior": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossBehavior"
        },
        "OutputLockingMode": {
          "type": "string"
        },
        "OutputTimingSource": {
          "type": "string"
        },
        "SupportLowFramerateInputs": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H264ColorSpaceSettings": {
      "additionalProperties": false,
      "properties": {
        "ColorSpacePassthroughSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings"
        },
        "Rec601Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings"
        },
        "Rec709Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H264FilterSettings": {
      "additionalProperties": false,
      "properties": {
        "TemporalFilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H264Settings": {
      "additionalProperties": false,
      "properties": {
        "AdaptiveQuantization": {
          "type": "string"
        },
        "AfdSignaling": {
          "type": "string"
        },
        "Bitrate": {
          "type": "number"
        },
        "BufFillPct": {
          "type": "number"
        },
        "BufSize": {
          "type": "number"
        },
        "ColorMetadata": {
          "type": "string"
        },
        "ColorSpaceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H264ColorSpaceSettings"
        },
        "EntropyEncoding": {
          "type": "string"
        },
        "FilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H264FilterSettings"
        },
        "FixedAfd": {
          "type": "string"
        },
        "FlickerAq": {
          "type": "string"
        },
        "ForceFieldPictures": {
          "type": "string"
        },
        "FramerateControl": {
          "type": "string"
        },
        "FramerateDenominator": {
          "type": "number"
        },
        "FramerateNumerator": {
          "type": "number"
        },
        "GopBReference": {
          "type": "string"
        },
        "GopClosedCadence": {
          "type": "number"
        },
        "GopNumBFrames": {
          "type": "number"
        },
        "GopSize": {
          "type": "number"
        },
        "GopSizeUnits": {
          "type": "string"
        },
        "Level": {
          "type": "string"
        },
        "LookAheadRateControl": {
          "type": "string"
        },
        "MaxBitrate": {
          "type": "number"
        },
        "MinIInterval": {
          "type": "number"
        },
        "NumRefFrames": {
          "type": "number"
        },
        "ParControl": {
          "type": "string"
        },
        "ParDenominator": {
          "type": "number"
        },
        "ParNumerator": {
          "type": "number"
        },
        "Profile": {
          "type": "string"
        },
        "QualityLevel": {
          "type": "string"
        },
        "QvbrQualityLevel": {
          "type": "number"
        },
        "RateControlMode": {
          "type": "string"
        },
        "ScanType": {
          "type": "string"
        },
        "SceneChangeDetect": {
          "type": "string"
        },
        "Slices": {
          "type": "number"
        },
        "Softness": {
          "type": "number"
        },
        "SpatialAq": {
          "type": "string"
        },
        "SubgopLength": {
          "type": "string"
        },
        "Syntax": {
          "type": "string"
        },
        "TemporalAq": {
          "type": "string"
        },
        "TimecodeInsertion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H265ColorSpaceSettings": {
      "additionalProperties": false,
      "properties": {
        "ColorSpacePassthroughSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings"
        },
        "Hdr10Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings"
        },
        "Rec601Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings"
        },
        "Rec709Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H265FilterSettings": {
      "additionalProperties": false,
      "properties": {
        "TemporalFilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.H265Settings": {
      "additionalProperties": false,
      "properties": {
        "AdaptiveQuantization": {
          "type": "string"
        },
        "AfdSignaling": {
          "type": "string"
        },
        "AlternativeTransferFunction": {
          "type": "string"
        },
        "Bitrate": {
          "type": "number"
        },
        "BufSize": {
          "type": "number"
        },
        "ColorMetadata": {
          "type": "string"
        },
        "ColorSpaceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H265ColorSpaceSettings"
        },
        "FilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H265FilterSettings"
        },
        "FixedAfd": {
          "type": "string"
        },
        "FlickerAq": {
          "type": "string"
        },
        "FramerateDenominator": {
          "type": "number"
        },
        "FramerateNumerator": {
          "type": "number"
        },
        "GopClosedCadence": {
          "type": "number"
        },
        "GopSize": {
          "type": "number"
        },
        "GopSizeUnits": {
          "type": "string"
        },
        "Level": {
          "type": "string"
        },
        "LookAheadRateControl": {
          "type": "string"
        },
        "MaxBitrate": {
          "type": "number"
        },
        "MinIInterval": {
          "type": "number"
        },
        "ParDenominator": {
          "type": "number"
        },
        "ParNumerator": {
          "type": "number"
        },
        "Profile": {
          "type": "string"
        },
        "QvbrQualityLevel": {
          "type": "number"
        },
        "RateControlMode": {
          "type": "string"
        },
        "ScanType": {
          "type": "string"
        },
        "SceneChangeDetect": {
          "type": "string"
        },
        "Slices": {
          "type": "number"
        },
        "Tier": {
          "type": "string"
        },
        "TimecodeInsertion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Hdr10Settings": {
      "additionalProperties": false,
      "properties": {
        "MaxCll": {
          "type": "number"
        },
        "MaxFall": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsAkamaiSettings": {
      "additionalProperties": false,
      "properties": {
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "FilecacheDuration": {
          "type": "number"
        },
        "HttpTransferMode": {
          "type": "string"
        },
        "NumRetries": {
          "type": "number"
        },
        "RestartDelay": {
          "type": "number"
        },
        "Salt": {
          "type": "string"
        },
        "Token": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsBasicPutSettings": {
      "additionalProperties": false,
      "properties": {
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "FilecacheDuration": {
          "type": "number"
        },
        "NumRetries": {
          "type": "number"
        },
        "RestartDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsCdnSettings": {
      "additionalProperties": false,
      "properties": {
        "HlsAkamaiSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsAkamaiSettings"
        },
        "HlsBasicPutSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsBasicPutSettings"
        },
        "HlsMediaStoreSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsMediaStoreSettings"
        },
        "HlsS3Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsS3Settings"
        },
        "HlsWebdavSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsWebdavSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "AdMarkers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BaseUrlContent": {
          "type": "string"
        },
        "BaseUrlContent1": {
          "type": "string"
        },
        "BaseUrlManifest": {
          "type": "string"
        },
        "BaseUrlManifest1": {
          "type": "string"
        },
        "CaptionLanguageMappings": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionLanguageMapping"
          },
          "type": "array"
        },
        "CaptionLanguageSetting": {
          "type": "string"
        },
        "ClientCache": {
          "type": "string"
        },
        "CodecSpecification": {
          "type": "string"
        },
        "ConstantIv": {
          "type": "string"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "DirectoryStructure": {
          "type": "string"
        },
        "DiscontinuityTags": {
          "type": "string"
        },
        "EncryptionType": {
          "type": "string"
        },
        "HlsCdnSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsCdnSettings"
        },
        "HlsId3SegmentTagging": {
          "type": "string"
        },
        "IFrameOnlyPlaylists": {
          "type": "string"
        },
        "IncompleteSegmentBehavior": {
          "type": "string"
        },
        "IndexNSegments": {
          "type": "number"
        },
        "InputLossAction": {
          "type": "string"
        },
        "IvInManifest": {
          "type": "string"
        },
        "IvSource": {
          "type": "string"
        },
        "KeepSegments": {
          "type": "number"
        },
        "KeyFormat": {
          "type": "string"
        },
        "KeyFormatVersions": {
          "type": "string"
        },
        "KeyProviderSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.KeyProviderSettings"
        },
        "ManifestCompression": {
          "type": "string"
        },
        "ManifestDurationFormat": {
          "type": "string"
        },
        "MinSegmentLength": {
          "type": "number"
        },
        "Mode": {
          "type": "string"
        },
        "OutputSelection": {
          "type": "string"
        },
        "ProgramDateTime": {
          "type": "string"
        },
        "ProgramDateTimeClock": {
          "type": "string"
        },
        "ProgramDateTimePeriod": {
          "type": "number"
        },
        "RedundantManifest": {
          "type": "string"
        },
        "SegmentLength": {
          "type": "number"
        },
        "SegmentationMode": {
          "type": "string"
        },
        "SegmentsPerSubdirectory": {
          "type": "number"
        },
        "StreamInfResolution": {
          "type": "string"
        },
        "TimedMetadataId3Frame": {
          "type": "string"
        },
        "TimedMetadataId3Period": {
          "type": "number"
        },
        "TimestampDeltaMilliseconds": {
          "type": "number"
        },
        "TsFileMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsInputSettings": {
      "additionalProperties": false,
      "properties": {
        "Bandwidth": {
          "type": "number"
        },
        "BufferSegments": {
          "type": "number"
        },
        "Retries": {
          "type": "number"
        },
        "RetryInterval": {
          "type": "number"
        },
        "Scte35Source": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsMediaStoreSettings": {
      "additionalProperties": false,
      "properties": {
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "FilecacheDuration": {
          "type": "number"
        },
        "MediaStoreStorageClass": {
          "type": "string"
        },
        "NumRetries": {
          "type": "number"
        },
        "RestartDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "H265PackagingType": {
          "type": "string"
        },
        "HlsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsSettings"
        },
        "NameModifier": {
          "type": "string"
        },
        "SegmentModifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsS3Settings": {
      "additionalProperties": false,
      "properties": {
        "CannedAcl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioOnlyHlsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AudioOnlyHlsSettings"
        },
        "Fmp4HlsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Fmp4HlsSettings"
        },
        "FrameCaptureHlsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureHlsSettings"
        },
        "StandardHlsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.StandardHlsSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HlsWebdavSettings": {
      "additionalProperties": false,
      "properties": {
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "FilecacheDuration": {
          "type": "number"
        },
        "HttpTransferMode": {
          "type": "string"
        },
        "NumRetries": {
          "type": "number"
        },
        "RestartDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.HtmlMotionGraphicsSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputAttachment": {
      "additionalProperties": false,
      "properties": {
        "AutomaticInputFailoverSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.AutomaticInputFailoverSettings"
        },
        "InputAttachmentName": {
          "type": "string"
        },
        "InputId": {
          "type": "string"
        },
        "InputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputChannelLevel": {
      "additionalProperties": false,
      "properties": {
        "Gain": {
          "type": "number"
        },
        "InputChannel": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputLocation": {
      "additionalProperties": false,
      "properties": {
        "PasswordParam": {
          "type": "string"
        },
        "Uri": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputLossBehavior": {
      "additionalProperties": false,
      "properties": {
        "BlackFrameMsec": {
          "type": "number"
        },
        "InputLossImageColor": {
          "type": "string"
        },
        "InputLossImageSlate": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "InputLossImageType": {
          "type": "string"
        },
        "RepeatFrameMsec": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputLossFailoverSettings": {
      "additionalProperties": false,
      "properties": {
        "InputLossThresholdMsec": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioSelectors": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelector"
          },
          "type": "array"
        },
        "CaptionSelectors": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelector"
          },
          "type": "array"
        },
        "DeblockFilter": {
          "type": "string"
        },
        "DenoiseFilter": {
          "type": "string"
        },
        "FilterStrength": {
          "type": "number"
        },
        "InputFilter": {
          "type": "string"
        },
        "NetworkInputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.NetworkInputSettings"
        },
        "Scte35Pid": {
          "type": "number"
        },
        "Smpte2038DataPreference": {
          "type": "string"
        },
        "SourceEndBehavior": {
          "type": "string"
        },
        "VideoSelector": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelector"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.InputSpecification": {
      "additionalProperties": false,
      "properties": {
        "Codec": {
          "type": "string"
        },
        "MaximumBitrate": {
          "type": "string"
        },
        "Resolution": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.KeyProviderSettings": {
      "additionalProperties": false,
      "properties": {
        "StaticKeySettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.StaticKeySettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.M2tsSettings": {
      "additionalProperties": false,
      "properties": {
        "AbsentInputAudioBehavior": {
          "type": "string"
        },
        "Arib": {
          "type": "string"
        },
        "AribCaptionsPid": {
          "type": "string"
        },
        "AribCaptionsPidControl": {
          "type": "string"
        },
        "AudioBufferModel": {
          "type": "string"
        },
        "AudioFramesPerPes": {
          "type": "number"
        },
        "AudioPids": {
          "type": "string"
        },
        "AudioStreamType": {
          "type": "string"
        },
        "Bitrate": {
          "type": "number"
        },
        "BufferModel": {
          "type": "string"
        },
        "CcDescriptor": {
          "type": "string"
        },
        "DvbNitSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.DvbNitSettings"
        },
        "DvbSdtSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSdtSettings"
        },
        "DvbSubPids": {
          "type": "string"
        },
        "DvbTdtSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.DvbTdtSettings"
        },
        "DvbTeletextPid": {
          "type": "string"
        },
        "Ebif": {
          "type": "string"
        },
        "EbpAudioInterval": {
          "type": "string"
        },
        "EbpLookaheadMs": {
          "type": "number"
        },
        "EbpPlacement": {
          "type": "string"
        },
        "EcmPid": {
          "type": "string"
        },
        "EsRateInPes": {
          "type": "string"
        },
        "EtvPlatformPid": {
          "type": "string"
        },
        "EtvSignalPid": {
          "type": "string"
        },
        "FragmentTime": {
          "type": "number"
        },
        "Klv": {
          "type": "string"
        },
        "KlvDataPids": {
          "type": "string"
        },
        "NielsenId3Behavior": {
          "type": "string"
        },
        "NullPacketBitrate": {
          "type": "number"
        },
        "PatInterval": {
          "type": "number"
        },
        "PcrControl": {
          "type": "string"
        },
        "PcrPeriod": {
          "type": "number"
        },
        "PcrPid": {
          "type": "string"
        },
        "PmtInterval": {
          "type": "number"
        },
        "PmtPid": {
          "type": "string"
        },
        "ProgramNum": {
          "type": "number"
        },
        "RateMode": {
          "type": "string"
        },
        "Scte27Pids": {
          "type": "string"
        },
        "Scte35Control": {
          "type": "string"
        },
        "Scte35Pid": {
          "type": "string"
        },
        "SegmentationMarkers": {
          "type": "string"
        },
        "SegmentationStyle": {
          "type": "string"
        },
        "SegmentationTime": {
          "type": "number"
        },
        "TimedMetadataBehavior": {
          "type": "string"
        },
        "TimedMetadataPid": {
          "type": "string"
        },
        "TransportStreamId": {
          "type": "number"
        },
        "VideoPid": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.M3u8Settings": {
      "additionalProperties": false,
      "properties": {
        "AudioFramesPerPes": {
          "type": "number"
        },
        "AudioPids": {
          "type": "string"
        },
        "EcmPid": {
          "type": "string"
        },
        "NielsenId3Behavior": {
          "type": "string"
        },
        "PatInterval": {
          "type": "number"
        },
        "PcrControl": {
          "type": "string"
        },
        "PcrPeriod": {
          "type": "number"
        },
        "PcrPid": {
          "type": "string"
        },
        "PmtInterval": {
          "type": "number"
        },
        "PmtPid": {
          "type": "string"
        },
        "ProgramNum": {
          "type": "number"
        },
        "Scte35Behavior": {
          "type": "string"
        },
        "Scte35Pid": {
          "type": "string"
        },
        "TimedMetadataBehavior": {
          "type": "string"
        },
        "TimedMetadataPid": {
          "type": "string"
        },
        "TransportStreamId": {
          "type": "number"
        },
        "VideoPid": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MediaPackageGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "ChannelId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MediaPackageOutputSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.MotionGraphicsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MotionGraphicsInsertion": {
          "type": "string"
        },
        "MotionGraphicsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MotionGraphicsSettings": {
      "additionalProperties": false,
      "properties": {
        "HtmlMotionGraphicsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HtmlMotionGraphicsSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Mp2Settings": {
      "additionalProperties": false,
      "properties": {
        "Bitrate": {
          "type": "number"
        },
        "CodingMode": {
          "type": "string"
        },
        "SampleRate": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Mpeg2FilterSettings": {
      "additionalProperties": false,
      "properties": {
        "TemporalFilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Mpeg2Settings": {
      "additionalProperties": false,
      "properties": {
        "AdaptiveQuantization": {
          "type": "string"
        },
        "AfdSignaling": {
          "type": "string"
        },
        "ColorMetadata": {
          "type": "string"
        },
        "ColorSpace": {
          "type": "string"
        },
        "DisplayAspectRatio": {
          "type": "string"
        },
        "FilterSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2FilterSettings"
        },
        "FixedAfd": {
          "type": "string"
        },
        "FramerateDenominator": {
          "type": "number"
        },
        "FramerateNumerator": {
          "type": "number"
        },
        "GopClosedCadence": {
          "type": "number"
        },
        "GopNumBFrames": {
          "type": "number"
        },
        "GopSize": {
          "type": "number"
        },
        "GopSizeUnits": {
          "type": "string"
        },
        "ScanType": {
          "type": "string"
        },
        "SubgopLength": {
          "type": "string"
        },
        "TimecodeInsertion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MsSmoothGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "AcquisitionPointId": {
          "type": "string"
        },
        "AudioOnlyTimecodeControl": {
          "type": "string"
        },
        "CertificateMode": {
          "type": "string"
        },
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "EventId": {
          "type": "string"
        },
        "EventIdMode": {
          "type": "string"
        },
        "EventStopBehavior": {
          "type": "string"
        },
        "FilecacheDuration": {
          "type": "number"
        },
        "FragmentLength": {
          "type": "number"
        },
        "InputLossAction": {
          "type": "string"
        },
        "NumRetries": {
          "type": "number"
        },
        "RestartDelay": {
          "type": "number"
        },
        "SegmentationMode": {
          "type": "string"
        },
        "SendDelayMs": {
          "type": "number"
        },
        "SparseTrackType": {
          "type": "string"
        },
        "StreamManifestBehavior": {
          "type": "string"
        },
        "TimestampOffset": {
          "type": "string"
        },
        "TimestampOffsetMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MsSmoothOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "H265PackagingType": {
          "type": "string"
        },
        "NameModifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MultiplexGroupSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.MultiplexOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "MultiplexId": {
          "type": "string"
        },
        "ProgramName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.NetworkInputSettings": {
      "additionalProperties": false,
      "properties": {
        "HlsInputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsInputSettings"
        },
        "ServerValidation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.NielsenCBET": {
      "additionalProperties": false,
      "properties": {
        "CbetCheckDigitString": {
          "type": "string"
        },
        "CbetStepaside": {
          "type": "string"
        },
        "Csid": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.NielsenConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DistributorId": {
          "type": "string"
        },
        "NielsenPcmToId3Tagging": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.NielsenNaesIiNw": {
      "additionalProperties": false,
      "properties": {
        "CheckDigitString": {
          "type": "string"
        },
        "Sid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.NielsenWatermarksSettings": {
      "additionalProperties": false,
      "properties": {
        "NielsenCbetSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenCBET"
        },
        "NielsenDistributionType": {
          "type": "string"
        },
        "NielsenNaesIiNwSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenNaesIiNw"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Output": {
      "additionalProperties": false,
      "properties": {
        "AudioDescriptionNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CaptionDescriptionNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OutputName": {
          "type": "string"
        },
        "OutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputSettings"
        },
        "VideoDescriptionName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputDestination": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "MediaPackageSettings": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings"
          },
          "type": "array"
        },
        "MultiplexSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings"
        },
        "Settings": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestinationSettings"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "PasswordParam": {
          "type": "string"
        },
        "StreamName": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputGroup": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "OutputGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroupSettings"
        },
        "Outputs": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.Output"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "ArchiveGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveGroupSettings"
        },
        "FrameCaptureGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureGroupSettings"
        },
        "HlsGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsGroupSettings"
        },
        "MediaPackageGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageGroupSettings"
        },
        "MsSmoothGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothGroupSettings"
        },
        "MultiplexGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexGroupSettings"
        },
        "RtmpGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpGroupSettings"
        },
        "UdpGroupSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.UdpGroupSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputLocationRef": {
      "additionalProperties": false,
      "properties": {
        "DestinationRefId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.OutputSettings": {
      "additionalProperties": false,
      "properties": {
        "ArchiveOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveOutputSettings"
        },
        "FrameCaptureOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureOutputSettings"
        },
        "HlsOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.HlsOutputSettings"
        },
        "MediaPackageOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputSettings"
        },
        "MsSmoothOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothOutputSettings"
        },
        "MultiplexOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexOutputSettings"
        },
        "RtmpOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpOutputSettings"
        },
        "UdpOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.UdpOutputSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.PassThroughSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.RawSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.Rec601Settings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.Rec709Settings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.RemixSettings": {
      "additionalProperties": false,
      "properties": {
        "ChannelMappings": {
          "items": {
            "$ref": "#/definitions/AWS::MediaLive::Channel.AudioChannelMapping"
          },
          "type": "array"
        },
        "ChannelsIn": {
          "type": "number"
        },
        "ChannelsOut": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.RtmpGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "AdMarkers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AuthenticationScheme": {
          "type": "string"
        },
        "CacheFullBehavior": {
          "type": "string"
        },
        "CacheLength": {
          "type": "number"
        },
        "CaptionData": {
          "type": "string"
        },
        "InputLossAction": {
          "type": "string"
        },
        "RestartDelay": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.RtmpOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "CertificateMode": {
          "type": "string"
        },
        "ConnectionRetryInterval": {
          "type": "number"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "NumRetries": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte20SourceSettings": {
      "additionalProperties": false,
      "properties": {
        "Convert608To708": {
          "type": "string"
        },
        "Source608ChannelNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte27DestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte27SourceSettings": {
      "additionalProperties": false,
      "properties": {
        "OcrLanguage": {
          "type": "string"
        },
        "Pid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte35SpliceInsert": {
      "additionalProperties": false,
      "properties": {
        "AdAvailOffset": {
          "type": "number"
        },
        "NoRegionalBlackoutFlag": {
          "type": "string"
        },
        "WebDeliveryAllowedFlag": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.Scte35TimeSignalApos": {
      "additionalProperties": false,
      "properties": {
        "AdAvailOffset": {
          "type": "number"
        },
        "NoRegionalBlackoutFlag": {
          "type": "string"
        },
        "WebDeliveryAllowedFlag": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.SmpteTtDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.StandardHlsSettings": {
      "additionalProperties": false,
      "properties": {
        "AudioRenditionSets": {
          "type": "string"
        },
        "M3u8Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.M3u8Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.StaticKeySettings": {
      "additionalProperties": false,
      "properties": {
        "KeyProviderServer": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation"
        },
        "StaticKeyValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.TeletextDestinationSettings": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::MediaLive::Channel.TeletextSourceSettings": {
      "additionalProperties": false,
      "properties": {
        "OutputRectangle": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionRectangle"
        },
        "PageNumber": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.TemporalFilterSettings": {
      "additionalProperties": false,
      "properties": {
        "PostFilterSharpening": {
          "type": "string"
        },
        "Strength": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.TimecodeConfig": {
      "additionalProperties": false,
      "properties": {
        "Source": {
          "type": "string"
        },
        "SyncThreshold": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.TtmlDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "StyleControl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.UdpContainerSettings": {
      "additionalProperties": false,
      "properties": {
        "M2tsSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.UdpGroupSettings": {
      "additionalProperties": false,
      "properties": {
        "InputLossAction": {
          "type": "string"
        },
        "TimedMetadataId3Frame": {
          "type": "string"
        },
        "TimedMetadataId3Period": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.UdpOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "BufferMsec": {
          "type": "number"
        },
        "ContainerSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.UdpContainerSettings"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef"
        },
        "FecOutputSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FecOutputSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoBlackFailoverSettings": {
      "additionalProperties": false,
      "properties": {
        "BlackDetectThreshold": {
          "type": "number"
        },
        "VideoBlackThresholdMsec": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoCodecSettings": {
      "additionalProperties": false,
      "properties": {
        "FrameCaptureSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureSettings"
        },
        "H264Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H264Settings"
        },
        "H265Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.H265Settings"
        },
        "Mpeg2Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoDescription": {
      "additionalProperties": false,
      "properties": {
        "CodecSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoCodecSettings"
        },
        "Height": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "RespondToAfd": {
          "type": "string"
        },
        "ScalingBehavior": {
          "type": "string"
        },
        "Sharpness": {
          "type": "number"
        },
        "Width": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoSelector": {
      "additionalProperties": false,
      "properties": {
        "ColorSpace": {
          "type": "string"
        },
        "ColorSpaceSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings"
        },
        "ColorSpaceUsage": {
          "type": "string"
        },
        "SelectorSettings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorSettings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings": {
      "additionalProperties": false,
      "properties": {
        "Hdr10Settings": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoSelectorPid": {
      "additionalProperties": false,
      "properties": {
        "Pid": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoSelectorProgramId": {
      "additionalProperties": false,
      "properties": {
        "ProgramId": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VideoSelectorSettings": {
      "additionalProperties": false,
      "properties": {
        "VideoSelectorPid": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorPid"
        },
        "VideoSelectorProgramId": {
          "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorProgramId"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.VpcOutputSettings": {
      "additionalProperties": false,
      "properties": {
        "PublicAddressAllocationIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.WavSettings": {
      "additionalProperties": false,
      "properties": {
        "BitDepth": {
          "type": "number"
        },
        "CodingMode": {
          "type": "string"
        },
        "SampleRate": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Channel.WebvttDestinationSettings": {
      "additionalProperties": false,
      "properties": {
        "StyleControl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Destinations": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Input.InputDestinationRequest"
              },
              "type": "array"
            },
            "InputDevices": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Input.InputDeviceSettings"
              },
              "type": "array"
            },
            "InputSecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "MediaConnectFlows": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Input.MediaConnectFlowRequest"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Sources": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::Input.InputSourceRequest"
              },
              "type": "array"
            },
            "Tags": {
              "type": "object"
            },
            "Type": {
              "type": "string"
            },
            "Vpc": {
              "$ref": "#/definitions/AWS::MediaLive::Input.InputVpcRequest"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaLive::Input"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::MediaLive::Input.InputDestinationRequest": {
      "additionalProperties": false,
      "properties": {
        "StreamName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input.InputDeviceRequest": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input.InputDeviceSettings": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input.InputSourceRequest": {
      "additionalProperties": false,
      "properties": {
        "PasswordParam": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input.InputVpcRequest": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::Input.MediaConnectFlowRequest": {
      "additionalProperties": false,
      "properties": {
        "FlowArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaLive::InputSecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "type": "object"
            },
            "WhitelistRules": {
              "items": {
                "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaLive::InputSecurityGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::Asset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Id": {
              "type": "string"
            },
            "PackagingGroupId": {
              "type": "string"
            },
            "ResourceId": {
              "type": "string"
            },
            "SourceArn": {
              "type": "string"
            },
            "SourceRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Id", "PackagingGroupId", "SourceArn", "SourceRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaPackage::Asset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaPackage::Asset.EgressEndpoint": {
      "additionalProperties": false,
      "properties": {
        "PackagingConfigurationId": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["PackagingConfigurationId", "Url"],
      "type": "object"
    },
    "AWS::MediaPackage::Channel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EgressAccessLogs": {
              "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration"
            },
            "HlsIngest": {
              "$ref": "#/definitions/AWS::MediaPackage::Channel.HlsIngest"
            },
            "Id": {
              "type": "string"
            },
            "IngressAccessLogs": {
              "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Id"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaPackage::Channel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaPackage::Channel.HlsIngest": {
      "additionalProperties": false,
      "properties": {
        "ingestEndpoints": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::Channel.IngestEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Id", "Password", "Url", "Username"],
      "type": "object"
    },
    "AWS::MediaPackage::Channel.LogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Authorization": {
              "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization"
            },
            "ChannelId": {
              "type": "string"
            },
            "CmafPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage"
            },
            "DashPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage"
            },
            "Description": {
              "type": "string"
            },
            "HlsPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage"
            },
            "Id": {
              "type": "string"
            },
            "ManifestName": {
              "type": "string"
            },
            "MssPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage"
            },
            "Origination": {
              "type": "string"
            },
            "StartoverWindowSeconds": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TimeDelaySeconds": {
              "type": "number"
            },
            "Whitelist": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["ChannelId", "Id"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaPackage::OriginEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.Authorization": {
      "additionalProperties": false,
      "properties": {
        "CdnIdentifierSecret": {
          "type": "string"
        },
        "SecretsRoleArn": {
          "type": "string"
        }
      },
      "required": ["CdnIdentifierSecret", "SecretsRoleArn"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.CmafEncryption": {
      "additionalProperties": false,
      "properties": {
        "ConstantInitializationVector": {
          "type": "string"
        },
        "EncryptionMethod": {
          "type": "string"
        },
        "KeyRotationIntervalSeconds": {
          "type": "number"
        },
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.CmafPackage": {
      "additionalProperties": false,
      "properties": {
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption"
        },
        "HlsManifests": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest"
          },
          "type": "array"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "SegmentPrefix": {
          "type": "string"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.DashEncryption": {
      "additionalProperties": false,
      "properties": {
        "KeyRotationIntervalSeconds": {
          "type": "number"
        },
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.DashPackage": {
      "additionalProperties": false,
      "properties": {
        "AdTriggers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AdsOnDeliveryRestrictions": {
          "type": "string"
        },
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption"
        },
        "IncludeIframeOnlyStream": {
          "type": "boolean"
        },
        "ManifestLayout": {
          "type": "string"
        },
        "ManifestWindowSeconds": {
          "type": "number"
        },
        "MinBufferTimeSeconds": {
          "type": "number"
        },
        "MinUpdatePeriodSeconds": {
          "type": "number"
        },
        "PeriodTriggers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Profile": {
          "type": "string"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "SegmentTemplateFormat": {
          "type": "string"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection"
        },
        "SuggestedPresentationDelaySeconds": {
          "type": "number"
        },
        "UtcTiming": {
          "type": "string"
        },
        "UtcTimingUri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration": {
      "additionalProperties": false,
      "properties": {
        "PresetSpeke20Audio": {
          "type": "string"
        },
        "PresetSpeke20Video": {
          "type": "string"
        }
      },
      "required": ["PresetSpeke20Audio", "PresetSpeke20Video"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.HlsEncryption": {
      "additionalProperties": false,
      "properties": {
        "ConstantInitializationVector": {
          "type": "string"
        },
        "EncryptionMethod": {
          "type": "string"
        },
        "KeyRotationIntervalSeconds": {
          "type": "number"
        },
        "RepeatExtXKey": {
          "type": "boolean"
        },
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.HlsManifest": {
      "additionalProperties": false,
      "properties": {
        "AdMarkers": {
          "type": "string"
        },
        "AdTriggers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AdsOnDeliveryRestrictions": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "IncludeIframeOnlyStream": {
          "type": "boolean"
        },
        "ManifestName": {
          "type": "string"
        },
        "PlaylistType": {
          "type": "string"
        },
        "PlaylistWindowSeconds": {
          "type": "number"
        },
        "ProgramDateTimeIntervalSeconds": {
          "type": "number"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.HlsPackage": {
      "additionalProperties": false,
      "properties": {
        "AdMarkers": {
          "type": "string"
        },
        "AdTriggers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AdsOnDeliveryRestrictions": {
          "type": "string"
        },
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption"
        },
        "IncludeDvbSubtitles": {
          "type": "boolean"
        },
        "IncludeIframeOnlyStream": {
          "type": "boolean"
        },
        "PlaylistType": {
          "type": "string"
        },
        "PlaylistWindowSeconds": {
          "type": "number"
        },
        "ProgramDateTimeIntervalSeconds": {
          "type": "number"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection"
        },
        "UseAudioRenditionGroup": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.MssEncryption": {
      "additionalProperties": false,
      "properties": {
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.MssPackage": {
      "additionalProperties": false,
      "properties": {
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption"
        },
        "ManifestWindowSeconds": {
          "type": "number"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": {
      "additionalProperties": false,
      "properties": {
        "CertificateArn": {
          "type": "string"
        },
        "EncryptionContractConfiguration": {
          "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration"
        },
        "ResourceId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "SystemIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["ResourceId", "RoleArn", "SystemIds", "Url"],
      "type": "object"
    },
    "AWS::MediaPackage::OriginEndpoint.StreamSelection": {
      "additionalProperties": false,
      "properties": {
        "MaxVideoBitsPerSecond": {
          "type": "number"
        },
        "MinVideoBitsPerSecond": {
          "type": "number"
        },
        "StreamOrder": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CmafPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage"
            },
            "DashPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage"
            },
            "HlsPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage"
            },
            "Id": {
              "type": "string"
            },
            "MssPackage": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage"
            },
            "PackagingGroupId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Id", "PackagingGroupId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaPackage::PackagingConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": {
      "additionalProperties": false,
      "properties": {
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.CmafPackage": {
      "additionalProperties": false,
      "properties": {
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption"
        },
        "HlsManifests": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest"
          },
          "type": "array"
        },
        "IncludeEncoderConfigurationInSegments": {
          "type": "boolean"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        }
      },
      "required": ["HlsManifests"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.DashEncryption": {
      "additionalProperties": false,
      "properties": {
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.DashManifest": {
      "additionalProperties": false,
      "properties": {
        "ManifestLayout": {
          "type": "string"
        },
        "ManifestName": {
          "type": "string"
        },
        "MinBufferTimeSeconds": {
          "type": "number"
        },
        "Profile": {
          "type": "string"
        },
        "ScteMarkersSource": {
          "type": "string"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.DashPackage": {
      "additionalProperties": false,
      "properties": {
        "DashManifests": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest"
          },
          "type": "array"
        },
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption"
        },
        "IncludeEncoderConfigurationInSegments": {
          "type": "boolean"
        },
        "IncludeIframeOnlyStream": {
          "type": "boolean"
        },
        "PeriodTriggers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "SegmentTemplateFormat": {
          "type": "string"
        }
      },
      "required": ["DashManifests"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": {
      "additionalProperties": false,
      "properties": {
        "PresetSpeke20Audio": {
          "type": "string"
        },
        "PresetSpeke20Video": {
          "type": "string"
        }
      },
      "required": ["PresetSpeke20Audio", "PresetSpeke20Video"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": {
      "additionalProperties": false,
      "properties": {
        "ConstantInitializationVector": {
          "type": "string"
        },
        "EncryptionMethod": {
          "type": "string"
        },
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.HlsManifest": {
      "additionalProperties": false,
      "properties": {
        "AdMarkers": {
          "type": "string"
        },
        "IncludeIframeOnlyStream": {
          "type": "boolean"
        },
        "ManifestName": {
          "type": "string"
        },
        "ProgramDateTimeIntervalSeconds": {
          "type": "number"
        },
        "RepeatExtXKey": {
          "type": "boolean"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.HlsPackage": {
      "additionalProperties": false,
      "properties": {
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption"
        },
        "HlsManifests": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest"
          },
          "type": "array"
        },
        "IncludeDvbSubtitles": {
          "type": "boolean"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        },
        "UseAudioRenditionGroup": {
          "type": "boolean"
        }
      },
      "required": ["HlsManifests"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.MssEncryption": {
      "additionalProperties": false,
      "properties": {
        "SpekeKeyProvider": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider"
        }
      },
      "required": ["SpekeKeyProvider"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.MssManifest": {
      "additionalProperties": false,
      "properties": {
        "ManifestName": {
          "type": "string"
        },
        "StreamSelection": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.MssPackage": {
      "additionalProperties": false,
      "properties": {
        "Encryption": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption"
        },
        "MssManifests": {
          "items": {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest"
          },
          "type": "array"
        },
        "SegmentDurationSeconds": {
          "type": "number"
        }
      },
      "required": ["MssManifests"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": {
      "additionalProperties": false,
      "properties": {
        "EncryptionContractConfiguration": {
          "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration"
        },
        "RoleArn": {
          "type": "string"
        },
        "SystemIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["RoleArn", "SystemIds", "Url"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingConfiguration.StreamSelection": {
      "additionalProperties": false,
      "properties": {
        "MaxVideoBitsPerSecond": {
          "type": "number"
        },
        "MinVideoBitsPerSecond": {
          "type": "number"
        },
        "StreamOrder": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaPackage::PackagingGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Authorization": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization"
            },
            "EgressAccessLogs": {
              "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.LogConfiguration"
            },
            "Id": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Id"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaPackage::PackagingGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingGroup.Authorization": {
      "additionalProperties": false,
      "properties": {
        "CdnIdentifierSecret": {
          "type": "string"
        },
        "SecretsRoleArn": {
          "type": "string"
        }
      },
      "required": ["CdnIdentifierSecret", "SecretsRoleArn"],
      "type": "object"
    },
    "AWS::MediaPackage::PackagingGroup.LogConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogGroupName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaStore::Container": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessLoggingEnabled": {
              "type": "boolean"
            },
            "ContainerName": {
              "type": "string"
            },
            "CorsPolicy": {
              "items": {
                "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule"
              },
              "type": "array"
            },
            "LifecyclePolicy": {
              "type": "string"
            },
            "MetricPolicy": {
              "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy"
            },
            "Policy": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ContainerName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaStore::Container"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaStore::Container.CorsRule": {
      "additionalProperties": false,
      "properties": {
        "AllowedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedOrigins": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExposeHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxAgeSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaStore::Container.MetricPolicy": {
      "additionalProperties": false,
      "properties": {
        "ContainerLevelMetrics": {
          "type": "string"
        },
        "MetricPolicyRules": {
          "items": {
            "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule"
          },
          "type": "array"
        }
      },
      "required": ["ContainerLevelMetrics"],
      "type": "object"
    },
    "AWS::MediaStore::Container.MetricPolicyRule": {
      "additionalProperties": false,
      "properties": {
        "ObjectGroup": {
          "type": "string"
        },
        "ObjectGroupName": {
          "type": "string"
        }
      },
      "required": ["ObjectGroup", "ObjectGroupName"],
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdDecisionServerUrl": {
              "type": "string"
            },
            "AvailSuppression": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.AvailSuppression"
            },
            "Bumper": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.Bumper"
            },
            "CdnConfiguration": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.CdnConfiguration"
            },
            "ConfigurationAliases": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "object"
                }
              },
              "type": "object"
            },
            "DashConfiguration": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.DashConfiguration"
            },
            "HlsConfiguration": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.HlsConfiguration"
            },
            "LivePreRollConfiguration": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.LivePreRollConfiguration"
            },
            "ManifestProcessingRules": {
              "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.ManifestProcessingRules"
            },
            "Name": {
              "type": "string"
            },
            "PersonalizationThresholdSeconds": {
              "type": "number"
            },
            "SlateAdUrl": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TranscodeProfileName": {
              "type": "string"
            },
            "VideoContentSourceUrl": {
              "type": "string"
            }
          },
          "required": ["AdDecisionServerUrl", "Name", "VideoContentSourceUrl"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MediaTailor::PlaybackConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.AdMarkerPassthrough": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.AvailSuppression": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.Bumper": {
      "additionalProperties": false,
      "properties": {
        "EndUrl": {
          "type": "string"
        },
        "StartUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.CdnConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdSegmentUrlPrefix": {
          "type": "string"
        },
        "ContentSegmentUrlPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.DashConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ManifestEndpointPrefix": {
          "type": "string"
        },
        "MpdLocation": {
          "type": "string"
        },
        "OriginManifestType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.HlsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ManifestEndpointPrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.LivePreRollConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AdDecisionServerUrl": {
          "type": "string"
        },
        "MaxDurationSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MediaTailor::PlaybackConfiguration.ManifestProcessingRules": {
      "additionalProperties": false,
      "properties": {
        "AdMarkerPassthrough": {
          "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.AdMarkerPassthrough"
        }
      },
      "type": "object"
    },
    "AWS::MemoryDB::ACL": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ACLName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["ACLName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MemoryDB::ACL"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MemoryDB::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ACLName": {
              "type": "string"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "ClusterEndpoint": {
              "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint"
            },
            "ClusterName": {
              "type": "string"
            },
            "DataTiering": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "FinalSnapshotName": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "MaintenanceWindow": {
              "type": "string"
            },
            "NodeType": {
              "type": "string"
            },
            "NumReplicasPerShard": {
              "type": "number"
            },
            "NumShards": {
              "type": "number"
            },
            "ParameterGroupName": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnapshotArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnapshotName": {
              "type": "string"
            },
            "SnapshotRetentionLimit": {
              "type": "number"
            },
            "SnapshotWindow": {
              "type": "string"
            },
            "SnsTopicArn": {
              "type": "string"
            },
            "SnsTopicStatus": {
              "type": "string"
            },
            "SubnetGroupName": {
              "type": "string"
            },
            "TLSEnabled": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ACLName", "ClusterName", "NodeType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MemoryDB::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MemoryDB::Cluster.Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::MemoryDB::ParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "ParameterGroupName": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Family", "ParameterGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MemoryDB::ParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MemoryDB::SubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "SubnetGroupName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SubnetGroupName", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MemoryDB::SubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MemoryDB::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessString": {
              "type": "string"
            },
            "AuthenticationMode": {
              "$ref": "#/definitions/AWS::MemoryDB::User.AuthenticationMode"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["AccessString", "AuthenticationMode", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::MemoryDB::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::MemoryDB::User.AuthenticationMode": {
      "additionalProperties": false,
      "properties": {
        "Passwords": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Neptune::DBCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociatedRoles": {
              "items": {
                "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole"
              },
              "type": "array"
            },
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BackupRetentionPeriod": {
              "type": "number"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBClusterParameterGroupName": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "DeletionProtection": {
              "type": "boolean"
            },
            "EnableCloudwatchLogsExports": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EngineVersion": {
              "type": "string"
            },
            "IamAuthEnabled": {
              "type": "boolean"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "RestoreToTime": {
              "type": "string"
            },
            "RestoreType": {
              "type": "string"
            },
            "SnapshotIdentifier": {
              "type": "string"
            },
            "SourceDBClusterIdentifier": {
              "type": "string"
            },
            "StorageEncrypted": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UseLatestRestorableTime": {
              "type": "boolean"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Neptune::DBCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Neptune::DBCluster.DBClusterRole": {
      "additionalProperties": false,
      "properties": {
        "FeatureName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::Neptune::DBClusterParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "Family", "Parameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Neptune::DBClusterParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Neptune::DBInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowMajorVersionUpgrade": {
              "type": "boolean"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBInstanceClass": {
              "type": "string"
            },
            "DBInstanceIdentifier": {
              "type": "string"
            },
            "DBParameterGroupName": {
              "type": "string"
            },
            "DBSnapshotIdentifier": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBInstanceClass"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Neptune::DBInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Neptune::DBParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "Family", "Parameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Neptune::DBParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Neptune::DBSubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBSubnetGroupDescription": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBSubnetGroupDescription", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Neptune::DBSubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkFirewall::Firewall": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeleteProtection": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "FirewallName": {
              "type": "string"
            },
            "FirewallPolicyArn": {
              "type": "string"
            },
            "FirewallPolicyChangeProtection": {
              "type": "boolean"
            },
            "SubnetChangeProtection": {
              "type": "boolean"
            },
            "SubnetMappings": {
              "items": {
                "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": [
            "FirewallName",
            "FirewallPolicyArn",
            "SubnetMappings",
            "VpcId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkFirewall::Firewall"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkFirewall::Firewall.SubnetMapping": {
      "additionalProperties": false,
      "properties": {
        "SubnetId": {
          "type": "string"
        }
      },
      "required": ["SubnetId"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "FirewallPolicy": {
              "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy"
            },
            "FirewallPolicyName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["FirewallPolicy", "FirewallPolicyName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkFirewall::FirewallPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": {
      "additionalProperties": false,
      "properties": {
        "PublishMetricAction": {
          "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.CustomAction": {
      "additionalProperties": false,
      "properties": {
        "ActionDefinition": {
          "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition"
        },
        "ActionName": {
          "type": "string"
        }
      },
      "required": ["ActionDefinition", "ActionName"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.Dimension": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": {
      "additionalProperties": false,
      "properties": {
        "StatefulDefaultActions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StatefulEngineOptions": {
          "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions"
        },
        "StatefulRuleGroupReferences": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference"
          },
          "type": "array"
        },
        "StatelessCustomActions": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction"
          },
          "type": "array"
        },
        "StatelessDefaultActions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StatelessFragmentDefaultActions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StatelessRuleGroupReferences": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference"
          },
          "type": "array"
        }
      },
      "required": [
        "StatelessDefaultActions",
        "StatelessFragmentDefaultActions"
      ],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension"
          },
          "type": "array"
        }
      },
      "required": ["Dimensions"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": {
      "additionalProperties": false,
      "properties": {
        "RuleOrder": {
          "type": "string"
        },
        "StreamExceptionPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupOverride": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": {
      "additionalProperties": false,
      "properties": {
        "Override": {
          "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupOverride"
        },
        "Priority": {
          "type": "number"
        },
        "ResourceArn": {
          "type": "string"
        }
      },
      "required": ["ResourceArn"],
      "type": "object"
    },
    "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "ResourceArn": {
          "type": "string"
        }
      },
      "required": ["Priority", "ResourceArn"],
      "type": "object"
    },
    "AWS::NetworkFirewall::LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FirewallArn": {
              "type": "string"
            },
            "FirewallName": {
              "type": "string"
            },
            "LoggingConfiguration": {
              "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration"
            }
          },
          "required": ["FirewallArn", "LoggingConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkFirewall::LoggingConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": {
      "additionalProperties": false,
      "properties": {
        "LogDestination": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "LogDestinationType": {
          "type": "string"
        },
        "LogType": {
          "type": "string"
        }
      },
      "required": ["LogDestination", "LogDestinationType", "LogType"],
      "type": "object"
    },
    "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "LogDestinationConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig"
          },
          "type": "array"
        }
      },
      "required": ["LogDestinationConfigs"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Capacity": {
              "type": "number"
            },
            "Description": {
              "type": "string"
            },
            "RuleGroup": {
              "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup"
            },
            "RuleGroupName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Capacity", "RuleGroupName", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkFirewall::RuleGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.ActionDefinition": {
      "additionalProperties": false,
      "properties": {
        "PublishMetricAction": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.Address": {
      "additionalProperties": false,
      "properties": {
        "AddressDefinition": {
          "type": "string"
        }
      },
      "required": ["AddressDefinition"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.CustomAction": {
      "additionalProperties": false,
      "properties": {
        "ActionDefinition": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition"
        },
        "ActionName": {
          "type": "string"
        }
      },
      "required": ["ActionDefinition", "ActionName"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.Dimension": {
      "additionalProperties": false,
      "properties": {
        "Value": {
          "type": "string"
        }
      },
      "required": ["Value"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.Header": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        },
        "DestinationPort": {
          "type": "string"
        },
        "Direction": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        },
        "SourcePort": {
          "type": "string"
        }
      },
      "required": [
        "Destination",
        "DestinationPort",
        "Direction",
        "Protocol",
        "Source",
        "SourcePort"
      ],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.IPSet": {
      "additionalProperties": false,
      "properties": {
        "Definition": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.IPSetReference": {
      "additionalProperties": false,
      "properties": {
        "ReferenceArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.MatchAttributes": {
      "additionalProperties": false,
      "properties": {
        "DestinationPorts": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange"
          },
          "type": "array"
        },
        "Destinations": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address"
          },
          "type": "array"
        },
        "Protocols": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "SourcePorts": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange"
          },
          "type": "array"
        },
        "Sources": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address"
          },
          "type": "array"
        },
        "TCPFlags": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.PortRange": {
      "additionalProperties": false,
      "properties": {
        "FromPort": {
          "type": "number"
        },
        "ToPort": {
          "type": "number"
        }
      },
      "required": ["FromPort", "ToPort"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.PortSet": {
      "additionalProperties": false,
      "properties": {
        "Definition": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension"
          },
          "type": "array"
        }
      },
      "required": ["Dimensions"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.ReferenceSets": {
      "additionalProperties": false,
      "properties": {
        "IPSetReferences": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSetReference"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RuleDefinition": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MatchAttributes": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes"
        }
      },
      "required": ["Actions", "MatchAttributes"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RuleGroup": {
      "additionalProperties": false,
      "properties": {
        "ReferenceSets": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ReferenceSets"
        },
        "RuleVariables": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables"
        },
        "RulesSource": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource"
        },
        "StatefulRuleOptions": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions"
        }
      },
      "required": ["RulesSource"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RuleOption": {
      "additionalProperties": false,
      "properties": {
        "Keyword": {
          "type": "string"
        },
        "Settings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Keyword"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RuleVariables": {
      "additionalProperties": false,
      "properties": {
        "IPSets": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet"
            }
          },
          "type": "object"
        },
        "PortSets": {
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RulesSource": {
      "additionalProperties": false,
      "properties": {
        "RulesSourceList": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList"
        },
        "RulesString": {
          "type": "string"
        },
        "StatefulRules": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule"
          },
          "type": "array"
        },
        "StatelessRulesAndCustomActions": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.RulesSourceList": {
      "additionalProperties": false,
      "properties": {
        "GeneratedRulesType": {
          "type": "string"
        },
        "TargetTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Targets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["GeneratedRulesType", "TargetTypes", "Targets"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.StatefulRule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Header": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header"
        },
        "RuleOptions": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption"
          },
          "type": "array"
        }
      },
      "required": ["Action", "Header", "RuleOptions"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": {
      "additionalProperties": false,
      "properties": {
        "RuleOrder": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.StatelessRule": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "RuleDefinition": {
          "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition"
        }
      },
      "required": ["Priority", "RuleDefinition"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": {
      "additionalProperties": false,
      "properties": {
        "CustomActions": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction"
          },
          "type": "array"
        },
        "StatelessRules": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule"
          },
          "type": "array"
        }
      },
      "required": ["StatelessRules"],
      "type": "object"
    },
    "AWS::NetworkFirewall::RuleGroup.TCPFlagField": {
      "additionalProperties": false,
      "properties": {
        "Flags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Masks": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Flags"],
      "type": "object"
    },
    "AWS::NetworkManager::ConnectAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CoreNetworkId": {
              "type": "string"
            },
            "EdgeLocation": {
              "type": "string"
            },
            "Options": {
              "$ref": "#/definitions/AWS::NetworkManager::ConnectAttachment.ConnectAttachmentOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TransportAttachmentId": {
              "type": "string"
            }
          },
          "required": [
            "CoreNetworkId",
            "EdgeLocation",
            "Options",
            "TransportAttachmentId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::ConnectAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::ConnectAttachment.ConnectAttachmentOptions": {
      "additionalProperties": false,
      "properties": {
        "Protocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::ConnectAttachment.ProposedSegmentChange": {
      "additionalProperties": false,
      "properties": {
        "AttachmentPolicyRuleNumber": {
          "type": "number"
        },
        "SegmentName": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::ConnectPeer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BgpOptions": {
              "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer.BgpOptions"
            },
            "ConnectAttachmentId": {
              "type": "string"
            },
            "CoreNetworkAddress": {
              "type": "string"
            },
            "InsideCidrBlocks": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PeerAddress": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::ConnectPeer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::NetworkManager::ConnectPeer.BgpOptions": {
      "additionalProperties": false,
      "properties": {
        "PeerAsn": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::ConnectPeer.ConnectPeerBgpConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CoreNetworkAddress": {
          "type": "string"
        },
        "CoreNetworkAsn": {
          "type": "number"
        },
        "PeerAddress": {
          "type": "string"
        },
        "PeerAsn": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::ConnectPeer.ConnectPeerConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BgpConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer.ConnectPeerBgpConfiguration"
          },
          "type": "array"
        },
        "CoreNetworkAddress": {
          "type": "string"
        },
        "InsideCidrBlocks": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PeerAddress": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::CoreNetwork": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "PolicyDocument": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["GlobalNetworkId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::CoreNetwork"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::CoreNetwork.CoreNetworkEdge": {
      "additionalProperties": false,
      "properties": {
        "Asn": {
          "type": "number"
        },
        "EdgeLocation": {
          "type": "string"
        },
        "InsideCidrBlocks": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::CoreNetwork.CoreNetworkSegment": {
      "additionalProperties": false,
      "properties": {
        "EdgeLocations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "SharedSegments": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::CustomerGatewayAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomerGatewayArn": {
              "type": "string"
            },
            "DeviceId": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "LinkId": {
              "type": "string"
            }
          },
          "required": ["CustomerGatewayArn", "DeviceId", "GlobalNetworkId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::CustomerGatewayAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::Device": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "Location": {
              "$ref": "#/definitions/AWS::NetworkManager::Device.Location"
            },
            "Model": {
              "type": "string"
            },
            "SerialNumber": {
              "type": "string"
            },
            "SiteId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            },
            "Vendor": {
              "type": "string"
            }
          },
          "required": ["GlobalNetworkId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::Device"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::Device.Location": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Latitude": {
          "type": "string"
        },
        "Longitude": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::GlobalNetwork": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::GlobalNetwork"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::NetworkManager::Link": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Bandwidth": {
              "$ref": "#/definitions/AWS::NetworkManager::Link.Bandwidth"
            },
            "Description": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "Provider": {
              "type": "string"
            },
            "SiteId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Bandwidth", "GlobalNetworkId", "SiteId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::Link"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::Link.Bandwidth": {
      "additionalProperties": false,
      "properties": {
        "DownloadSpeed": {
          "type": "number"
        },
        "UploadSpeed": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::LinkAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeviceId": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "LinkId": {
              "type": "string"
            }
          },
          "required": ["DeviceId", "GlobalNetworkId", "LinkId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::LinkAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::Site": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GlobalNetworkId": {
              "type": "string"
            },
            "Location": {
              "$ref": "#/definitions/AWS::NetworkManager::Site.Location"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["GlobalNetworkId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::Site"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::Site.Location": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Latitude": {
          "type": "string"
        },
        "Longitude": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::SiteToSiteVpnAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CoreNetworkId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpnConnectionArn": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::SiteToSiteVpnAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::NetworkManager::SiteToSiteVpnAttachment.ProposedSegmentChange": {
      "additionalProperties": false,
      "properties": {
        "AttachmentPolicyRuleNumber": {
          "type": "number"
        },
        "SegmentName": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::TransitGatewayRegistration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GlobalNetworkId": {
              "type": "string"
            },
            "TransitGatewayArn": {
              "type": "string"
            }
          },
          "required": ["GlobalNetworkId", "TransitGatewayArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::TransitGatewayRegistration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::VpcAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CoreNetworkId": {
              "type": "string"
            },
            "Options": {
              "$ref": "#/definitions/AWS::NetworkManager::VpcAttachment.VpcOptions"
            },
            "SubnetArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcArn": {
              "type": "string"
            }
          },
          "required": ["CoreNetworkId", "SubnetArns", "VpcArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NetworkManager::VpcAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NetworkManager::VpcAttachment.ProposedSegmentChange": {
      "additionalProperties": false,
      "properties": {
        "AttachmentPolicyRuleNumber": {
          "type": "number"
        },
        "SegmentName": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::NetworkManager::VpcAttachment.VpcOptions": {
      "additionalProperties": false,
      "properties": {
        "ApplianceModeSupport": {
          "type": "boolean"
        },
        "Ipv6Support": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::LaunchProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Ec2SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LaunchProfileProtocolVersions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "StreamConfiguration": {
              "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfiguration"
            },
            "StudioComponentIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StudioId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "Ec2SubnetIds",
            "LaunchProfileProtocolVersions",
            "Name",
            "StreamConfiguration",
            "StudioComponentIds",
            "StudioId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NimbleStudio::LaunchProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NimbleStudio::LaunchProfile.StreamConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutomaticTerminationMode": {
          "type": "string"
        },
        "ClipboardMode": {
          "type": "string"
        },
        "Ec2InstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MaxSessionLengthInMinutes": {
          "type": "number"
        },
        "MaxStoppedSessionLengthInMinutes": {
          "type": "number"
        },
        "SessionPersistenceMode": {
          "type": "string"
        },
        "SessionStorage": {
          "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage"
        },
        "StreamingImageIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VolumeConfiguration": {
          "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.VolumeConfiguration"
        }
      },
      "required": ["ClipboardMode", "Ec2InstanceTypes", "StreamingImageIds"],
      "type": "object"
    },
    "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Root": {
          "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot"
        }
      },
      "required": ["Mode"],
      "type": "object"
    },
    "AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot": {
      "additionalProperties": false,
      "properties": {
        "Linux": {
          "type": "string"
        },
        "Windows": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::LaunchProfile.VolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Iops": {
          "type": "number"
        },
        "Size": {
          "type": "number"
        },
        "Throughput": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StreamingImage": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Ec2ImageId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "StudioId": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Ec2ImageId", "Name", "StudioId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NimbleStudio::StreamingImage"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NimbleStudio::StreamingImage.StreamingImageEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KeyArn": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        }
      },
      "required": ["KeyType"],
      "type": "object"
    },
    "AWS::NimbleStudio::Studio": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdminRoleArn": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "StudioEncryptionConfiguration": {
              "$ref": "#/definitions/AWS::NimbleStudio::Studio.StudioEncryptionConfiguration"
            },
            "StudioName": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "UserRoleArn": {
              "type": "string"
            }
          },
          "required": [
            "AdminRoleArn",
            "DisplayName",
            "StudioName",
            "UserRoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NimbleStudio::Studio"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NimbleStudio::Studio.StudioEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KeyArn": {
          "type": "string"
        },
        "KeyType": {
          "type": "string"
        }
      },
      "required": ["KeyType"],
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Configuration": {
              "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "Ec2SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "InitializationScripts": {
              "items": {
                "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "ScriptParameters": {
              "items": {
                "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue"
              },
              "type": "array"
            },
            "StudioId": {
              "type": "string"
            },
            "Subtype": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "StudioId", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::NimbleStudio::StudioComponent"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ComputerAttributes": {
          "items": {
            "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute"
          },
          "type": "array"
        },
        "DirectoryId": {
          "type": "string"
        },
        "OrganizationalUnitDistinguishedName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ActiveDirectoryUser": {
          "type": "string"
        },
        "Endpoint": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        },
        "FileSystemId": {
          "type": "string"
        },
        "LinuxMountPoint": {
          "type": "string"
        },
        "ShareName": {
          "type": "string"
        },
        "WindowsMountDrive": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ActiveDirectoryConfiguration": {
          "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration"
        },
        "ComputeFarmConfiguration": {
          "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration"
        },
        "LicenseServiceConfiguration": {
          "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration"
        },
        "SharedFileSystemConfiguration": {
          "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": {
      "additionalProperties": false,
      "properties": {
        "LaunchProfileProtocolVersion": {
          "type": "string"
        },
        "Platform": {
          "type": "string"
        },
        "RunContext": {
          "type": "string"
        },
        "Script": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Oam::Link": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LabelTemplate": {
              "type": "string"
            },
            "ResourceTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SinkIdentifier": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["LabelTemplate", "ResourceTypes", "SinkIdentifier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Oam::Link"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Oam::Sink": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Policy": {
              "type": "object"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Oam::Sink"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::AccessPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Policy": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchServerless::AccessPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::Collection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchServerless::Collection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::SecurityConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SamlOptions": {
              "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityConfig.SamlConfigOptions"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchServerless::SecurityConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::SecurityConfig.SamlConfigOptions": {
      "additionalProperties": false,
      "properties": {
        "GroupAttribute": {
          "type": "string"
        },
        "Metadata": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "number"
        },
        "UserAttribute": {
          "type": "string"
        }
      },
      "required": ["Metadata"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::SecurityPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Policy": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Policy"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchServerless::SecurityPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpenSearchServerless::VpcEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["Name", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchServerless::VpcEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpenSearchService::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessPolicies": {
              "type": "object"
            },
            "AdvancedOptions": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "AdvancedSecurityOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput"
            },
            "ClusterConfig": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig"
            },
            "CognitoOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions"
            },
            "DomainEndpointOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions"
            },
            "DomainName": {
              "type": "string"
            },
            "EBSOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions"
            },
            "EncryptionAtRestOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions"
            },
            "EngineVersion": {
              "type": "string"
            },
            "LogPublishingOptions": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption"
                }
              },
              "type": "object"
            },
            "NodeToNodeEncryptionOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions"
            },
            "SnapshotOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VPCOptions": {
              "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpenSearchService::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "InternalUserDatabaseEnabled": {
          "type": "boolean"
        },
        "MasterUserOptions": {
          "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "DedicatedMasterCount": {
          "type": "number"
        },
        "DedicatedMasterEnabled": {
          "type": "boolean"
        },
        "DedicatedMasterType": {
          "type": "string"
        },
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "WarmCount": {
          "type": "number"
        },
        "WarmEnabled": {
          "type": "boolean"
        },
        "WarmType": {
          "type": "string"
        },
        "ZoneAwarenessConfig": {
          "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig"
        },
        "ZoneAwarenessEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.CognitoOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "IdentityPoolId": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        },
        "UserPoolId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.DomainEndpointOptions": {
      "additionalProperties": false,
      "properties": {
        "CustomEndpoint": {
          "type": "string"
        },
        "CustomEndpointCertificateArn": {
          "type": "string"
        },
        "CustomEndpointEnabled": {
          "type": "boolean"
        },
        "EnforceHTTPS": {
          "type": "boolean"
        },
        "TLSSecurityPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.EBSOptions": {
      "additionalProperties": false,
      "properties": {
        "EBSEnabled": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "Throughput": {
          "type": "number"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.LogPublishingOption": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsLogGroupArn": {
          "type": "string"
        },
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.MasterUserOptions": {
      "additionalProperties": false,
      "properties": {
        "MasterUserARN": {
          "type": "string"
        },
        "MasterUserName": {
          "type": "string"
        },
        "MasterUserPassword": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.ServiceSoftwareOptions": {
      "additionalProperties": false,
      "properties": {
        "AutomatedUpdateDate": {
          "type": "string"
        },
        "Cancellable": {
          "type": "boolean"
        },
        "CurrentVersion": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "NewVersion": {
          "type": "string"
        },
        "OptionalDeployment": {
          "type": "boolean"
        },
        "UpdateAvailable": {
          "type": "boolean"
        },
        "UpdateStatus": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.SnapshotOptions": {
      "additionalProperties": false,
      "properties": {
        "AutomatedSnapshotStartHour": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.VPCOptions": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZoneCount": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::App": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppSource": {
              "$ref": "#/definitions/AWS::OpsWorks::App.Source"
            },
            "Attributes": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "DataSources": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::App.DataSource"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Domains": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EnableSsl": {
              "type": "boolean"
            },
            "Environment": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::App.EnvironmentVariable"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Shortname": {
              "type": "string"
            },
            "SslConfiguration": {
              "$ref": "#/definitions/AWS::OpsWorks::App.SslConfiguration"
            },
            "StackId": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "StackId", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::App"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::App.DataSource": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "DatabaseName": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::App.EnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Secure": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::OpsWorks::App.Source": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Revision": {
          "type": "string"
        },
        "SshKey": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::App.SslConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Certificate": {
          "type": "string"
        },
        "Chain": {
          "type": "string"
        },
        "PrivateKey": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::ElasticLoadBalancerAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ElasticLoadBalancerName": {
              "type": "string"
            },
            "LayerId": {
              "type": "string"
            }
          },
          "required": ["ElasticLoadBalancerName", "LayerId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::ElasticLoadBalancerAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::Instance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AgentVersion": {
              "type": "string"
            },
            "AmiId": {
              "type": "string"
            },
            "Architecture": {
              "type": "string"
            },
            "AutoScalingType": {
              "type": "string"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "BlockDeviceMappings": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::Instance.BlockDeviceMapping"
              },
              "type": "array"
            },
            "EbsOptimized": {
              "type": "boolean"
            },
            "ElasticIps": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Hostname": {
              "type": "string"
            },
            "InstallUpdatesOnBoot": {
              "type": "boolean"
            },
            "InstanceType": {
              "type": "string"
            },
            "LayerIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Os": {
              "type": "string"
            },
            "RootDeviceType": {
              "type": "string"
            },
            "SshKeyName": {
              "type": "string"
            },
            "StackId": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tenancy": {
              "type": "string"
            },
            "TimeBasedAutoScaling": {
              "$ref": "#/definitions/AWS::OpsWorks::Instance.TimeBasedAutoScaling"
            },
            "VirtualizationType": {
              "type": "string"
            },
            "Volumes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["InstanceType", "LayerIds", "StackId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::Instance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::Instance.BlockDeviceMapping": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "Ebs": {
          "$ref": "#/definitions/AWS::OpsWorks::Instance.EbsBlockDevice"
        },
        "NoDevice": {
          "type": "string"
        },
        "VirtualName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Instance.EbsBlockDevice": {
      "additionalProperties": false,
      "properties": {
        "DeleteOnTermination": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "SnapshotId": {
          "type": "string"
        },
        "VolumeSize": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Instance.TimeBasedAutoScaling": {
      "additionalProperties": false,
      "properties": {
        "Friday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Monday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Saturday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Sunday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Thursday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Tuesday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Wednesday": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Attributes": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "AutoAssignElasticIps": {
              "type": "boolean"
            },
            "AutoAssignPublicIps": {
              "type": "boolean"
            },
            "CustomInstanceProfileArn": {
              "type": "string"
            },
            "CustomJson": {
              "type": "object"
            },
            "CustomRecipes": {
              "$ref": "#/definitions/AWS::OpsWorks::Layer.Recipes"
            },
            "CustomSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EnableAutoHealing": {
              "type": "boolean"
            },
            "InstallUpdatesOnBoot": {
              "type": "boolean"
            },
            "LifecycleEventConfiguration": {
              "$ref": "#/definitions/AWS::OpsWorks::Layer.LifecycleEventConfiguration"
            },
            "LoadBasedAutoScaling": {
              "$ref": "#/definitions/AWS::OpsWorks::Layer.LoadBasedAutoScaling"
            },
            "Name": {
              "type": "string"
            },
            "Packages": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Shortname": {
              "type": "string"
            },
            "StackId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            },
            "UseEbsOptimizedInstances": {
              "type": "boolean"
            },
            "VolumeConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::Layer.VolumeConfiguration"
              },
              "type": "array"
            }
          },
          "required": [
            "AutoAssignElasticIps",
            "AutoAssignPublicIps",
            "EnableAutoHealing",
            "Name",
            "Shortname",
            "StackId",
            "Type"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::Layer"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::Layer.AutoScalingThresholds": {
      "additionalProperties": false,
      "properties": {
        "CpuThreshold": {
          "type": "number"
        },
        "IgnoreMetricsTime": {
          "type": "number"
        },
        "InstanceCount": {
          "type": "number"
        },
        "LoadThreshold": {
          "type": "number"
        },
        "MemoryThreshold": {
          "type": "number"
        },
        "ThresholdsWaitTime": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer.LifecycleEventConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ShutdownEventConfiguration": {
          "$ref": "#/definitions/AWS::OpsWorks::Layer.ShutdownEventConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer.LoadBasedAutoScaling": {
      "additionalProperties": false,
      "properties": {
        "DownScaling": {
          "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds"
        },
        "Enable": {
          "type": "boolean"
        },
        "UpScaling": {
          "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer.Recipes": {
      "additionalProperties": false,
      "properties": {
        "Configure": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Deploy": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Setup": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Shutdown": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Undeploy": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer.ShutdownEventConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DelayUntilElbConnectionsDrained": {
          "type": "boolean"
        },
        "ExecutionTimeout": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Layer.VolumeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "number"
        },
        "MountPoint": {
          "type": "string"
        },
        "NumberOfDisks": {
          "type": "number"
        },
        "RaidLevel": {
          "type": "number"
        },
        "Size": {
          "type": "number"
        },
        "VolumeType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Stack": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AgentVersion": {
              "type": "string"
            },
            "Attributes": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ChefConfiguration": {
              "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration"
            },
            "CloneAppIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClonePermissions": {
              "type": "boolean"
            },
            "ConfigurationManager": {
              "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager"
            },
            "CustomCookbooksSource": {
              "$ref": "#/definitions/AWS::OpsWorks::Stack.Source"
            },
            "CustomJson": {
              "type": "object"
            },
            "DefaultAvailabilityZone": {
              "type": "string"
            },
            "DefaultInstanceProfileArn": {
              "type": "string"
            },
            "DefaultOs": {
              "type": "string"
            },
            "DefaultRootDeviceType": {
              "type": "string"
            },
            "DefaultSshKeyName": {
              "type": "string"
            },
            "DefaultSubnetId": {
              "type": "string"
            },
            "EcsClusterArn": {
              "type": "string"
            },
            "ElasticIps": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp"
              },
              "type": "array"
            },
            "HostnameTheme": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RdsDbInstances": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance"
              },
              "type": "array"
            },
            "ServiceRoleArn": {
              "type": "string"
            },
            "SourceStackId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UseCustomCookbooks": {
              "type": "boolean"
            },
            "UseOpsworksSecurityGroups": {
              "type": "boolean"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["DefaultInstanceProfileArn", "Name", "ServiceRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::Stack"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::Stack.ChefConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BerkshelfVersion": {
          "type": "string"
        },
        "ManageBerkshelf": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Stack.ElasticIp": {
      "additionalProperties": false,
      "properties": {
        "Ip": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Ip"],
      "type": "object"
    },
    "AWS::OpsWorks::Stack.RdsDbInstance": {
      "additionalProperties": false,
      "properties": {
        "DbPassword": {
          "type": "string"
        },
        "DbUser": {
          "type": "string"
        },
        "RdsDbInstanceArn": {
          "type": "string"
        }
      },
      "required": ["DbPassword", "DbUser", "RdsDbInstanceArn"],
      "type": "object"
    },
    "AWS::OpsWorks::Stack.Source": {
      "additionalProperties": false,
      "properties": {
        "Password": {
          "type": "string"
        },
        "Revision": {
          "type": "string"
        },
        "SshKey": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::Stack.StackConfigurationManager": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::OpsWorks::UserProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowSelfManagement": {
              "type": "boolean"
            },
            "IamUserArn": {
              "type": "string"
            },
            "SshPublicKey": {
              "type": "string"
            },
            "SshUsername": {
              "type": "string"
            }
          },
          "required": ["IamUserArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::UserProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorks::Volume": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Ec2VolumeId": {
              "type": "string"
            },
            "MountPoint": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "StackId": {
              "type": "string"
            }
          },
          "required": ["Ec2VolumeId", "StackId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorks::Volume"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorksCM::Server": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssociatePublicIpAddress": {
              "type": "boolean"
            },
            "BackupId": {
              "type": "string"
            },
            "BackupRetentionCount": {
              "type": "number"
            },
            "CustomCertificate": {
              "type": "string"
            },
            "CustomDomain": {
              "type": "string"
            },
            "CustomPrivateKey": {
              "type": "string"
            },
            "DisableAutomatedBackup": {
              "type": "boolean"
            },
            "Engine": {
              "type": "string"
            },
            "EngineAttributes": {
              "items": {
                "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute"
              },
              "type": "array"
            },
            "EngineModel": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "InstanceProfileArn": {
              "type": "string"
            },
            "InstanceType": {
              "type": "string"
            },
            "KeyPair": {
              "type": "string"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ServerName": {
              "type": "string"
            },
            "ServiceRoleArn": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InstanceProfileArn", "InstanceType", "ServiceRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::OpsWorksCM::Server"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::OpsWorksCM::Server.EngineAttribute": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Organizations::Account": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountName": {
              "type": "string"
            },
            "Email": {
              "type": "string"
            },
            "ParentIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RoleName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AccountName", "Email"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Organizations::Account"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Organizations::OrganizationalUnit": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "ParentId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "ParentId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Organizations::OrganizationalUnit"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Organizations::Policy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Content": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Content", "Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Organizations::Policy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Panorama::ApplicationInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationInstanceIdToReplace": {
              "type": "string"
            },
            "DefaultRuntimeContextDevice": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DeviceId": {
              "type": "string"
            },
            "ManifestOverridesPayload": {
              "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload"
            },
            "ManifestPayload": {
              "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload"
            },
            "Name": {
              "type": "string"
            },
            "RuntimeRoleArn": {
              "type": "string"
            },
            "StatusFilter": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DefaultRuntimeContextDevice", "ManifestPayload"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Panorama::ApplicationInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": {
      "additionalProperties": false,
      "properties": {
        "PayloadData": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Panorama::ApplicationInstance.ManifestPayload": {
      "additionalProperties": false,
      "properties": {
        "PayloadData": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Panorama::Package": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PackageName": {
              "type": "string"
            },
            "StorageLocation": {
              "$ref": "#/definitions/AWS::Panorama::Package.StorageLocation"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PackageName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Panorama::Package"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Panorama::Package.StorageLocation": {
      "additionalProperties": false,
      "properties": {
        "BinaryPrefixLocation": {
          "type": "string"
        },
        "Bucket": {
          "type": "string"
        },
        "GeneratedPrefixLocation": {
          "type": "string"
        },
        "ManifestPrefixLocation": {
          "type": "string"
        },
        "RepoPrefixLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Panorama::PackageVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MarkLatest": {
              "type": "boolean"
            },
            "OwnerAccount": {
              "type": "string"
            },
            "PackageId": {
              "type": "string"
            },
            "PackageVersion": {
              "type": "string"
            },
            "PatchVersion": {
              "type": "string"
            },
            "UpdatedLatestPatchVersion": {
              "type": "string"
            }
          },
          "required": ["PackageId", "PackageVersion", "PatchVersion"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Panorama::PackageVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Personalize::Dataset": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatasetGroupArn": {
              "type": "string"
            },
            "DatasetImportJob": {
              "$ref": "#/definitions/AWS::Personalize::Dataset.DatasetImportJob"
            },
            "DatasetType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "SchemaArn": {
              "type": "string"
            }
          },
          "required": ["DatasetGroupArn", "DatasetType", "Name", "SchemaArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Personalize::Dataset"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Personalize::Dataset.DataSource": {
      "additionalProperties": false,
      "properties": {
        "DataLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Dataset.DatasetImportJob": {
      "additionalProperties": false,
      "properties": {
        "DataSource": {
          "$ref": "#/definitions/AWS::Personalize::Dataset.DataSource"
        },
        "DatasetArn": {
          "type": "string"
        },
        "DatasetImportJobArn": {
          "type": "string"
        },
        "JobName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::DatasetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Domain": {
              "type": "string"
            },
            "KmsKeyArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Personalize::DatasetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Personalize::Schema": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Domain": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Schema": {
              "type": "string"
            }
          },
          "required": ["Name", "Schema"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Personalize::Schema"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Personalize::Solution": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatasetGroupArn": {
              "type": "string"
            },
            "EventType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PerformAutoML": {
              "type": "boolean"
            },
            "PerformHPO": {
              "type": "boolean"
            },
            "RecipeArn": {
              "type": "string"
            },
            "SolutionConfig": {
              "$ref": "#/definitions/AWS::Personalize::Solution.SolutionConfig"
            }
          },
          "required": ["DatasetGroupArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Personalize::Solution"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Personalize::Solution.AlgorithmHyperParameterRanges": {
      "additionalProperties": false,
      "properties": {
        "CategoricalHyperParameterRanges": {
          "items": {
            "$ref": "#/definitions/AWS::Personalize::Solution.CategoricalHyperParameterRange"
          },
          "type": "array"
        },
        "ContinuousHyperParameterRanges": {
          "items": {
            "$ref": "#/definitions/AWS::Personalize::Solution.ContinuousHyperParameterRange"
          },
          "type": "array"
        },
        "IntegerHyperParameterRanges": {
          "items": {
            "$ref": "#/definitions/AWS::Personalize::Solution.IntegerHyperParameterRange"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.AutoMLConfig": {
      "additionalProperties": false,
      "properties": {
        "MetricName": {
          "type": "string"
        },
        "RecipeList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.CategoricalHyperParameterRange": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.ContinuousHyperParameterRange": {
      "additionalProperties": false,
      "properties": {
        "MaxValue": {
          "type": "number"
        },
        "MinValue": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.HpoConfig": {
      "additionalProperties": false,
      "properties": {
        "AlgorithmHyperParameterRanges": {
          "$ref": "#/definitions/AWS::Personalize::Solution.AlgorithmHyperParameterRanges"
        },
        "HpoObjective": {
          "$ref": "#/definitions/AWS::Personalize::Solution.HpoObjective"
        },
        "HpoResourceConfig": {
          "$ref": "#/definitions/AWS::Personalize::Solution.HpoResourceConfig"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.HpoObjective": {
      "additionalProperties": false,
      "properties": {
        "MetricName": {
          "type": "string"
        },
        "MetricRegex": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.HpoResourceConfig": {
      "additionalProperties": false,
      "properties": {
        "MaxNumberOfTrainingJobs": {
          "type": "string"
        },
        "MaxParallelTrainingJobs": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.IntegerHyperParameterRange": {
      "additionalProperties": false,
      "properties": {
        "MaxValue": {
          "type": "number"
        },
        "MinValue": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Personalize::Solution.SolutionConfig": {
      "additionalProperties": false,
      "properties": {
        "AlgorithmHyperParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "AutoMLConfig": {
          "$ref": "#/definitions/AWS::Personalize::Solution.AutoMLConfig"
        },
        "EventValueThreshold": {
          "type": "string"
        },
        "FeatureTransformationParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "HpoConfig": {
          "$ref": "#/definitions/AWS::Personalize::Solution.HpoConfig"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::ADMChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "ClientId": {
              "type": "string"
            },
            "ClientSecret": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            }
          },
          "required": ["ApplicationId", "ClientId", "ClientSecret"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::ADMChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::APNSChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "Certificate": {
              "type": "string"
            },
            "DefaultAuthenticationMethod": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "PrivateKey": {
              "type": "string"
            },
            "TeamId": {
              "type": "string"
            },
            "TokenKey": {
              "type": "string"
            },
            "TokenKeyId": {
              "type": "string"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::APNSChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::APNSSandboxChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "Certificate": {
              "type": "string"
            },
            "DefaultAuthenticationMethod": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "PrivateKey": {
              "type": "string"
            },
            "TeamId": {
              "type": "string"
            },
            "TokenKey": {
              "type": "string"
            },
            "TokenKeyId": {
              "type": "string"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::APNSSandboxChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::APNSVoipChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "Certificate": {
              "type": "string"
            },
            "DefaultAuthenticationMethod": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "PrivateKey": {
              "type": "string"
            },
            "TeamId": {
              "type": "string"
            },
            "TokenKey": {
              "type": "string"
            },
            "TokenKeyId": {
              "type": "string"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::APNSVoipChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::APNSVoipSandboxChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "BundleId": {
              "type": "string"
            },
            "Certificate": {
              "type": "string"
            },
            "DefaultAuthenticationMethod": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "PrivateKey": {
              "type": "string"
            },
            "TeamId": {
              "type": "string"
            },
            "TokenKey": {
              "type": "string"
            },
            "TokenKeyId": {
              "type": "string"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::APNSVoipSandboxChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::App": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::App"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::ApplicationSettings": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "CampaignHook": {
              "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.CampaignHook"
            },
            "CloudWatchMetricsEnabled": {
              "type": "boolean"
            },
            "Limits": {
              "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.Limits"
            },
            "QuietTime": {
              "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.QuietTime"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::ApplicationSettings"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::ApplicationSettings.CampaignHook": {
      "additionalProperties": false,
      "properties": {
        "LambdaFunctionName": {
          "type": "string"
        },
        "Mode": {
          "type": "string"
        },
        "WebUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::ApplicationSettings.Limits": {
      "additionalProperties": false,
      "properties": {
        "Daily": {
          "type": "number"
        },
        "MaximumDuration": {
          "type": "number"
        },
        "MessagesPerSecond": {
          "type": "number"
        },
        "Total": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::ApplicationSettings.QuietTime": {
      "additionalProperties": false,
      "properties": {
        "End": {
          "type": "string"
        },
        "Start": {
          "type": "string"
        }
      },
      "required": ["End", "Start"],
      "type": "object"
    },
    "AWS::Pinpoint::BaiduChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiKey": {
              "type": "string"
            },
            "ApplicationId": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "SecretKey": {
              "type": "string"
            }
          },
          "required": ["ApiKey", "ApplicationId", "SecretKey"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::BaiduChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::Campaign": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalTreatments": {
              "items": {
                "$ref": "#/definitions/AWS::Pinpoint::Campaign.WriteTreatmentResource"
              },
              "type": "array"
            },
            "ApplicationId": {
              "type": "string"
            },
            "CampaignHook": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignHook"
            },
            "CustomDeliveryConfiguration": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration"
            },
            "Description": {
              "type": "string"
            },
            "HoldoutPercent": {
              "type": "number"
            },
            "IsPaused": {
              "type": "boolean"
            },
            "Limits": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.Limits"
            },
            "MessageConfiguration": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration"
            },
            "Name": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            },
            "Schedule": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule"
            },
            "SegmentId": {
              "type": "string"
            },
            "SegmentVersion": {
              "type": "number"
            },
            "Tags": {
              "type": "object"
            },
            "TemplateConfiguration": {
              "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration"
            },
            "TreatmentDescription": {
              "type": "string"
            },
            "TreatmentName": {
              "type": "string"
            }
          },
          "required": ["ApplicationId", "Name", "Schedule", "SegmentId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::Campaign"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.AttributeDimension": {
      "additionalProperties": false,
      "properties": {
        "AttributeType": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignCustomMessage": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignEmailMessage": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "FromAddress": {
          "type": "string"
        },
        "HtmlBody": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignEventFilter": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.EventDimensions"
        },
        "FilterType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignHook": {
      "additionalProperties": false,
      "properties": {
        "LambdaFunctionName": {
          "type": "string"
        },
        "Mode": {
          "type": "string"
        },
        "WebUrl": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignInAppMessage": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "items": {
            "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent"
          },
          "type": "array"
        },
        "CustomConfig": {
          "type": "object"
        },
        "Layout": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CampaignSmsMessage": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "EntityId": {
          "type": "string"
        },
        "MessageType": {
          "type": "string"
        },
        "OriginationNumber": {
          "type": "string"
        },
        "SenderId": {
          "type": "string"
        },
        "TemplateId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.CustomDeliveryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DeliveryUri": {
          "type": "string"
        },
        "EndpointTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BackgroundColor": {
          "type": "string"
        },
        "BorderRadius": {
          "type": "number"
        },
        "ButtonAction": {
          "type": "string"
        },
        "Link": {
          "type": "string"
        },
        "Text": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.EventDimensions": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "type": "object"
        },
        "EventType": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.SetDimension"
        },
        "Metrics": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.InAppMessageButton": {
      "additionalProperties": false,
      "properties": {
        "Android": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration"
        },
        "DefaultConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration"
        },
        "IOS": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration"
        },
        "Web": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.InAppMessageContent": {
      "additionalProperties": false,
      "properties": {
        "BackgroundColor": {
          "type": "string"
        },
        "BodyConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig"
        },
        "HeaderConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig"
        },
        "ImageUrl": {
          "type": "string"
        },
        "PrimaryBtn": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton"
        },
        "SecondaryBtn": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "Header": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.Limits": {
      "additionalProperties": false,
      "properties": {
        "Daily": {
          "type": "number"
        },
        "MaximumDuration": {
          "type": "number"
        },
        "MessagesPerSecond": {
          "type": "number"
        },
        "Session": {
          "type": "number"
        },
        "Total": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.Message": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "ImageIconUrl": {
          "type": "string"
        },
        "ImageSmallIconUrl": {
          "type": "string"
        },
        "ImageUrl": {
          "type": "string"
        },
        "JsonBody": {
          "type": "string"
        },
        "MediaUrl": {
          "type": "string"
        },
        "RawContent": {
          "type": "string"
        },
        "SilentPush": {
          "type": "boolean"
        },
        "TimeToLive": {
          "type": "number"
        },
        "Title": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.MessageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ADMMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message"
        },
        "APNSMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message"
        },
        "BaiduMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message"
        },
        "CustomMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignCustomMessage"
        },
        "DefaultMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message"
        },
        "EmailMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEmailMessage"
        },
        "GCMMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message"
        },
        "InAppMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage"
        },
        "SMSMessage": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.MetricDimension": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ButtonAction": {
          "type": "string"
        },
        "Link": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.QuietTime": {
      "additionalProperties": false,
      "properties": {
        "End": {
          "type": "string"
        },
        "Start": {
          "type": "string"
        }
      },
      "required": ["End", "Start"],
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.Schedule": {
      "additionalProperties": false,
      "properties": {
        "EndTime": {
          "type": "string"
        },
        "EventFilter": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEventFilter"
        },
        "Frequency": {
          "type": "string"
        },
        "IsLocalTime": {
          "type": "boolean"
        },
        "QuietTime": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.QuietTime"
        },
        "StartTime": {
          "type": "string"
        },
        "TimeZone": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.SetDimension": {
      "additionalProperties": false,
      "properties": {
        "DimensionType": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.Template": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.TemplateConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EmailTemplate": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template"
        },
        "PushTemplate": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template"
        },
        "SMSTemplate": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template"
        },
        "VoiceTemplate": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Campaign.WriteTreatmentResource": {
      "additionalProperties": false,
      "properties": {
        "CustomDeliveryConfiguration": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration"
        },
        "MessageConfiguration": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration"
        },
        "Schedule": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule"
        },
        "SizePercent": {
          "type": "number"
        },
        "TemplateConfiguration": {
          "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration"
        },
        "TreatmentDescription": {
          "type": "string"
        },
        "TreatmentName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::EmailChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "ConfigurationSet": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "FromAddress": {
              "type": "string"
            },
            "Identity": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["ApplicationId", "FromAddress", "Identity"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::EmailChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::EmailTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultSubstitutions": {
              "type": "string"
            },
            "HtmlPart": {
              "type": "string"
            },
            "Subject": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "TemplateDescription": {
              "type": "string"
            },
            "TemplateName": {
              "type": "string"
            },
            "TextPart": {
              "type": "string"
            }
          },
          "required": ["Subject", "TemplateName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::EmailTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::EventStream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "DestinationStreamArn": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["ApplicationId", "DestinationStreamArn", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::EventStream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::GCMChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiKey": {
              "type": "string"
            },
            "ApplicationId": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            }
          },
          "required": ["ApiKey", "ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::GCMChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Content": {
              "items": {
                "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent"
              },
              "type": "array"
            },
            "CustomConfig": {
              "type": "object"
            },
            "Layout": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "TemplateDescription": {
              "type": "string"
            },
            "TemplateName": {
              "type": "string"
            }
          },
          "required": ["TemplateName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::InAppTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.BodyConfig": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.ButtonConfig": {
      "additionalProperties": false,
      "properties": {
        "Android": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration"
        },
        "DefaultConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration"
        },
        "IOS": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration"
        },
        "Web": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BackgroundColor": {
          "type": "string"
        },
        "BorderRadius": {
          "type": "number"
        },
        "ButtonAction": {
          "type": "string"
        },
        "Link": {
          "type": "string"
        },
        "Text": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.HeaderConfig": {
      "additionalProperties": false,
      "properties": {
        "Alignment": {
          "type": "string"
        },
        "Header": {
          "type": "string"
        },
        "TextColor": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.InAppMessageContent": {
      "additionalProperties": false,
      "properties": {
        "BackgroundColor": {
          "type": "string"
        },
        "BodyConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig"
        },
        "HeaderConfig": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig"
        },
        "ImageUrl": {
          "type": "string"
        },
        "PrimaryBtn": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig"
        },
        "SecondaryBtn": {
          "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ButtonAction": {
          "type": "string"
        },
        "Link": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::PushTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ADM": {
              "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate"
            },
            "APNS": {
              "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate"
            },
            "Baidu": {
              "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate"
            },
            "Default": {
              "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate"
            },
            "DefaultSubstitutions": {
              "type": "string"
            },
            "GCM": {
              "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate"
            },
            "Tags": {
              "type": "object"
            },
            "TemplateDescription": {
              "type": "string"
            },
            "TemplateName": {
              "type": "string"
            }
          },
          "required": ["TemplateName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::PushTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "MediaUrl": {
          "type": "string"
        },
        "Sound": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "ImageIconUrl": {
          "type": "string"
        },
        "ImageUrl": {
          "type": "string"
        },
        "SmallImageIconUrl": {
          "type": "string"
        },
        "Sound": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "Body": {
          "type": "string"
        },
        "Sound": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::SMSChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "SenderId": {
              "type": "string"
            },
            "ShortCode": {
              "type": "string"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::SMSChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::Segment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "Dimensions": {
              "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions"
            },
            "Name": {
              "type": "string"
            },
            "SegmentGroups": {
              "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentGroups"
            },
            "Tags": {
              "type": "object"
            }
          },
          "required": ["ApplicationId", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::Segment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::Segment.AttributeDimension": {
      "additionalProperties": false,
      "properties": {
        "AttributeType": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Behavior": {
      "additionalProperties": false,
      "properties": {
        "Recency": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.Recency"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Coordinates": {
      "additionalProperties": false,
      "properties": {
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        }
      },
      "required": ["Latitude", "Longitude"],
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Demographic": {
      "additionalProperties": false,
      "properties": {
        "AppVersion": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "Channel": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "DeviceType": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "Make": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "Model": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "Platform": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.GPSPoint": {
      "additionalProperties": false,
      "properties": {
        "Coordinates": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.Coordinates"
        },
        "RangeInKilometers": {
          "type": "number"
        }
      },
      "required": ["Coordinates", "RangeInKilometers"],
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Groups": {
      "additionalProperties": false,
      "properties": {
        "Dimensions": {
          "items": {
            "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions"
          },
          "type": "array"
        },
        "SourceSegments": {
          "items": {
            "$ref": "#/definitions/AWS::Pinpoint::Segment.SourceSegments"
          },
          "type": "array"
        },
        "SourceType": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Location": {
      "additionalProperties": false,
      "properties": {
        "Country": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension"
        },
        "GPSPoint": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.GPSPoint"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.Recency": {
      "additionalProperties": false,
      "properties": {
        "Duration": {
          "type": "string"
        },
        "RecencyType": {
          "type": "string"
        }
      },
      "required": ["Duration", "RecencyType"],
      "type": "object"
    },
    "AWS::Pinpoint::Segment.SegmentDimensions": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "type": "object"
        },
        "Behavior": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.Behavior"
        },
        "Demographic": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.Demographic"
        },
        "Location": {
          "$ref": "#/definitions/AWS::Pinpoint::Segment.Location"
        },
        "Metrics": {
          "type": "object"
        },
        "UserAttributes": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.SegmentGroups": {
      "additionalProperties": false,
      "properties": {
        "Groups": {
          "items": {
            "$ref": "#/definitions/AWS::Pinpoint::Segment.Groups"
          },
          "type": "array"
        },
        "Include": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.SetDimension": {
      "additionalProperties": false,
      "properties": {
        "DimensionType": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pinpoint::Segment.SourceSegments": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Version": {
          "type": "number"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::Pinpoint::SmsTemplate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Body": {
              "type": "string"
            },
            "DefaultSubstitutions": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "TemplateDescription": {
              "type": "string"
            },
            "TemplateName": {
              "type": "string"
            }
          },
          "required": ["Body", "TemplateName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::SmsTemplate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pinpoint::VoiceChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationId": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            }
          },
          "required": ["ApplicationId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pinpoint::VoiceChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeliveryOptions": {
              "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.DeliveryOptions"
            },
            "Name": {
              "type": "string"
            },
            "ReputationOptions": {
              "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.ReputationOptions"
            },
            "SendingOptions": {
              "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.SendingOptions"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.Tags"
              },
              "type": "array"
            },
            "TrackingOptions": {
              "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.TrackingOptions"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::PinpointEmail::ConfigurationSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet.DeliveryOptions": {
      "additionalProperties": false,
      "properties": {
        "SendingPoolName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet.ReputationOptions": {
      "additionalProperties": false,
      "properties": {
        "ReputationMetricsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet.SendingOptions": {
      "additionalProperties": false,
      "properties": {
        "SendingEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSet.TrackingOptions": {
      "additionalProperties": false,
      "properties": {
        "CustomRedirectDomain": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigurationSetName": {
              "type": "string"
            },
            "EventDestination": {
              "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination"
            },
            "EventDestinationName": {
              "type": "string"
            }
          },
          "required": ["ConfigurationSetName", "EventDestinationName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::PinpointEmail::ConfigurationSetEventDestination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination": {
      "additionalProperties": false,
      "properties": {
        "DimensionConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DefaultDimensionValue": {
          "type": "string"
        },
        "DimensionName": {
          "type": "string"
        },
        "DimensionValueSource": {
          "type": "string"
        }
      },
      "required": [
        "DefaultDimensionValue",
        "DimensionName",
        "DimensionValueSource"
      ],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchDestination": {
          "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination"
        },
        "Enabled": {
          "type": "boolean"
        },
        "KinesisFirehoseDestination": {
          "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination"
        },
        "MatchingEventTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "PinpointDestination": {
          "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination"
        },
        "SnsDestination": {
          "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination"
        }
      },
      "required": ["MatchingEventTypes"],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStreamArn": {
          "type": "string"
        },
        "IamRoleArn": {
          "type": "string"
        }
      },
      "required": ["DeliveryStreamArn", "IamRoleArn"],
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination": {
      "additionalProperties": false,
      "properties": {
        "ApplicationArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination": {
      "additionalProperties": false,
      "properties": {
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["TopicArn"],
      "type": "object"
    },
    "AWS::PinpointEmail::DedicatedIpPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PoolName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool.Tags"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::PinpointEmail::DedicatedIpPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::PinpointEmail::DedicatedIpPool.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::Identity": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DkimSigningEnabled": {
              "type": "boolean"
            },
            "FeedbackForwardingEnabled": {
              "type": "boolean"
            },
            "MailFromAttributes": {
              "$ref": "#/definitions/AWS::PinpointEmail::Identity.MailFromAttributes"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::PinpointEmail::Identity.Tags"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::PinpointEmail::Identity"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::PinpointEmail::Identity.MailFromAttributes": {
      "additionalProperties": false,
      "properties": {
        "BehaviorOnMxFailure": {
          "type": "string"
        },
        "MailFromDomain": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::PinpointEmail::Identity.Tags": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DesiredState": {
              "type": "string"
            },
            "Enrichment": {
              "type": "string"
            },
            "EnrichmentParameters": {
              "$ref": "#/definitions/AWS::Pipes::Pipe.PipeEnrichmentParameters"
            },
            "Name": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Source": {
              "type": "string"
            },
            "SourceParameters": {
              "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceParameters"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Target": {
              "type": "string"
            },
            "TargetParameters": {
              "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetParameters"
            }
          },
          "required": ["RoleArn", "Source", "Target"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Pipes::Pipe"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.AwsVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Subnets"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchArrayProperties": {
      "additionalProperties": false,
      "properties": {
        "Size": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchContainerOverrides": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Environment": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.BatchEnvironmentVariable"
          },
          "type": "array"
        },
        "InstanceType": {
          "type": "string"
        },
        "ResourceRequirements": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.BatchResourceRequirement"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchEnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchJobDependency": {
      "additionalProperties": false,
      "properties": {
        "JobId": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchResourceRequirement": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.BatchRetryStrategy": {
      "additionalProperties": false,
      "properties": {
        "Attempts": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.CapacityProviderStrategyItem": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["CapacityProvider"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsContainerOverride": {
      "additionalProperties": false,
      "properties": {
        "Command": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Cpu": {
          "type": "number"
        },
        "Environment": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEnvironmentVariable"
          },
          "type": "array"
        },
        "EnvironmentFiles": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEnvironmentFile"
          },
          "type": "array"
        },
        "Memory": {
          "type": "number"
        },
        "MemoryReservation": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "ResourceRequirements": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.EcsResourceRequirement"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsEnvironmentFile": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsEnvironmentVariable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsEphemeralStorage": {
      "additionalProperties": false,
      "properties": {
        "SizeInGiB": {
          "type": "number"
        }
      },
      "required": ["SizeInGiB"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsInferenceAcceleratorOverride": {
      "additionalProperties": false,
      "properties": {
        "DeviceName": {
          "type": "string"
        },
        "DeviceType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsResourceRequirement": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.EcsTaskOverride": {
      "additionalProperties": false,
      "properties": {
        "ContainerOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.EcsContainerOverride"
          },
          "type": "array"
        },
        "Cpu": {
          "type": "string"
        },
        "EphemeralStorage": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEphemeralStorage"
        },
        "ExecutionRoleArn": {
          "type": "string"
        },
        "InferenceAcceleratorOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.EcsInferenceAcceleratorOverride"
          },
          "type": "array"
        },
        "Memory": {
          "type": "string"
        },
        "TaskRoleArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.Filter": {
      "additionalProperties": false,
      "properties": {
        "Pattern": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.FilterCriteria": {
      "additionalProperties": false,
      "properties": {
        "Filters": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.Filter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.MQBrokerAccessCredentials": {
      "additionalProperties": false,
      "properties": {
        "BasicAuth": {
          "type": "string"
        }
      },
      "required": ["BasicAuth"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.MSKAccessCredentials": {
      "additionalProperties": false,
      "properties": {
        "ClientCertificateTlsAuth": {
          "type": "string"
        },
        "SaslScram512Auth": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AwsvpcConfiguration": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.AwsVpcConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeEnrichmentHttpParameters": {
      "additionalProperties": false,
      "properties": {
        "HeaderParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "PathParameterValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "QueryStringParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeEnrichmentParameters": {
      "additionalProperties": false,
      "properties": {
        "HttpParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeEnrichmentHttpParameters"
        },
        "InputTemplate": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceActiveMQBrokerParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "Credentials": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.MQBrokerAccessCredentials"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "QueueName": {
          "type": "string"
        }
      },
      "required": ["Credentials", "QueueName"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceDynamoDBStreamParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "DeadLetterConfig": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.DeadLetterConfig"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "MaximumRecordAgeInSeconds": {
          "type": "number"
        },
        "MaximumRetryAttempts": {
          "type": "number"
        },
        "OnPartialBatchItemFailure": {
          "type": "string"
        },
        "ParallelizationFactor": {
          "type": "number"
        },
        "StartingPosition": {
          "type": "string"
        }
      },
      "required": ["StartingPosition"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceKinesisStreamParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "DeadLetterConfig": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.DeadLetterConfig"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "MaximumRecordAgeInSeconds": {
          "type": "number"
        },
        "MaximumRetryAttempts": {
          "type": "number"
        },
        "OnPartialBatchItemFailure": {
          "type": "string"
        },
        "ParallelizationFactor": {
          "type": "number"
        },
        "StartingPosition": {
          "type": "string"
        },
        "StartingPositionTimestamp": {
          "type": "string"
        }
      },
      "required": ["StartingPosition"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceManagedStreamingKafkaParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "ConsumerGroupID": {
          "type": "string"
        },
        "Credentials": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.MSKAccessCredentials"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "StartingPosition": {
          "type": "string"
        },
        "TopicName": {
          "type": "string"
        }
      },
      "required": ["TopicName"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceParameters": {
      "additionalProperties": false,
      "properties": {
        "ActiveMQBrokerParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceActiveMQBrokerParameters"
        },
        "DynamoDBStreamParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceDynamoDBStreamParameters"
        },
        "FilterCriteria": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.FilterCriteria"
        },
        "KinesisStreamParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceKinesisStreamParameters"
        },
        "ManagedStreamingKafkaParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceManagedStreamingKafkaParameters"
        },
        "RabbitMQBrokerParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceRabbitMQBrokerParameters"
        },
        "SelfManagedKafkaParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceSelfManagedKafkaParameters"
        },
        "SqsQueueParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceSqsQueueParameters"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceRabbitMQBrokerParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "Credentials": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.MQBrokerAccessCredentials"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "QueueName": {
          "type": "string"
        },
        "VirtualHost": {
          "type": "string"
        }
      },
      "required": ["Credentials", "QueueName"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceSelfManagedKafkaParameters": {
      "additionalProperties": false,
      "properties": {
        "AdditionalBootstrapServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "BatchSize": {
          "type": "number"
        },
        "ConsumerGroupID": {
          "type": "string"
        },
        "Credentials": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationCredentials"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        },
        "ServerRootCaCertificate": {
          "type": "string"
        },
        "StartingPosition": {
          "type": "string"
        },
        "TopicName": {
          "type": "string"
        },
        "Vpc": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationVpc"
        }
      },
      "required": ["TopicName"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeSourceSqsQueueParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "type": "number"
        },
        "MaximumBatchingWindowInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetBatchJobParameters": {
      "additionalProperties": false,
      "properties": {
        "ArrayProperties": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.BatchArrayProperties"
        },
        "ContainerOverrides": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.BatchContainerOverrides"
        },
        "DependsOn": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.BatchJobDependency"
          },
          "type": "array"
        },
        "JobDefinition": {
          "type": "string"
        },
        "JobName": {
          "type": "string"
        },
        "Parameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "RetryStrategy": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.BatchRetryStrategy"
        }
      },
      "required": ["JobDefinition", "JobName"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetCloudWatchLogsParameters": {
      "additionalProperties": false,
      "properties": {
        "LogStreamName": {
          "type": "string"
        },
        "Timestamp": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetEcsTaskParameters": {
      "additionalProperties": false,
      "properties": {
        "CapacityProviderStrategy": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.CapacityProviderStrategyItem"
          },
          "type": "array"
        },
        "EnableECSManagedTags": {
          "type": "boolean"
        },
        "EnableExecuteCommand": {
          "type": "boolean"
        },
        "Group": {
          "type": "string"
        },
        "LaunchType": {
          "type": "string"
        },
        "NetworkConfiguration": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.NetworkConfiguration"
        },
        "Overrides": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.EcsTaskOverride"
        },
        "PlacementConstraints": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.PlacementConstraint"
          },
          "type": "array"
        },
        "PlacementStrategy": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.PlacementStrategy"
          },
          "type": "array"
        },
        "PlatformVersion": {
          "type": "string"
        },
        "PropagateTags": {
          "type": "string"
        },
        "ReferenceId": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "TaskCount": {
          "type": "number"
        },
        "TaskDefinitionArn": {
          "type": "string"
        }
      },
      "required": ["TaskDefinitionArn"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetEventBridgeEventBusParameters": {
      "additionalProperties": false,
      "properties": {
        "DetailType": {
          "type": "string"
        },
        "EndpointId": {
          "type": "string"
        },
        "Resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Source": {
          "type": "string"
        },
        "Time": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetHttpParameters": {
      "additionalProperties": false,
      "properties": {
        "HeaderParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "PathParameterValues": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "QueryStringParameters": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetKinesisStreamParameters": {
      "additionalProperties": false,
      "properties": {
        "PartitionKey": {
          "type": "string"
        }
      },
      "required": ["PartitionKey"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetLambdaFunctionParameters": {
      "additionalProperties": false,
      "properties": {
        "InvocationType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetParameters": {
      "additionalProperties": false,
      "properties": {
        "BatchJobParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetBatchJobParameters"
        },
        "CloudWatchLogsParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetCloudWatchLogsParameters"
        },
        "EcsTaskParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetEcsTaskParameters"
        },
        "EventBridgeEventBusParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetEventBridgeEventBusParameters"
        },
        "HttpParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetHttpParameters"
        },
        "InputTemplate": {
          "type": "string"
        },
        "KinesisStreamParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetKinesisStreamParameters"
        },
        "LambdaFunctionParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetLambdaFunctionParameters"
        },
        "RedshiftDataParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetRedshiftDataParameters"
        },
        "SageMakerPipelineParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetSageMakerPipelineParameters"
        },
        "SqsQueueParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetSqsQueueParameters"
        },
        "StepFunctionStateMachineParameters": {
          "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetStateMachineParameters"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetRedshiftDataParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "DbUser": {
          "type": "string"
        },
        "SecretManagerArn": {
          "type": "string"
        },
        "Sqls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StatementName": {
          "type": "string"
        },
        "WithEvent": {
          "type": "boolean"
        }
      },
      "required": ["Database", "Sqls"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetSageMakerPipelineParameters": {
      "additionalProperties": false,
      "properties": {
        "PipelineParameterList": {
          "items": {
            "$ref": "#/definitions/AWS::Pipes::Pipe.SageMakerPipelineParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetSqsQueueParameters": {
      "additionalProperties": false,
      "properties": {
        "MessageDeduplicationId": {
          "type": "string"
        },
        "MessageGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PipeTargetStateMachineParameters": {
      "additionalProperties": false,
      "properties": {
        "InvocationType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PlacementConstraint": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.PlacementStrategy": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.SageMakerPipelineParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationCredentials": {
      "additionalProperties": false,
      "properties": {
        "BasicAuth": {
          "type": "string"
        },
        "ClientCertificateTlsAuth": {
          "type": "string"
        },
        "SaslScram256Auth": {
          "type": "string"
        },
        "SaslScram512Auth": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationVpc": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroup": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QLDB::Ledger": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeletionProtection": {
              "type": "boolean"
            },
            "KmsKey": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "PermissionsMode": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PermissionsMode"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QLDB::Ledger"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QLDB::Stream": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ExclusiveEndTime": {
              "type": "string"
            },
            "InclusiveStartTime": {
              "type": "string"
            },
            "KinesisConfiguration": {
              "$ref": "#/definitions/AWS::QLDB::Stream.KinesisConfiguration"
            },
            "LedgerName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "StreamName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "InclusiveStartTime",
            "KinesisConfiguration",
            "LedgerName",
            "RoleArn",
            "StreamName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QLDB::Stream"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QLDB::Stream.KinesisConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AggregationEnabled": {
          "type": "boolean"
        },
        "StreamArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Analysis": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AnalysisId": {
              "type": "string"
            },
            "AwsAccountId": {
              "type": "string"
            },
            "Errors": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisError"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "$ref": "#/definitions/AWS::QuickSight::Analysis.Parameters"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::Analysis.ResourcePermission"
              },
              "type": "array"
            },
            "SourceEntity": {
              "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceEntity"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThemeArn": {
              "type": "string"
            }
          },
          "required": ["AnalysisId", "AwsAccountId", "SourceEntity"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::Analysis"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.AnalysisError": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Analysis.AnalysisSourceEntity": {
      "additionalProperties": false,
      "properties": {
        "SourceTemplate": {
          "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceTemplate"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Analysis.AnalysisSourceTemplate": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "DataSetReferences": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Analysis.DataSetReference"
          },
          "type": "array"
        }
      },
      "required": ["Arn", "DataSetReferences"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.DataSetReference": {
      "additionalProperties": false,
      "properties": {
        "DataSetArn": {
          "type": "string"
        },
        "DataSetPlaceholder": {
          "type": "string"
        }
      },
      "required": ["DataSetArn", "DataSetPlaceholder"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.DateTimeParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.DecimalParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "number"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.IntegerParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "number"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.Parameters": {
      "additionalProperties": false,
      "properties": {
        "DateTimeParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Analysis.DateTimeParameter"
          },
          "type": "array"
        },
        "DecimalParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Analysis.DecimalParameter"
          },
          "type": "array"
        },
        "IntegerParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Analysis.IntegerParameter"
          },
          "type": "array"
        },
        "StringParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Analysis.StringParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Analysis.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::Analysis.Sheet": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SheetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Analysis.StringParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AwsAccountId": {
              "type": "string"
            },
            "DashboardId": {
              "type": "string"
            },
            "DashboardPublishOptions": {
              "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardPublishOptions"
            },
            "Name": {
              "type": "string"
            },
            "Parameters": {
              "$ref": "#/definitions/AWS::QuickSight::Dashboard.Parameters"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::Dashboard.ResourcePermission"
              },
              "type": "array"
            },
            "SourceEntity": {
              "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceEntity"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThemeArn": {
              "type": "string"
            },
            "VersionDescription": {
              "type": "string"
            }
          },
          "required": ["AwsAccountId", "DashboardId", "SourceEntity"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::Dashboard"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.AdHocFilteringOption": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityStatus": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DashboardError": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DashboardPublishOptions": {
      "additionalProperties": false,
      "properties": {
        "AdHocFilteringOption": {
          "$ref": "#/definitions/AWS::QuickSight::Dashboard.AdHocFilteringOption"
        },
        "ExportToCSVOption": {
          "$ref": "#/definitions/AWS::QuickSight::Dashboard.ExportToCSVOption"
        },
        "SheetControlsOption": {
          "$ref": "#/definitions/AWS::QuickSight::Dashboard.SheetControlsOption"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DashboardSourceEntity": {
      "additionalProperties": false,
      "properties": {
        "SourceTemplate": {
          "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceTemplate"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DashboardSourceTemplate": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "DataSetReferences": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.DataSetReference"
          },
          "type": "array"
        }
      },
      "required": ["Arn", "DataSetReferences"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DashboardVersion": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "CreatedTime": {
          "type": "string"
        },
        "DataSetArns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "Errors": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError"
          },
          "type": "array"
        },
        "Sheets": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet"
          },
          "type": "array"
        },
        "SourceEntityArn": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "ThemeArn": {
          "type": "string"
        },
        "VersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DataSetReference": {
      "additionalProperties": false,
      "properties": {
        "DataSetArn": {
          "type": "string"
        },
        "DataSetPlaceholder": {
          "type": "string"
        }
      },
      "required": ["DataSetArn", "DataSetPlaceholder"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DateTimeParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.DecimalParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "number"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.ExportToCSVOption": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityStatus": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.IntegerParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "number"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.Parameters": {
      "additionalProperties": false,
      "properties": {
        "DateTimeParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.DateTimeParameter"
          },
          "type": "array"
        },
        "DecimalParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.DecimalParameter"
          },
          "type": "array"
        },
        "IntegerParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.IntegerParameter"
          },
          "type": "array"
        },
        "StringParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard.StringParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.Sheet": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SheetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.SheetControlsOption": {
      "additionalProperties": false,
      "properties": {
        "VisibilityState": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Dashboard.StringParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Name", "Values"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AwsAccountId": {
              "type": "string"
            },
            "ColumnGroups": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnGroup"
              },
              "type": "array"
            },
            "ColumnLevelPermissionRules": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnLevelPermissionRule"
              },
              "type": "array"
            },
            "DataSetId": {
              "type": "string"
            },
            "DataSetUsageConfiguration": {
              "$ref": "#/definitions/AWS::QuickSight::DataSet.DataSetUsageConfiguration"
            },
            "FieldFolders": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::QuickSight::DataSet.FieldFolder"
                }
              },
              "type": "object"
            },
            "ImportMode": {
              "type": "string"
            },
            "IngestionWaitPolicy": {
              "$ref": "#/definitions/AWS::QuickSight::DataSet.IngestionWaitPolicy"
            },
            "LogicalTableMap": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTable"
                }
              },
              "type": "object"
            },
            "Name": {
              "type": "string"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::DataSet.ResourcePermission"
              },
              "type": "array"
            },
            "PhysicalTableMap": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::QuickSight::DataSet.PhysicalTable"
                }
              },
              "type": "object"
            },
            "RowLevelPermissionDataSet": {
              "$ref": "#/definitions/AWS::QuickSight::DataSet.RowLevelPermissionDataSet"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::DataSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.CalculatedColumn": {
      "additionalProperties": false,
      "properties": {
        "ColumnId": {
          "type": "string"
        },
        "ColumnName": {
          "type": "string"
        },
        "Expression": {
          "type": "string"
        }
      },
      "required": ["ColumnId", "ColumnName", "Expression"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.CastColumnTypeOperation": {
      "additionalProperties": false,
      "properties": {
        "ColumnName": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        },
        "NewColumnType": {
          "type": "string"
        }
      },
      "required": ["ColumnName", "NewColumnType"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ColumnDescription": {
      "additionalProperties": false,
      "properties": {
        "Text": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ColumnGroup": {
      "additionalProperties": false,
      "properties": {
        "GeoSpatialColumnGroup": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.GeoSpatialColumnGroup"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ColumnLevelPermissionRule": {
      "additionalProperties": false,
      "properties": {
        "ColumnNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ColumnTag": {
      "additionalProperties": false,
      "properties": {
        "ColumnDescription": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnDescription"
        },
        "ColumnGeographicRole": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.CreateColumnsOperation": {
      "additionalProperties": false,
      "properties": {
        "Columns": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.CalculatedColumn"
          },
          "type": "array"
        }
      },
      "required": ["Columns"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.CustomSql": {
      "additionalProperties": false,
      "properties": {
        "Columns": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn"
          },
          "type": "array"
        },
        "DataSourceArn": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SqlQuery": {
          "type": "string"
        }
      },
      "required": ["Columns", "DataSourceArn", "Name", "SqlQuery"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.DataSetUsageConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DisableUseAsDirectQuerySource": {
          "type": "boolean"
        },
        "DisableUseAsImportedSource": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.FieldFolder": {
      "additionalProperties": false,
      "properties": {
        "Columns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.FilterOperation": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        }
      },
      "required": ["ConditionExpression"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.GeoSpatialColumnGroup": {
      "additionalProperties": false,
      "properties": {
        "Columns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CountryCode": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Columns", "Name"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.IngestionWaitPolicy": {
      "additionalProperties": false,
      "properties": {
        "IngestionWaitTimeInHours": {
          "type": "number"
        },
        "WaitForSpiceIngestion": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.InputColumn": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.JoinInstruction": {
      "additionalProperties": false,
      "properties": {
        "LeftJoinKeyProperties": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties"
        },
        "LeftOperand": {
          "type": "string"
        },
        "OnClause": {
          "type": "string"
        },
        "RightJoinKeyProperties": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties"
        },
        "RightOperand": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["LeftOperand", "OnClause", "RightOperand", "Type"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.JoinKeyProperties": {
      "additionalProperties": false,
      "properties": {
        "UniqueKey": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.LogicalTable": {
      "additionalProperties": false,
      "properties": {
        "Alias": {
          "type": "string"
        },
        "DataTransforms": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.TransformOperation"
          },
          "type": "array"
        },
        "Source": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTableSource"
        }
      },
      "required": ["Alias", "Source"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.LogicalTableSource": {
      "additionalProperties": false,
      "properties": {
        "DataSetArn": {
          "type": "string"
        },
        "JoinInstruction": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinInstruction"
        },
        "PhysicalTableId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.OutputColumn": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.PhysicalTable": {
      "additionalProperties": false,
      "properties": {
        "CustomSql": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.CustomSql"
        },
        "RelationalTable": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.RelationalTable"
        },
        "S3Source": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.S3Source"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ProjectOperation": {
      "additionalProperties": false,
      "properties": {
        "ProjectedColumns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["ProjectedColumns"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.RelationalTable": {
      "additionalProperties": false,
      "properties": {
        "Catalog": {
          "type": "string"
        },
        "DataSourceArn": {
          "type": "string"
        },
        "InputColumns": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "Schema": {
          "type": "string"
        }
      },
      "required": ["DataSourceArn", "InputColumns", "Name"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.RenameColumnOperation": {
      "additionalProperties": false,
      "properties": {
        "ColumnName": {
          "type": "string"
        },
        "NewColumnName": {
          "type": "string"
        }
      },
      "required": ["ColumnName", "NewColumnName"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.RowLevelPermissionDataSet": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "FormatVersion": {
          "type": "string"
        },
        "Namespace": {
          "type": "string"
        },
        "PermissionPolicy": {
          "type": "string"
        }
      },
      "required": ["Arn", "PermissionPolicy"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.S3Source": {
      "additionalProperties": false,
      "properties": {
        "DataSourceArn": {
          "type": "string"
        },
        "InputColumns": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn"
          },
          "type": "array"
        },
        "UploadSettings": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.UploadSettings"
        }
      },
      "required": ["DataSourceArn", "InputColumns"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.TagColumnOperation": {
      "additionalProperties": false,
      "properties": {
        "ColumnName": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnTag"
          },
          "type": "array"
        }
      },
      "required": ["ColumnName", "Tags"],
      "type": "object"
    },
    "AWS::QuickSight::DataSet.TransformOperation": {
      "additionalProperties": false,
      "properties": {
        "CastColumnTypeOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.CastColumnTypeOperation"
        },
        "CreateColumnsOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.CreateColumnsOperation"
        },
        "FilterOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.FilterOperation"
        },
        "ProjectOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.ProjectOperation"
        },
        "RenameColumnOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.RenameColumnOperation"
        },
        "TagColumnOperation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSet.TagColumnOperation"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSet.UploadSettings": {
      "additionalProperties": false,
      "properties": {
        "ContainsHeader": {
          "type": "boolean"
        },
        "Delimiter": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        },
        "StartFromRow": {
          "type": "number"
        },
        "TextQualifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AlternateDataSourceParameters": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters"
              },
              "type": "array"
            },
            "AwsAccountId": {
              "type": "string"
            },
            "Credentials": {
              "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceCredentials"
            },
            "DataSourceId": {
              "type": "string"
            },
            "DataSourceParameters": {
              "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters"
            },
            "ErrorInfo": {
              "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceErrorInfo"
            },
            "Name": {
              "type": "string"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::DataSource.ResourcePermission"
              },
              "type": "array"
            },
            "SslProperties": {
              "$ref": "#/definitions/AWS::QuickSight::DataSource.SslProperties"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            },
            "VpcConnectionProperties": {
              "$ref": "#/definitions/AWS::QuickSight::DataSource.VpcConnectionProperties"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::DataSource"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.AmazonElasticsearchParameters": {
      "additionalProperties": false,
      "properties": {
        "Domain": {
          "type": "string"
        }
      },
      "required": ["Domain"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": {
      "additionalProperties": false,
      "properties": {
        "Domain": {
          "type": "string"
        }
      },
      "required": ["Domain"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.AthenaParameters": {
      "additionalProperties": false,
      "properties": {
        "WorkGroup": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource.AuroraParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.AuroraPostgreSqlParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.CredentialPair": {
      "additionalProperties": false,
      "properties": {
        "AlternateDataSourceParameters": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters"
          },
          "type": "array"
        },
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "required": ["Password", "Username"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.DataSourceCredentials": {
      "additionalProperties": false,
      "properties": {
        "CopySourceArn": {
          "type": "string"
        },
        "CredentialPair": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.CredentialPair"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource.DataSourceErrorInfo": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource.DataSourceParameters": {
      "additionalProperties": false,
      "properties": {
        "AmazonElasticsearchParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters"
        },
        "AmazonOpenSearchParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters"
        },
        "AthenaParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters"
        },
        "AuroraParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraParameters"
        },
        "AuroraPostgreSqlParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraPostgreSqlParameters"
        },
        "DatabricksParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters"
        },
        "MariaDbParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.MariaDbParameters"
        },
        "MySqlParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.MySqlParameters"
        },
        "OracleParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.OracleParameters"
        },
        "PostgreSqlParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.PostgreSqlParameters"
        },
        "PrestoParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.PrestoParameters"
        },
        "RdsParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.RdsParameters"
        },
        "RedshiftParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.RedshiftParameters"
        },
        "S3Parameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.S3Parameters"
        },
        "SnowflakeParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.SnowflakeParameters"
        },
        "SparkParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.SparkParameters"
        },
        "SqlServerParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.SqlServerParameters"
        },
        "TeradataParameters": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.TeradataParameters"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource.DatabricksParameters": {
      "additionalProperties": false,
      "properties": {
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "SqlEndpointPath": {
          "type": "string"
        }
      },
      "required": ["Host", "Port", "SqlEndpointPath"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.ManifestFileLocation": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.MariaDbParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.MySqlParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.OracleParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.PostgreSqlParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.PrestoParameters": {
      "additionalProperties": false,
      "properties": {
        "Catalog": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Catalog", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.RdsParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "InstanceId": {
          "type": "string"
        }
      },
      "required": ["Database", "InstanceId"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.RedshiftParameters": {
      "additionalProperties": false,
      "properties": {
        "ClusterId": {
          "type": "string"
        },
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.S3Parameters": {
      "additionalProperties": false,
      "properties": {
        "ManifestFileLocation": {
          "$ref": "#/definitions/AWS::QuickSight::DataSource.ManifestFileLocation"
        }
      },
      "required": ["ManifestFileLocation"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.SnowflakeParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Warehouse": {
          "type": "string"
        }
      },
      "required": ["Database", "Host", "Warehouse"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.SparkParameters": {
      "additionalProperties": false,
      "properties": {
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.SqlServerParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.SslProperties": {
      "additionalProperties": false,
      "properties": {
        "DisableSsl": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::DataSource.TeradataParameters": {
      "additionalProperties": false,
      "properties": {
        "Database": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        }
      },
      "required": ["Database", "Host", "Port"],
      "type": "object"
    },
    "AWS::QuickSight::DataSource.VpcConnectionProperties": {
      "additionalProperties": false,
      "properties": {
        "VpcConnectionArn": {
          "type": "string"
        }
      },
      "required": ["VpcConnectionArn"],
      "type": "object"
    },
    "AWS::QuickSight::Template": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AwsAccountId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::Template.ResourcePermission"
              },
              "type": "array"
            },
            "SourceEntity": {
              "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceEntity"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TemplateId": {
              "type": "string"
            },
            "VersionDescription": {
              "type": "string"
            }
          },
          "required": ["AwsAccountId", "SourceEntity", "TemplateId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::Template"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QuickSight::Template.ColumnGroupColumnSchema": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.ColumnGroupSchema": {
      "additionalProperties": false,
      "properties": {
        "ColumnGroupColumnSchemaList": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.ColumnSchema": {
      "additionalProperties": false,
      "properties": {
        "DataType": {
          "type": "string"
        },
        "GeographicRole": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.DataSetConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ColumnGroupSchemaList": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema"
          },
          "type": "array"
        },
        "DataSetSchema": {
          "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema"
        },
        "Placeholder": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.DataSetReference": {
      "additionalProperties": false,
      "properties": {
        "DataSetArn": {
          "type": "string"
        },
        "DataSetPlaceholder": {
          "type": "string"
        }
      },
      "required": ["DataSetArn", "DataSetPlaceholder"],
      "type": "object"
    },
    "AWS::QuickSight::Template.DataSetSchema": {
      "additionalProperties": false,
      "properties": {
        "ColumnSchemaList": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::Template.Sheet": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SheetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.TemplateError": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.TemplateSourceAnalysis": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "DataSetReferences": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.DataSetReference"
          },
          "type": "array"
        }
      },
      "required": ["Arn", "DataSetReferences"],
      "type": "object"
    },
    "AWS::QuickSight::Template.TemplateSourceEntity": {
      "additionalProperties": false,
      "properties": {
        "SourceAnalysis": {
          "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceAnalysis"
        },
        "SourceTemplate": {
          "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceTemplate"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Template.TemplateSourceTemplate": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::QuickSight::Template.TemplateVersion": {
      "additionalProperties": false,
      "properties": {
        "CreatedTime": {
          "type": "string"
        },
        "DataSetConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "Errors": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError"
          },
          "type": "array"
        },
        "Sheets": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Template.Sheet"
          },
          "type": "array"
        },
        "SourceEntityArn": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "ThemeArn": {
          "type": "string"
        },
        "VersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AwsAccountId": {
              "type": "string"
            },
            "BaseThemeId": {
              "type": "string"
            },
            "Configuration": {
              "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration"
            },
            "Name": {
              "type": "string"
            },
            "Permissions": {
              "items": {
                "$ref": "#/definitions/AWS::QuickSight::Theme.ResourcePermission"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "ThemeId": {
              "type": "string"
            },
            "VersionDescription": {
              "type": "string"
            }
          },
          "required": ["AwsAccountId", "ThemeId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::QuickSight::Theme"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::QuickSight::Theme.BorderStyle": {
      "additionalProperties": false,
      "properties": {
        "Show": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.DataColorPalette": {
      "additionalProperties": false,
      "properties": {
        "Colors": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EmptyFillColor": {
          "type": "string"
        },
        "MinMaxGradient": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.Font": {
      "additionalProperties": false,
      "properties": {
        "FontFamily": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.GutterStyle": {
      "additionalProperties": false,
      "properties": {
        "Show": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.MarginStyle": {
      "additionalProperties": false,
      "properties": {
        "Show": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.ResourcePermission": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Principal": {
          "type": "string"
        }
      },
      "required": ["Actions", "Principal"],
      "type": "object"
    },
    "AWS::QuickSight::Theme.SheetStyle": {
      "additionalProperties": false,
      "properties": {
        "Tile": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.TileStyle"
        },
        "TileLayout": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.TileLayoutStyle"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.ThemeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DataColorPalette": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.DataColorPalette"
        },
        "Sheet": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.SheetStyle"
        },
        "Typography": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.Typography"
        },
        "UIColorPalette": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.UIColorPalette"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.ThemeError": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.ThemeVersion": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "BaseThemeId": {
          "type": "string"
        },
        "Configuration": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration"
        },
        "CreatedTime": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Errors": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError"
          },
          "type": "array"
        },
        "Status": {
          "type": "string"
        },
        "VersionNumber": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.TileLayoutStyle": {
      "additionalProperties": false,
      "properties": {
        "Gutter": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.GutterStyle"
        },
        "Margin": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.MarginStyle"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.TileStyle": {
      "additionalProperties": false,
      "properties": {
        "Border": {
          "$ref": "#/definitions/AWS::QuickSight::Theme.BorderStyle"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.Typography": {
      "additionalProperties": false,
      "properties": {
        "FontFamilies": {
          "items": {
            "$ref": "#/definitions/AWS::QuickSight::Theme.Font"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::QuickSight::Theme.UIColorPalette": {
      "additionalProperties": false,
      "properties": {
        "Accent": {
          "type": "string"
        },
        "AccentForeground": {
          "type": "string"
        },
        "Danger": {
          "type": "string"
        },
        "DangerForeground": {
          "type": "string"
        },
        "Dimension": {
          "type": "string"
        },
        "DimensionForeground": {
          "type": "string"
        },
        "Measure": {
          "type": "string"
        },
        "MeasureForeground": {
          "type": "string"
        },
        "PrimaryBackground": {
          "type": "string"
        },
        "PrimaryForeground": {
          "type": "string"
        },
        "SecondaryBackground": {
          "type": "string"
        },
        "SecondaryForeground": {
          "type": "string"
        },
        "Success": {
          "type": "string"
        },
        "SuccessForeground": {
          "type": "string"
        },
        "Warning": {
          "type": "string"
        },
        "WarningForeground": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RAM::ResourceShare": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowExternalPrincipals": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "PermissionArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Principals": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ResourceArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RAM::ResourceShare"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocatedStorage": {
              "type": "number"
            },
            "AssociatedRoles": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole"
              },
              "type": "array"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AvailabilityZones": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "BacktrackWindow": {
              "type": "number"
            },
            "BackupRetentionPeriod": {
              "type": "number"
            },
            "CopyTagsToSnapshot": {
              "type": "boolean"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBClusterInstanceClass": {
              "type": "string"
            },
            "DBClusterParameterGroupName": {
              "type": "string"
            },
            "DBInstanceParameterGroupName": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "DBSystemId": {
              "type": "string"
            },
            "DatabaseName": {
              "type": "string"
            },
            "DeletionProtection": {
              "type": "boolean"
            },
            "Domain": {
              "type": "string"
            },
            "DomainIAMRoleName": {
              "type": "string"
            },
            "EnableCloudwatchLogsExports": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EnableHttpEndpoint": {
              "type": "boolean"
            },
            "EnableIAMDatabaseAuthentication": {
              "type": "boolean"
            },
            "Engine": {
              "type": "string"
            },
            "EngineMode": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "GlobalClusterIdentifier": {
              "type": "string"
            },
            "Iops": {
              "type": "number"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "ManageMasterUserPassword": {
              "type": "boolean"
            },
            "MasterUserPassword": {
              "type": "string"
            },
            "MasterUserSecret": {
              "$ref": "#/definitions/AWS::RDS::DBCluster.MasterUserSecret"
            },
            "MasterUsername": {
              "type": "string"
            },
            "MonitoringInterval": {
              "type": "number"
            },
            "MonitoringRoleArn": {
              "type": "string"
            },
            "NetworkType": {
              "type": "string"
            },
            "PerformanceInsightsEnabled": {
              "type": "boolean"
            },
            "PerformanceInsightsKmsKeyId": {
              "type": "string"
            },
            "PerformanceInsightsRetentionPeriod": {
              "type": "number"
            },
            "Port": {
              "type": "number"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "ReplicationSourceIdentifier": {
              "type": "string"
            },
            "RestoreType": {
              "type": "string"
            },
            "ScalingConfiguration": {
              "$ref": "#/definitions/AWS::RDS::DBCluster.ScalingConfiguration"
            },
            "ServerlessV2ScalingConfiguration": {
              "$ref": "#/definitions/AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration"
            },
            "SnapshotIdentifier": {
              "type": "string"
            },
            "SourceDBClusterIdentifier": {
              "type": "string"
            },
            "SourceRegion": {
              "type": "string"
            },
            "StorageEncrypted": {
              "type": "boolean"
            },
            "StorageType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UseLatestRestorableTime": {
              "type": "boolean"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RDS::DBCluster.DBClusterRole": {
      "additionalProperties": false,
      "properties": {
        "FeatureName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["RoleArn"],
      "type": "object"
    },
    "AWS::RDS::DBCluster.Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBCluster.MasterUserSecret": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBCluster.ReadEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBCluster.ScalingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AutoPause": {
          "type": "boolean"
        },
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        },
        "SecondsBeforeTimeout": {
          "type": "number"
        },
        "SecondsUntilAutoPause": {
          "type": "number"
        },
        "TimeoutAction": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MaxCapacity": {
          "type": "number"
        },
        "MinCapacity": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBClusterParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBClusterParameterGroupName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "Family", "Parameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBClusterParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllocatedStorage": {
              "type": "string"
            },
            "AllowMajorVersionUpgrade": {
              "type": "boolean"
            },
            "AssociatedRoles": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBInstance.DBInstanceRole"
              },
              "type": "array"
            },
            "AutoMinorVersionUpgrade": {
              "type": "boolean"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "BackupRetentionPeriod": {
              "type": "number"
            },
            "CACertificateIdentifier": {
              "type": "string"
            },
            "CharacterSetName": {
              "type": "string"
            },
            "CopyTagsToSnapshot": {
              "type": "boolean"
            },
            "CustomIAMInstanceProfile": {
              "type": "string"
            },
            "DBClusterIdentifier": {
              "type": "string"
            },
            "DBClusterSnapshotIdentifier": {
              "type": "string"
            },
            "DBInstanceClass": {
              "type": "string"
            },
            "DBInstanceIdentifier": {
              "type": "string"
            },
            "DBName": {
              "type": "string"
            },
            "DBParameterGroupName": {
              "type": "string"
            },
            "DBSecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DBSnapshotIdentifier": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "DeleteAutomatedBackups": {
              "type": "boolean"
            },
            "DeletionProtection": {
              "type": "boolean"
            },
            "Domain": {
              "type": "string"
            },
            "DomainIAMRoleName": {
              "type": "string"
            },
            "EnableCloudwatchLogsExports": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "EnableIAMDatabaseAuthentication": {
              "type": "boolean"
            },
            "EnablePerformanceInsights": {
              "type": "boolean"
            },
            "Endpoint": {
              "$ref": "#/definitions/AWS::RDS::DBInstance.Endpoint"
            },
            "Engine": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "Iops": {
              "type": "number"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LicenseModel": {
              "type": "string"
            },
            "ManageMasterUserPassword": {
              "type": "boolean"
            },
            "MasterUserPassword": {
              "type": "string"
            },
            "MasterUserSecret": {
              "$ref": "#/definitions/AWS::RDS::DBInstance.MasterUserSecret"
            },
            "MasterUsername": {
              "type": "string"
            },
            "MaxAllocatedStorage": {
              "type": "number"
            },
            "MonitoringInterval": {
              "type": "number"
            },
            "MonitoringRoleArn": {
              "type": "string"
            },
            "MultiAZ": {
              "type": "boolean"
            },
            "NcharCharacterSetName": {
              "type": "string"
            },
            "NetworkType": {
              "type": "string"
            },
            "OptionGroupName": {
              "type": "string"
            },
            "PerformanceInsightsKMSKeyId": {
              "type": "string"
            },
            "PerformanceInsightsRetentionPeriod": {
              "type": "number"
            },
            "Port": {
              "type": "string"
            },
            "PreferredBackupWindow": {
              "type": "string"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "ProcessorFeatures": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBInstance.ProcessorFeature"
              },
              "type": "array"
            },
            "PromotionTier": {
              "type": "number"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "ReplicaMode": {
              "type": "string"
            },
            "RestoreTime": {
              "type": "string"
            },
            "SourceDBInstanceAutomatedBackupsArn": {
              "type": "string"
            },
            "SourceDBInstanceIdentifier": {
              "type": "string"
            },
            "SourceDbiResourceId": {
              "type": "string"
            },
            "SourceRegion": {
              "type": "string"
            },
            "StorageEncrypted": {
              "type": "boolean"
            },
            "StorageThroughput": {
              "type": "number"
            },
            "StorageType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Timezone": {
              "type": "string"
            },
            "UseDefaultProcessorFeatures": {
              "type": "boolean"
            },
            "UseLatestRestorableTime": {
              "type": "boolean"
            },
            "VPCSecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RDS::DBInstance.DBInstanceRole": {
      "additionalProperties": false,
      "properties": {
        "FeatureName": {
          "type": "string"
        },
        "RoleArn": {
          "type": "string"
        }
      },
      "required": ["FeatureName", "RoleArn"],
      "type": "object"
    },
    "AWS::RDS::DBInstance.Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "HostedZoneId": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBInstance.MasterUserSecret": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBInstance.ProcessorFeature": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBParameterGroupName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Family": {
              "type": "string"
            },
            "Parameters": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "Family"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBProxy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Auth": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBProxy.AuthFormat"
              },
              "type": "array"
            },
            "DBProxyName": {
              "type": "string"
            },
            "DebugLogging": {
              "type": "boolean"
            },
            "EngineFamily": {
              "type": "string"
            },
            "IdleClientTimeout": {
              "type": "number"
            },
            "RequireTLS": {
              "type": "boolean"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBProxy.TagFormat"
              },
              "type": "array"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcSubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "Auth",
            "DBProxyName",
            "EngineFamily",
            "RoleArn",
            "VpcSubnetIds"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBProxy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBProxy.AuthFormat": {
      "additionalProperties": false,
      "properties": {
        "AuthScheme": {
          "type": "string"
        },
        "ClientPasswordAuthType": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "IAMAuth": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        },
        "UserName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBProxy.TagFormat": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBProxyEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBProxyEndpointName": {
              "type": "string"
            },
            "DBProxyName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint.TagFormat"
              },
              "type": "array"
            },
            "TargetRole": {
              "type": "string"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcSubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["DBProxyEndpointName", "DBProxyName", "VpcSubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBProxyEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBProxyEndpoint.TagFormat": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBProxyTargetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionPoolConfigurationInfo": {
              "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat"
            },
            "DBClusterIdentifiers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DBInstanceIdentifiers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DBProxyName": {
              "type": "string"
            },
            "TargetGroupName": {
              "type": "string"
            }
          },
          "required": ["DBProxyName", "TargetGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBProxyTargetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat": {
      "additionalProperties": false,
      "properties": {
        "ConnectionBorrowTimeout": {
          "type": "number"
        },
        "InitQuery": {
          "type": "string"
        },
        "MaxConnectionsPercent": {
          "type": "number"
        },
        "MaxIdleConnectionsPercent": {
          "type": "number"
        },
        "SessionPinningFilters": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBSecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBSecurityGroupIngress": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::DBSecurityGroup.Ingress"
              },
              "type": "array"
            },
            "EC2VpcId": {
              "type": "string"
            },
            "GroupDescription": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBSecurityGroupIngress", "GroupDescription"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBSecurityGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBSecurityGroup.Ingress": {
      "additionalProperties": false,
      "properties": {
        "CIDRIP": {
          "type": "string"
        },
        "EC2SecurityGroupId": {
          "type": "string"
        },
        "EC2SecurityGroupName": {
          "type": "string"
        },
        "EC2SecurityGroupOwnerId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RDS::DBSecurityGroupIngress": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CIDRIP": {
              "type": "string"
            },
            "DBSecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupId": {
              "type": "string"
            },
            "EC2SecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupOwnerId": {
              "type": "string"
            }
          },
          "required": ["DBSecurityGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBSecurityGroupIngress"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::DBSubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DBSubnetGroupDescription": {
              "type": "string"
            },
            "DBSubnetGroupName": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DBSubnetGroupDescription", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::DBSubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::EventSubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enabled": {
              "type": "boolean"
            },
            "EventCategories": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SnsTopicArn": {
              "type": "string"
            },
            "SourceIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SourceType": {
              "type": "string"
            },
            "SubscriptionName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SnsTopicArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::EventSubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::GlobalCluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeletionProtection": {
              "type": "boolean"
            },
            "Engine": {
              "type": "string"
            },
            "EngineVersion": {
              "type": "string"
            },
            "GlobalClusterIdentifier": {
              "type": "string"
            },
            "SourceDBClusterIdentifier": {
              "type": "string"
            },
            "StorageEncrypted": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::GlobalCluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RDS::OptionGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EngineName": {
              "type": "string"
            },
            "MajorEngineVersion": {
              "type": "string"
            },
            "OptionConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionConfiguration"
              },
              "type": "array"
            },
            "OptionGroupDescription": {
              "type": "string"
            },
            "OptionGroupName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "EngineName",
            "MajorEngineVersion",
            "OptionGroupDescription"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RDS::OptionGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RDS::OptionGroup.OptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DBSecurityGroupMemberships": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "OptionName": {
          "type": "string"
        },
        "OptionSettings": {
          "items": {
            "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionSetting"
          },
          "type": "array"
        },
        "OptionVersion": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "VpcSecurityGroupMemberships": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["OptionName"],
      "type": "object"
    },
    "AWS::RDS::OptionGroup.OptionSetting": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RUM::AppMonitor": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppMonitorConfiguration": {
              "$ref": "#/definitions/AWS::RUM::AppMonitor.AppMonitorConfiguration"
            },
            "CwLogEnabled": {
              "type": "boolean"
            },
            "Domain": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Domain", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RUM::AppMonitor"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RUM::AppMonitor.AppMonitorConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowCookies": {
          "type": "boolean"
        },
        "EnableXRay": {
          "type": "boolean"
        },
        "ExcludedPages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "FavoritePages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "GuestRoleArn": {
          "type": "string"
        },
        "IdentityPoolId": {
          "type": "string"
        },
        "IncludedPages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MetricDestinations": {
          "items": {
            "$ref": "#/definitions/AWS::RUM::AppMonitor.MetricDestination"
          },
          "type": "array"
        },
        "SessionSampleRate": {
          "type": "number"
        },
        "Telemetries": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::RUM::AppMonitor.MetricDefinition": {
      "additionalProperties": false,
      "properties": {
        "DimensionKeys": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "EventPattern": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "UnitLabel": {
          "type": "string"
        },
        "ValueKey": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::RUM::AppMonitor.MetricDestination": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "type": "string"
        },
        "DestinationArn": {
          "type": "string"
        },
        "IamRoleArn": {
          "type": "string"
        },
        "MetricDefinitions": {
          "items": {
            "$ref": "#/definitions/AWS::RUM::AppMonitor.MetricDefinition"
          },
          "type": "array"
        }
      },
      "required": ["Destination"],
      "type": "object"
    },
    "AWS::Redshift::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowVersionUpgrade": {
              "type": "boolean"
            },
            "AquaConfigurationStatus": {
              "type": "string"
            },
            "AutomatedSnapshotRetentionPeriod": {
              "type": "number"
            },
            "AvailabilityZone": {
              "type": "string"
            },
            "AvailabilityZoneRelocation": {
              "type": "boolean"
            },
            "AvailabilityZoneRelocationStatus": {
              "type": "string"
            },
            "Classic": {
              "type": "boolean"
            },
            "ClusterIdentifier": {
              "type": "string"
            },
            "ClusterParameterGroupName": {
              "type": "string"
            },
            "ClusterSecurityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ClusterSubnetGroupName": {
              "type": "string"
            },
            "ClusterType": {
              "type": "string"
            },
            "ClusterVersion": {
              "type": "string"
            },
            "DBName": {
              "type": "string"
            },
            "DeferMaintenance": {
              "type": "boolean"
            },
            "DeferMaintenanceDuration": {
              "type": "number"
            },
            "DeferMaintenanceEndTime": {
              "type": "string"
            },
            "DeferMaintenanceStartTime": {
              "type": "string"
            },
            "DestinationRegion": {
              "type": "string"
            },
            "ElasticIp": {
              "type": "string"
            },
            "Encrypted": {
              "type": "boolean"
            },
            "Endpoint": {
              "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint"
            },
            "EnhancedVpcRouting": {
              "type": "boolean"
            },
            "HsmClientCertificateIdentifier": {
              "type": "string"
            },
            "HsmConfigurationIdentifier": {
              "type": "string"
            },
            "IamRoles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LoggingProperties": {
              "$ref": "#/definitions/AWS::Redshift::Cluster.LoggingProperties"
            },
            "MaintenanceTrackName": {
              "type": "string"
            },
            "ManualSnapshotRetentionPeriod": {
              "type": "number"
            },
            "MasterUserPassword": {
              "type": "string"
            },
            "MasterUsername": {
              "type": "string"
            },
            "NodeType": {
              "type": "string"
            },
            "NumberOfNodes": {
              "type": "number"
            },
            "OwnerAccount": {
              "type": "string"
            },
            "Port": {
              "type": "number"
            },
            "PreferredMaintenanceWindow": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "ResourceAction": {
              "type": "string"
            },
            "RevisionTarget": {
              "type": "string"
            },
            "RotateEncryptionKey": {
              "type": "boolean"
            },
            "SnapshotClusterIdentifier": {
              "type": "string"
            },
            "SnapshotCopyGrantName": {
              "type": "string"
            },
            "SnapshotCopyManual": {
              "type": "boolean"
            },
            "SnapshotCopyRetentionPeriod": {
              "type": "number"
            },
            "SnapshotIdentifier": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "ClusterType",
            "DBName",
            "MasterUserPassword",
            "MasterUsername",
            "NodeType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::Cluster.Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Redshift::Cluster.LoggingProperties": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "S3KeyPrefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::Redshift::ClusterParameterGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "ParameterGroupFamily": {
              "type": "string"
            },
            "Parameters": {
              "items": {
                "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup.Parameter"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "ParameterGroupFamily"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::ClusterParameterGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::ClusterParameterGroup.Parameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterName": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "required": ["ParameterName", "ParameterValue"],
      "type": "object"
    },
    "AWS::Redshift::ClusterSecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::ClusterSecurityGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::ClusterSecurityGroupIngress": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CIDRIP": {
              "type": "string"
            },
            "ClusterSecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupName": {
              "type": "string"
            },
            "EC2SecurityGroupOwnerId": {
              "type": "string"
            }
          },
          "required": ["ClusterSecurityGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::ClusterSecurityGroupIngress"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::ClusterSubnetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Description", "SubnetIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::ClusterSubnetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::EndpointAccess": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterIdentifier": {
              "type": "string"
            },
            "EndpointName": {
              "type": "string"
            },
            "ResourceOwner": {
              "type": "string"
            },
            "SubnetGroupName": {
              "type": "string"
            },
            "VpcEndpoint": {
              "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcEndpoint"
            },
            "VpcSecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VpcSecurityGroups": {
              "items": {
                "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcSecurityGroup"
              },
              "type": "array"
            }
          },
          "required": [
            "ClusterIdentifier",
            "EndpointName",
            "SubnetGroupName",
            "VpcSecurityGroupIds"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::EndpointAccess"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::EndpointAccess.NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "PrivateIpAddress": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Redshift::EndpointAccess.VpcEndpoint": {
      "additionalProperties": false,
      "properties": {
        "NetworkInterfaces": {
          "items": {
            "$ref": "#/definitions/AWS::Redshift::EndpointAccess.NetworkInterface"
          },
          "type": "array"
        },
        "VpcEndpointId": {
          "type": "string"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Redshift::EndpointAccess.VpcSecurityGroup": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        },
        "VpcSecurityGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Redshift::EndpointAuthorization": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Account": {
              "type": "string"
            },
            "ClusterIdentifier": {
              "type": "string"
            },
            "Force": {
              "type": "boolean"
            },
            "VpcIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Account", "ClusterIdentifier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::EndpointAuthorization"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::EventSubscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enabled": {
              "type": "boolean"
            },
            "EventCategories": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Severity": {
              "type": "string"
            },
            "SnsTopicArn": {
              "type": "string"
            },
            "SourceIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SourceType": {
              "type": "string"
            },
            "SubscriptionName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["SubscriptionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::EventSubscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::ScheduledAction": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enable": {
              "type": "boolean"
            },
            "EndTime": {
              "type": "string"
            },
            "IamRole": {
              "type": "string"
            },
            "Schedule": {
              "type": "string"
            },
            "ScheduledActionDescription": {
              "type": "string"
            },
            "ScheduledActionName": {
              "type": "string"
            },
            "StartTime": {
              "type": "string"
            },
            "TargetAction": {
              "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType"
            }
          },
          "required": ["ScheduledActionName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Redshift::ScheduledAction"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Redshift::ScheduledAction.PauseClusterMessage": {
      "additionalProperties": false,
      "properties": {
        "ClusterIdentifier": {
          "type": "string"
        }
      },
      "required": ["ClusterIdentifier"],
      "type": "object"
    },
    "AWS::Redshift::ScheduledAction.ResizeClusterMessage": {
      "additionalProperties": false,
      "properties": {
        "Classic": {
          "type": "boolean"
        },
        "ClusterIdentifier": {
          "type": "string"
        },
        "ClusterType": {
          "type": "string"
        },
        "NodeType": {
          "type": "string"
        },
        "NumberOfNodes": {
          "type": "number"
        }
      },
      "required": ["ClusterIdentifier"],
      "type": "object"
    },
    "AWS::Redshift::ScheduledAction.ResumeClusterMessage": {
      "additionalProperties": false,
      "properties": {
        "ClusterIdentifier": {
          "type": "string"
        }
      },
      "required": ["ClusterIdentifier"],
      "type": "object"
    },
    "AWS::Redshift::ScheduledAction.ScheduledActionType": {
      "additionalProperties": false,
      "properties": {
        "PauseCluster": {
          "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage"
        },
        "ResizeCluster": {
          "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage"
        },
        "ResumeCluster": {
          "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Namespace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdminUserPassword": {
              "type": "string"
            },
            "AdminUsername": {
              "type": "string"
            },
            "DbName": {
              "type": "string"
            },
            "DefaultIamRoleArn": {
              "type": "string"
            },
            "FinalSnapshotName": {
              "type": "string"
            },
            "FinalSnapshotRetentionPeriod": {
              "type": "number"
            },
            "IamRoles": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LogExports": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Namespace": {
              "$ref": "#/definitions/AWS::RedshiftServerless::Namespace.Namespace"
            },
            "NamespaceName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["NamespaceName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RedshiftServerless::Namespace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RedshiftServerless::Namespace.Namespace": {
      "additionalProperties": false,
      "properties": {
        "AdminUsername": {
          "type": "string"
        },
        "CreationDate": {
          "type": "string"
        },
        "DbName": {
          "type": "string"
        },
        "DefaultIamRoleArn": {
          "type": "string"
        },
        "IamRoles": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "LogExports": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "NamespaceArn": {
          "type": "string"
        },
        "NamespaceId": {
          "type": "string"
        },
        "NamespaceName": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BaseCapacity": {
              "type": "number"
            },
            "ConfigParameters": {
              "items": {
                "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter"
              },
              "type": "array"
            },
            "EnhancedVpcRouting": {
              "type": "boolean"
            },
            "NamespaceName": {
              "type": "string"
            },
            "PubliclyAccessible": {
              "type": "boolean"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Workgroup": {
              "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.Workgroup"
            },
            "WorkgroupName": {
              "type": "string"
            }
          },
          "required": ["WorkgroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RedshiftServerless::Workgroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup.ConfigParameter": {
      "additionalProperties": false,
      "properties": {
        "ParameterKey": {
          "type": "string"
        },
        "ParameterValue": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup.Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Address": {
          "type": "string"
        },
        "Port": {
          "type": "number"
        },
        "VpcEndpoints": {
          "items": {
            "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.VpcEndpoint"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup.NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "AvailabilityZone": {
          "type": "string"
        },
        "NetworkInterfaceId": {
          "type": "string"
        },
        "PrivateIpAddress": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup.VpcEndpoint": {
      "additionalProperties": false,
      "properties": {
        "NetworkInterfaces": {
          "items": {
            "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.NetworkInterface"
          },
          "type": "array"
        },
        "VpcEndpointId": {
          "type": "string"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RedshiftServerless::Workgroup.Workgroup": {
      "additionalProperties": false,
      "properties": {
        "BaseCapacity": {
          "type": "number"
        },
        "ConfigParameters": {
          "items": {
            "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter"
          },
          "type": "array"
        },
        "CreationDate": {
          "type": "string"
        },
        "Endpoint": {
          "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.Endpoint"
        },
        "EnhancedVpcRouting": {
          "type": "boolean"
        },
        "NamespaceName": {
          "type": "string"
        },
        "PubliclyAccessible": {
          "type": "boolean"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Status": {
          "type": "string"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WorkgroupArn": {
          "type": "string"
        },
        "WorkgroupId": {
          "type": "string"
        },
        "WorkgroupName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RefactorSpaces::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApiGatewayProxy": {
              "$ref": "#/definitions/AWS::RefactorSpaces::Application.ApiGatewayProxyInput"
            },
            "EnvironmentIdentifier": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ProxyType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RefactorSpaces::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Application.ApiGatewayProxyInput": {
      "additionalProperties": false,
      "properties": {
        "EndpointType": {
          "type": "string"
        },
        "StageName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RefactorSpaces::Environment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "NetworkFabricType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RefactorSpaces::Environment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Route": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationIdentifier": {
              "type": "string"
            },
            "DefaultRoute": {
              "$ref": "#/definitions/AWS::RefactorSpaces::Route.DefaultRouteInput"
            },
            "EnvironmentIdentifier": {
              "type": "string"
            },
            "RouteType": {
              "type": "string"
            },
            "ServiceIdentifier": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UriPathRoute": {
              "$ref": "#/definitions/AWS::RefactorSpaces::Route.UriPathRouteInput"
            }
          },
          "required": [
            "ApplicationIdentifier",
            "EnvironmentIdentifier",
            "ServiceIdentifier"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RefactorSpaces::Route"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Route.DefaultRouteInput": {
      "additionalProperties": false,
      "properties": {
        "ActivationState": {
          "type": "string"
        }
      },
      "required": ["ActivationState"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Route.UriPathRouteInput": {
      "additionalProperties": false,
      "properties": {
        "ActivationState": {
          "type": "string"
        },
        "IncludeChildPaths": {
          "type": "boolean"
        },
        "Methods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourcePath": {
          "type": "string"
        }
      },
      "required": ["ActivationState"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Service": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplicationIdentifier": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "EndpointType": {
              "type": "string"
            },
            "EnvironmentIdentifier": {
              "type": "string"
            },
            "LambdaEndpoint": {
              "$ref": "#/definitions/AWS::RefactorSpaces::Service.LambdaEndpointInput"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UrlEndpoint": {
              "$ref": "#/definitions/AWS::RefactorSpaces::Service.UrlEndpointInput"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["ApplicationIdentifier", "EnvironmentIdentifier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RefactorSpaces::Service"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Service.LambdaEndpointInput": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::RefactorSpaces::Service.UrlEndpointInput": {
      "additionalProperties": false,
      "properties": {
        "HealthUrl": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "required": ["Url"],
      "type": "object"
    },
    "AWS::Rekognition::Collection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CollectionId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["CollectionId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Rekognition::Collection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Rekognition::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ProjectName": {
              "type": "string"
            }
          },
          "required": ["ProjectName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Rekognition::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BoundingBoxRegionsOfInterest": {
              "items": {
                "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.BoundingBox"
              },
              "type": "array"
            },
            "ConnectedHomeSettings": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.ConnectedHomeSettings"
            },
            "DataSharingPreference": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.DataSharingPreference"
            },
            "FaceSearchSettings": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.FaceSearchSettings"
            },
            "KinesisDataStream": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.KinesisDataStream"
            },
            "KinesisVideoStream": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.KinesisVideoStream"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "NotificationChannel": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.NotificationChannel"
            },
            "PolygonRegionsOfInterest": {
              "type": "object"
            },
            "RoleArn": {
              "type": "string"
            },
            "S3Destination": {
              "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.S3Destination"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KinesisVideoStream", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Rekognition::StreamProcessor"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.BoundingBox": {
      "additionalProperties": false,
      "properties": {
        "Height": {
          "type": "number"
        },
        "Left": {
          "type": "number"
        },
        "Top": {
          "type": "number"
        },
        "Width": {
          "type": "number"
        }
      },
      "required": ["Height", "Left", "Top", "Width"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.ConnectedHomeSettings": {
      "additionalProperties": false,
      "properties": {
        "Labels": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "MinConfidence": {
          "type": "number"
        }
      },
      "required": ["Labels"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.DataSharingPreference": {
      "additionalProperties": false,
      "properties": {
        "OptIn": {
          "type": "boolean"
        }
      },
      "required": ["OptIn"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.FaceSearchSettings": {
      "additionalProperties": false,
      "properties": {
        "CollectionId": {
          "type": "string"
        },
        "FaceMatchThreshold": {
          "type": "number"
        }
      },
      "required": ["CollectionId"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.KinesisDataStream": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.KinesisVideoStream": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.NotificationChannel": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::Rekognition::StreamProcessor.S3Destination": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "ObjectKeyPrefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::ResilienceHub::App": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppAssessmentSchedule": {
              "type": "string"
            },
            "AppTemplateBody": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ResiliencyPolicyArn": {
              "type": "string"
            },
            "ResourceMappings": {
              "items": {
                "$ref": "#/definitions/AWS::ResilienceHub::App.ResourceMapping"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["AppTemplateBody", "Name", "ResourceMappings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResilienceHub::App"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResilienceHub::App.PhysicalResourceId": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountId": {
          "type": "string"
        },
        "AwsRegion": {
          "type": "string"
        },
        "Identifier": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Identifier", "Type"],
      "type": "object"
    },
    "AWS::ResilienceHub::App.ResourceMapping": {
      "additionalProperties": false,
      "properties": {
        "LogicalStackName": {
          "type": "string"
        },
        "MappingType": {
          "type": "string"
        },
        "PhysicalResourceId": {
          "$ref": "#/definitions/AWS::ResilienceHub::App.PhysicalResourceId"
        },
        "ResourceName": {
          "type": "string"
        },
        "TerraformSourceName": {
          "type": "string"
        }
      },
      "required": ["MappingType", "PhysicalResourceId"],
      "type": "object"
    },
    "AWS::ResilienceHub::ResiliencyPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataLocationConstraint": {
              "type": "string"
            },
            "Policy": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy"
                }
              },
              "type": "object"
            },
            "PolicyDescription": {
              "type": "string"
            },
            "PolicyName": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Tier": {
              "type": "string"
            }
          },
          "required": ["Policy", "PolicyName", "Tier"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResilienceHub::ResiliencyPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy": {
      "additionalProperties": false,
      "properties": {
        "RpoInSecs": {
          "type": "number"
        },
        "RtoInSecs": {
          "type": "number"
        }
      },
      "required": ["RpoInSecs", "RtoInSecs"],
      "type": "object"
    },
    "AWS::ResourceExplorer2::DefaultViewAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ViewArn": {
              "type": "string"
            }
          },
          "required": ["ViewArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResourceExplorer2::DefaultViewAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResourceExplorer2::Index": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResourceExplorer2::Index"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResourceExplorer2::View": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Filters": {
              "$ref": "#/definitions/AWS::ResourceExplorer2::View.Filters"
            },
            "IncludedProperties": {
              "items": {
                "$ref": "#/definitions/AWS::ResourceExplorer2::View.IncludedProperty"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ViewName": {
              "type": "string"
            }
          },
          "required": ["ViewName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResourceExplorer2::View"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResourceExplorer2::View.Filters": {
      "additionalProperties": false,
      "properties": {
        "FilterString": {
          "type": "string"
        }
      },
      "required": ["FilterString"],
      "type": "object"
    },
    "AWS::ResourceExplorer2::View.IncludedProperty": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::ResourceGroups::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Configuration": {
              "items": {
                "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationItem"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ResourceQuery": {
              "$ref": "#/definitions/AWS::ResourceGroups::Group.ResourceQuery"
            },
            "Resources": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ResourceGroups::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ResourceGroups::Group.ConfigurationItem": {
      "additionalProperties": false,
      "properties": {
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationParameter"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ResourceGroups::Group.ConfigurationParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ResourceGroups::Group.Query": {
      "additionalProperties": false,
      "properties": {
        "ResourceTypeFilters": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StackIdentifier": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::ResourceGroups::Group.TagFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ResourceGroups::Group.ResourceQuery": {
      "additionalProperties": false,
      "properties": {
        "Query": {
          "$ref": "#/definitions/AWS::ResourceGroups::Group.Query"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::ResourceGroups::Group.TagFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::RoboMaker::Fleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::Fleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RoboMaker::Robot": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Architecture": {
              "type": "string"
            },
            "Fleet": {
              "type": "string"
            },
            "GreengrassGroupId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Architecture", "GreengrassGroupId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::Robot"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RoboMaker::RobotApplication": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CurrentRevisionId": {
              "type": "string"
            },
            "Environment": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RobotSoftwareSuite": {
              "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite"
            },
            "Sources": {
              "items": {
                "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["RobotSoftwareSuite"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::RobotApplication"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::RoboMaker::RobotApplication.SourceConfig": {
      "additionalProperties": false,
      "properties": {
        "Architecture": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["Architecture", "S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::RoboMaker::RobotApplicationVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Application": {
              "type": "string"
            },
            "CurrentRevisionId": {
              "type": "string"
            }
          },
          "required": ["Application"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::RobotApplicationVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplication": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CurrentRevisionId": {
              "type": "string"
            },
            "Environment": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RenderingEngine": {
              "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine"
            },
            "RobotSoftwareSuite": {
              "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite"
            },
            "SimulationSoftwareSuite": {
              "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite"
            },
            "Sources": {
              "items": {
                "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig"
              },
              "type": "array"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["RobotSoftwareSuite", "SimulationSoftwareSuite"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::SimulationApplication"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplication.RenderingEngine": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name", "Version"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplication.SourceConfig": {
      "additionalProperties": false,
      "properties": {
        "Architecture": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        }
      },
      "required": ["Architecture", "S3Bucket", "S3Key"],
      "type": "object"
    },
    "AWS::RoboMaker::SimulationApplicationVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Application": {
              "type": "string"
            },
            "CurrentRevisionId": {
              "type": "string"
            }
          },
          "required": ["Application"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RoboMaker::SimulationApplicationVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::RolesAnywhere::CRL": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CrlData": {
              "type": "string"
            },
            "Enabled": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TrustAnchorArn": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RolesAnywhere::CRL"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RolesAnywhere::Profile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DurationSeconds": {
              "type": "number"
            },
            "Enabled": {
              "type": "boolean"
            },
            "ManagedPolicyArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "RequireInstanceProperties": {
              "type": "boolean"
            },
            "RoleArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SessionPolicy": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RolesAnywhere::Profile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RolesAnywhere::TrustAnchor": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Enabled": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "Source": {
              "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::RolesAnywhere::TrustAnchor"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::RolesAnywhere::TrustAnchor.Source": {
      "additionalProperties": false,
      "properties": {
        "SourceData": {
          "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.SourceData"
        },
        "SourceType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::RolesAnywhere::TrustAnchor.SourceData": {
      "additionalProperties": false,
      "properties": {
        "AcmPcaArn": {
          "type": "string"
        },
        "X509CertificateData": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53::CidrCollection": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Locations": {
              "items": {
                "$ref": "#/definitions/AWS::Route53::CidrCollection.Location"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::CidrCollection"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53::CidrCollection.Location": {
      "additionalProperties": false,
      "properties": {
        "CidrList": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "LocationName": {
          "type": "string"
        }
      },
      "required": ["CidrList", "LocationName"],
      "type": "object"
    },
    "AWS::Route53::DNSSEC": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HostedZoneId": {
              "type": "string"
            }
          },
          "required": ["HostedZoneId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::DNSSEC"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53::HealthCheck": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HealthCheckConfig": {
              "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckConfig"
            },
            "HealthCheckTags": {
              "items": {
                "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckTag"
              },
              "type": "array"
            }
          },
          "required": ["HealthCheckConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::HealthCheck"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53::HealthCheck.AlarmIdentifier": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        }
      },
      "required": ["Name", "Region"],
      "type": "object"
    },
    "AWS::Route53::HealthCheck.HealthCheckConfig": {
      "additionalProperties": false,
      "properties": {
        "AlarmIdentifier": {
          "$ref": "#/definitions/AWS::Route53::HealthCheck.AlarmIdentifier"
        },
        "ChildHealthChecks": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "EnableSNI": {
          "type": "boolean"
        },
        "FailureThreshold": {
          "type": "number"
        },
        "FullyQualifiedDomainName": {
          "type": "string"
        },
        "HealthThreshold": {
          "type": "number"
        },
        "IPAddress": {
          "type": "string"
        },
        "InsufficientDataHealthStatus": {
          "type": "string"
        },
        "Inverted": {
          "type": "boolean"
        },
        "MeasureLatency": {
          "type": "boolean"
        },
        "Port": {
          "type": "number"
        },
        "Regions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "RequestInterval": {
          "type": "number"
        },
        "ResourcePath": {
          "type": "string"
        },
        "RoutingControlArn": {
          "type": "string"
        },
        "SearchString": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53::HealthCheck.HealthCheckTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Route53::HostedZone": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HostedZoneConfig": {
              "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneConfig"
            },
            "HostedZoneTags": {
              "items": {
                "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneTag"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "QueryLoggingConfig": {
              "$ref": "#/definitions/AWS::Route53::HostedZone.QueryLoggingConfig"
            },
            "VPCs": {
              "items": {
                "$ref": "#/definitions/AWS::Route53::HostedZone.VPC"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::HostedZone"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53::HostedZone.HostedZoneConfig": {
      "additionalProperties": false,
      "properties": {
        "Comment": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53::HostedZone.HostedZoneTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Route53::HostedZone.QueryLoggingConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsLogGroupArn": {
          "type": "string"
        }
      },
      "required": ["CloudWatchLogsLogGroupArn"],
      "type": "object"
    },
    "AWS::Route53::HostedZone.VPC": {
      "additionalProperties": false,
      "properties": {
        "VPCId": {
          "type": "string"
        },
        "VPCRegion": {
          "type": "string"
        }
      },
      "required": ["VPCId", "VPCRegion"],
      "type": "object"
    },
    "AWS::Route53::KeySigningKey": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HostedZoneId": {
              "type": "string"
            },
            "KeyManagementServiceArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            }
          },
          "required": [
            "HostedZoneId",
            "KeyManagementServiceArn",
            "Name",
            "Status"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::KeySigningKey"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53::RecordSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AliasTarget": {
              "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget"
            },
            "CidrRoutingConfig": {
              "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig"
            },
            "Comment": {
              "type": "string"
            },
            "Failover": {
              "type": "string"
            },
            "GeoLocation": {
              "$ref": "#/definitions/AWS::Route53::RecordSet.GeoLocation"
            },
            "HealthCheckId": {
              "type": "string"
            },
            "HostedZoneId": {
              "type": "string"
            },
            "HostedZoneName": {
              "type": "string"
            },
            "MultiValueAnswer": {
              "type": "boolean"
            },
            "Name": {
              "type": "string"
            },
            "Region": {
              "type": "string"
            },
            "ResourceRecords": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SetIdentifier": {
              "type": "string"
            },
            "TTL": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "Weight": {
              "type": "number"
            }
          },
          "required": ["Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::RecordSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53::RecordSet.AliasTarget": {
      "additionalProperties": false,
      "properties": {
        "DNSName": {
          "type": "string"
        },
        "EvaluateTargetHealth": {
          "type": "boolean"
        },
        "HostedZoneId": {
          "type": "string"
        }
      },
      "required": ["DNSName", "HostedZoneId"],
      "type": "object"
    },
    "AWS::Route53::RecordSet.CidrRoutingConfig": {
      "additionalProperties": false,
      "properties": {
        "CollectionId": {
          "type": "string"
        },
        "LocationName": {
          "type": "string"
        }
      },
      "required": ["CollectionId", "LocationName"],
      "type": "object"
    },
    "AWS::Route53::RecordSet.GeoLocation": {
      "additionalProperties": false,
      "properties": {
        "ContinentCode": {
          "type": "string"
        },
        "CountryCode": {
          "type": "string"
        },
        "SubdivisionCode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53::RecordSetGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Comment": {
              "type": "string"
            },
            "HostedZoneId": {
              "type": "string"
            },
            "HostedZoneName": {
              "type": "string"
            },
            "RecordSets": {
              "items": {
                "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53::RecordSetGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53::RecordSetGroup.AliasTarget": {
      "additionalProperties": false,
      "properties": {
        "DNSName": {
          "type": "string"
        },
        "EvaluateTargetHealth": {
          "type": "boolean"
        },
        "HostedZoneId": {
          "type": "string"
        }
      },
      "required": ["DNSName", "HostedZoneId"],
      "type": "object"
    },
    "AWS::Route53::RecordSetGroup.CidrRoutingConfig": {
      "additionalProperties": false,
      "properties": {
        "CollectionId": {
          "type": "string"
        },
        "LocationName": {
          "type": "string"
        }
      },
      "required": ["CollectionId", "LocationName"],
      "type": "object"
    },
    "AWS::Route53::RecordSetGroup.GeoLocation": {
      "additionalProperties": false,
      "properties": {
        "ContinentCode": {
          "type": "string"
        },
        "CountryCode": {
          "type": "string"
        },
        "SubdivisionCode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53::RecordSetGroup.RecordSet": {
      "additionalProperties": false,
      "properties": {
        "AliasTarget": {
          "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget"
        },
        "CidrRoutingConfig": {
          "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig"
        },
        "Failover": {
          "type": "string"
        },
        "GeoLocation": {
          "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation"
        },
        "HealthCheckId": {
          "type": "string"
        },
        "HostedZoneId": {
          "type": "string"
        },
        "HostedZoneName": {
          "type": "string"
        },
        "MultiValueAnswer": {
          "type": "boolean"
        },
        "Name": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "ResourceRecords": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SetIdentifier": {
          "type": "string"
        },
        "TTL": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["Name", "Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::Cluster": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterEndpoints": {
              "items": {
                "$ref": "#/definitions/AWS::Route53RecoveryControl::Cluster.ClusterEndpoint"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryControl::Cluster"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::Cluster.ClusterEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53RecoveryControl::ControlPanel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryControl::ControlPanel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::RoutingControl": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClusterArn": {
              "type": "string"
            },
            "ControlPanelArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryControl::RoutingControl"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::SafetyRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssertionRule": {
              "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.AssertionRule"
            },
            "ControlPanelArn": {
              "type": "string"
            },
            "GatingRule": {
              "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.GatingRule"
            },
            "Name": {
              "type": "string"
            },
            "RuleConfig": {
              "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ControlPanelArn", "Name", "RuleConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryControl::SafetyRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::SafetyRule.AssertionRule": {
      "additionalProperties": false,
      "properties": {
        "AssertedControls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WaitPeriodMs": {
          "type": "number"
        }
      },
      "required": ["AssertedControls", "WaitPeriodMs"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::SafetyRule.GatingRule": {
      "additionalProperties": false,
      "properties": {
        "GatingControls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TargetControls": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "WaitPeriodMs": {
          "type": "number"
        }
      },
      "required": ["GatingControls", "TargetControls", "WaitPeriodMs"],
      "type": "object"
    },
    "AWS::Route53RecoveryControl::SafetyRule.RuleConfig": {
      "additionalProperties": false,
      "properties": {
        "Inverted": {
          "type": "boolean"
        },
        "Threshold": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Inverted", "Threshold", "Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::Cell": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CellName": {
              "type": "string"
            },
            "Cells": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryReadiness::Cell"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ReadinessCheck": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ReadinessCheckName": {
              "type": "string"
            },
            "ResourceSetName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryReadiness::ReadinessCheck"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::RecoveryGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Cells": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RecoveryGroupName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryReadiness::RecoveryGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceSetName": {
              "type": "string"
            },
            "ResourceSetType": {
              "type": "string"
            },
            "Resources": {
              "items": {
                "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.Resource"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ResourceSetType", "Resources"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53RecoveryReadiness::ResourceSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource": {
      "additionalProperties": false,
      "properties": {
        "DomainName": {
          "type": "string"
        },
        "HostedZoneArn": {
          "type": "string"
        },
        "RecordSetId": {
          "type": "string"
        },
        "RecordType": {
          "type": "string"
        },
        "TargetResource": {
          "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.TargetResource"
        }
      },
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet.NLBResource": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord": {
      "additionalProperties": false,
      "properties": {
        "DomainName": {
          "type": "string"
        },
        "RecordSetId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet.Resource": {
      "additionalProperties": false,
      "properties": {
        "ComponentId": {
          "type": "string"
        },
        "DnsTargetResource": {
          "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource"
        },
        "ReadinessScopes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ResourceArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Route53RecoveryReadiness::ResourceSet.TargetResource": {
      "additionalProperties": false,
      "properties": {
        "NLBResource": {
          "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.NLBResource"
        },
        "R53Resource": {
          "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord"
        }
      },
      "type": "object"
    },
    "AWS::Route53Resolver::FirewallDomainList": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainFileUrl": {
              "type": "string"
            },
            "Domains": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::FirewallDomainList"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53Resolver::FirewallRuleGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FirewallRules": {
              "items": {
                "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroup.FirewallRule"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::FirewallRuleGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53Resolver::FirewallRuleGroup.FirewallRule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        },
        "BlockOverrideDnsType": {
          "type": "string"
        },
        "BlockOverrideDomain": {
          "type": "string"
        },
        "BlockOverrideTtl": {
          "type": "number"
        },
        "BlockResponse": {
          "type": "string"
        },
        "FirewallDomainListId": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        }
      },
      "required": ["Action", "FirewallDomainListId", "Priority"],
      "type": "object"
    },
    "AWS::Route53Resolver::FirewallRuleGroupAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FirewallRuleGroupId": {
              "type": "string"
            },
            "MutationProtection": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": ["FirewallRuleGroupId", "Priority", "VpcId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::FirewallRuleGroupAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AutodefinedReverseFlag": {
              "type": "string"
            },
            "ResourceId": {
              "type": "string"
            }
          },
          "required": ["AutodefinedReverseFlag", "ResourceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverDNSSECConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverDNSSECConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverEndpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Direction": {
              "type": "string"
            },
            "IpAddresses": {
              "items": {
                "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "OutpostArn": {
              "type": "string"
            },
            "PreferredInstanceType": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Direction", "IpAddresses", "SecurityGroupIds"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverEndpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest": {
      "additionalProperties": false,
      "properties": {
        "Ip": {
          "type": "string"
        },
        "SubnetId": {
          "type": "string"
        }
      },
      "required": ["SubnetId"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverQueryLoggingConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DestinationArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverQueryLoggingConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResolverQueryLogConfigId": {
              "type": "string"
            },
            "ResourceId": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": [
            "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation"
          ],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ResolverEndpointId": {
              "type": "string"
            },
            "RuleType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetIps": {
              "items": {
                "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule.TargetAddress"
              },
              "type": "array"
            }
          },
          "required": ["DomainName", "RuleType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverRule.TargetAddress": {
      "additionalProperties": false,
      "properties": {
        "Ip": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        }
      },
      "required": ["Ip"],
      "type": "object"
    },
    "AWS::Route53Resolver::ResolverRuleAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "ResolverRuleId": {
              "type": "string"
            },
            "VPCId": {
              "type": "string"
            }
          },
          "required": ["ResolverRuleId", "VPCId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Route53Resolver::ResolverRuleAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::AccessPoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Bucket": {
              "type": "string"
            },
            "BucketAccountId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Policy": {
              "type": "object"
            },
            "PolicyStatus": {
              "$ref": "#/definitions/AWS::S3::AccessPoint.PolicyStatus"
            },
            "PublicAccessBlockConfiguration": {
              "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration"
            },
            "VpcConfiguration": {
              "$ref": "#/definitions/AWS::S3::AccessPoint.VpcConfiguration"
            }
          },
          "required": ["Bucket"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::AccessPoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::AccessPoint.PolicyStatus": {
      "additionalProperties": false,
      "properties": {
        "IsPublic": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::AccessPoint.PublicAccessBlockConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlockPublicAcls": {
          "type": "boolean"
        },
        "BlockPublicPolicy": {
          "type": "boolean"
        },
        "IgnorePublicAcls": {
          "type": "boolean"
        },
        "RestrictPublicBuckets": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::AccessPoint.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccelerateConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.AccelerateConfiguration"
            },
            "AccessControl": {
              "type": "string"
            },
            "AnalyticsConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::S3::Bucket.AnalyticsConfiguration"
              },
              "type": "array"
            },
            "BucketEncryption": {
              "$ref": "#/definitions/AWS::S3::Bucket.BucketEncryption"
            },
            "BucketName": {
              "type": "string"
            },
            "CorsConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration"
            },
            "IntelligentTieringConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration"
              },
              "type": "array"
            },
            "InventoryConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration"
              },
              "type": "array"
            },
            "LifecycleConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.LifecycleConfiguration"
            },
            "LoggingConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.LoggingConfiguration"
            },
            "MetricsConfigurations": {
              "items": {
                "$ref": "#/definitions/AWS::S3::Bucket.MetricsConfiguration"
              },
              "type": "array"
            },
            "NotificationConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.NotificationConfiguration"
            },
            "ObjectLockConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockConfiguration"
            },
            "ObjectLockEnabled": {
              "type": "boolean"
            },
            "OwnershipControls": {
              "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls"
            },
            "PublicAccessBlockConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration"
            },
            "ReplicationConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.ReplicationConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VersioningConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.VersioningConfiguration"
            },
            "WebsiteConfiguration": {
              "$ref": "#/definitions/AWS::S3::Bucket.WebsiteConfiguration"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::Bucket"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::S3::Bucket.AbortIncompleteMultipartUpload": {
      "additionalProperties": false,
      "properties": {
        "DaysAfterInitiation": {
          "type": "number"
        }
      },
      "required": ["DaysAfterInitiation"],
      "type": "object"
    },
    "AWS::S3::Bucket.AccelerateConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccelerationStatus": {
          "type": "string"
        }
      },
      "required": ["AccelerationStatus"],
      "type": "object"
    },
    "AWS::S3::Bucket.AccessControlTranslation": {
      "additionalProperties": false,
      "properties": {
        "Owner": {
          "type": "string"
        }
      },
      "required": ["Owner"],
      "type": "object"
    },
    "AWS::S3::Bucket.AnalyticsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "StorageClassAnalysis": {
          "$ref": "#/definitions/AWS::S3::Bucket.StorageClassAnalysis"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
          },
          "type": "array"
        }
      },
      "required": ["Id", "StorageClassAnalysis"],
      "type": "object"
    },
    "AWS::S3::Bucket.BucketEncryption": {
      "additionalProperties": false,
      "properties": {
        "ServerSideEncryptionConfiguration": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionRule"
          },
          "type": "array"
        }
      },
      "required": ["ServerSideEncryptionConfiguration"],
      "type": "object"
    },
    "AWS::S3::Bucket.CorsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "CorsRules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.CorsRule"
          },
          "type": "array"
        }
      },
      "required": ["CorsRules"],
      "type": "object"
    },
    "AWS::S3::Bucket.CorsRule": {
      "additionalProperties": false,
      "properties": {
        "AllowedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedMethods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "AllowedOrigins": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ExposedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Id": {
          "type": "string"
        },
        "MaxAge": {
          "type": "number"
        }
      },
      "required": ["AllowedMethods", "AllowedOrigins"],
      "type": "object"
    },
    "AWS::S3::Bucket.DataExport": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::S3::Bucket.Destination"
        },
        "OutputSchemaVersion": {
          "type": "string"
        }
      },
      "required": ["Destination", "OutputSchemaVersion"],
      "type": "object"
    },
    "AWS::S3::Bucket.DefaultRetention": {
      "additionalProperties": false,
      "properties": {
        "Days": {
          "type": "number"
        },
        "Mode": {
          "type": "string"
        },
        "Years": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.DeleteMarkerReplication": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.Destination": {
      "additionalProperties": false,
      "properties": {
        "BucketAccountId": {
          "type": "string"
        },
        "BucketArn": {
          "type": "string"
        },
        "Format": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["BucketArn", "Format"],
      "type": "object"
    },
    "AWS::S3::Bucket.EncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ReplicaKmsKeyID": {
          "type": "string"
        }
      },
      "required": ["ReplicaKmsKeyID"],
      "type": "object"
    },
    "AWS::S3::Bucket.EventBridgeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EventBridgeEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.FilterRule": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::S3::Bucket.IntelligentTieringConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
          },
          "type": "array"
        },
        "Tierings": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.Tiering"
          },
          "type": "array"
        }
      },
      "required": ["Id", "Status", "Tierings"],
      "type": "object"
    },
    "AWS::S3::Bucket.InventoryConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "$ref": "#/definitions/AWS::S3::Bucket.Destination"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Id": {
          "type": "string"
        },
        "IncludedObjectVersions": {
          "type": "string"
        },
        "OptionalFields": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Prefix": {
          "type": "string"
        },
        "ScheduleFrequency": {
          "type": "string"
        }
      },
      "required": [
        "Destination",
        "Enabled",
        "Id",
        "IncludedObjectVersions",
        "ScheduleFrequency"
      ],
      "type": "object"
    },
    "AWS::S3::Bucket.LambdaConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Event": {
          "type": "string"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter"
        },
        "Function": {
          "type": "string"
        }
      },
      "required": ["Event", "Function"],
      "type": "object"
    },
    "AWS::S3::Bucket.LifecycleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.Rule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::S3::Bucket.LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DestinationBucketName": {
          "type": "string"
        },
        "LogFilePrefix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.Metrics": {
      "additionalProperties": false,
      "properties": {
        "EventThreshold": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.MetricsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccessPointArn": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
          },
          "type": "array"
        }
      },
      "required": ["Id"],
      "type": "object"
    },
    "AWS::S3::Bucket.NoncurrentVersionExpiration": {
      "additionalProperties": false,
      "properties": {
        "NewerNoncurrentVersions": {
          "type": "number"
        },
        "NoncurrentDays": {
          "type": "number"
        }
      },
      "required": ["NoncurrentDays"],
      "type": "object"
    },
    "AWS::S3::Bucket.NoncurrentVersionTransition": {
      "additionalProperties": false,
      "properties": {
        "NewerNoncurrentVersions": {
          "type": "number"
        },
        "StorageClass": {
          "type": "string"
        },
        "TransitionInDays": {
          "type": "number"
        }
      },
      "required": ["StorageClass", "TransitionInDays"],
      "type": "object"
    },
    "AWS::S3::Bucket.NotificationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "EventBridgeConfiguration": {
          "$ref": "#/definitions/AWS::S3::Bucket.EventBridgeConfiguration"
        },
        "LambdaConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.LambdaConfiguration"
          },
          "type": "array"
        },
        "QueueConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.QueueConfiguration"
          },
          "type": "array"
        },
        "TopicConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TopicConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.NotificationFilter": {
      "additionalProperties": false,
      "properties": {
        "S3Key": {
          "$ref": "#/definitions/AWS::S3::Bucket.S3KeyFilter"
        }
      },
      "required": ["S3Key"],
      "type": "object"
    },
    "AWS::S3::Bucket.ObjectLockConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ObjectLockEnabled": {
          "type": "string"
        },
        "Rule": {
          "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockRule"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.ObjectLockRule": {
      "additionalProperties": false,
      "properties": {
        "DefaultRetention": {
          "$ref": "#/definitions/AWS::S3::Bucket.DefaultRetention"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.OwnershipControls": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::S3::Bucket.OwnershipControlsRule": {
      "additionalProperties": false,
      "properties": {
        "ObjectOwnership": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.PublicAccessBlockConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlockPublicAcls": {
          "type": "boolean"
        },
        "BlockPublicPolicy": {
          "type": "boolean"
        },
        "IgnorePublicAcls": {
          "type": "boolean"
        },
        "RestrictPublicBuckets": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.QueueConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Event": {
          "type": "string"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter"
        },
        "Queue": {
          "type": "string"
        }
      },
      "required": ["Event", "Queue"],
      "type": "object"
    },
    "AWS::S3::Bucket.RedirectAllRequestsTo": {
      "additionalProperties": false,
      "properties": {
        "HostName": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "required": ["HostName"],
      "type": "object"
    },
    "AWS::S3::Bucket.RedirectRule": {
      "additionalProperties": false,
      "properties": {
        "HostName": {
          "type": "string"
        },
        "HttpRedirectCode": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        },
        "ReplaceKeyPrefixWith": {
          "type": "string"
        },
        "ReplaceKeyWith": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicaModifications": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Role": {
          "type": "string"
        },
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRule"
          },
          "type": "array"
        }
      },
      "required": ["Role", "Rules"],
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationDestination": {
      "additionalProperties": false,
      "properties": {
        "AccessControlTranslation": {
          "$ref": "#/definitions/AWS::S3::Bucket.AccessControlTranslation"
        },
        "Account": {
          "type": "string"
        },
        "Bucket": {
          "type": "string"
        },
        "EncryptionConfiguration": {
          "$ref": "#/definitions/AWS::S3::Bucket.EncryptionConfiguration"
        },
        "Metrics": {
          "$ref": "#/definitions/AWS::S3::Bucket.Metrics"
        },
        "ReplicationTime": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTime"
        },
        "StorageClass": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationRule": {
      "additionalProperties": false,
      "properties": {
        "DeleteMarkerReplication": {
          "$ref": "#/definitions/AWS::S3::Bucket.DeleteMarkerReplication"
        },
        "Destination": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationDestination"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleFilter"
        },
        "Id": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "SourceSelectionCriteria": {
          "$ref": "#/definitions/AWS::S3::Bucket.SourceSelectionCriteria"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Destination", "Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationRuleAndOperator": {
      "additionalProperties": false,
      "properties": {
        "Prefix": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationRuleFilter": {
      "additionalProperties": false,
      "properties": {
        "And": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleAndOperator"
        },
        "Prefix": {
          "type": "string"
        },
        "TagFilter": {
          "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationTime": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        },
        "Time": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue"
        }
      },
      "required": ["Status", "Time"],
      "type": "object"
    },
    "AWS::S3::Bucket.ReplicationTimeValue": {
      "additionalProperties": false,
      "properties": {
        "Minutes": {
          "type": "number"
        }
      },
      "required": ["Minutes"],
      "type": "object"
    },
    "AWS::S3::Bucket.RoutingRule": {
      "additionalProperties": false,
      "properties": {
        "RedirectRule": {
          "$ref": "#/definitions/AWS::S3::Bucket.RedirectRule"
        },
        "RoutingRuleCondition": {
          "$ref": "#/definitions/AWS::S3::Bucket.RoutingRuleCondition"
        }
      },
      "required": ["RedirectRule"],
      "type": "object"
    },
    "AWS::S3::Bucket.RoutingRuleCondition": {
      "additionalProperties": false,
      "properties": {
        "HttpErrorCodeReturnedEquals": {
          "type": "string"
        },
        "KeyPrefixEquals": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.Rule": {
      "additionalProperties": false,
      "properties": {
        "AbortIncompleteMultipartUpload": {
          "$ref": "#/definitions/AWS::S3::Bucket.AbortIncompleteMultipartUpload"
        },
        "ExpirationDate": {
          "type": "string"
        },
        "ExpirationInDays": {
          "type": "number"
        },
        "ExpiredObjectDeleteMarker": {
          "type": "boolean"
        },
        "Id": {
          "type": "string"
        },
        "NoncurrentVersionExpiration": {
          "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionExpiration"
        },
        "NoncurrentVersionExpirationInDays": {
          "type": "number"
        },
        "NoncurrentVersionTransition": {
          "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition"
        },
        "NoncurrentVersionTransitions": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition"
          },
          "type": "array"
        },
        "ObjectSizeGreaterThan": {
          "type": "number"
        },
        "ObjectSizeLessThan": {
          "type": "number"
        },
        "Prefix": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "TagFilters": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.TagFilter"
          },
          "type": "array"
        },
        "Transition": {
          "$ref": "#/definitions/AWS::S3::Bucket.Transition"
        },
        "Transitions": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.Transition"
          },
          "type": "array"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.S3KeyFilter": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.FilterRule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::S3::Bucket.ServerSideEncryptionByDefault": {
      "additionalProperties": false,
      "properties": {
        "KMSMasterKeyID": {
          "type": "string"
        },
        "SSEAlgorithm": {
          "type": "string"
        }
      },
      "required": ["SSEAlgorithm"],
      "type": "object"
    },
    "AWS::S3::Bucket.ServerSideEncryptionRule": {
      "additionalProperties": false,
      "properties": {
        "BucketKeyEnabled": {
          "type": "boolean"
        },
        "ServerSideEncryptionByDefault": {
          "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionByDefault"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.SourceSelectionCriteria": {
      "additionalProperties": false,
      "properties": {
        "ReplicaModifications": {
          "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications"
        },
        "SseKmsEncryptedObjects": {
          "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.SseKmsEncryptedObjects": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.StorageClassAnalysis": {
      "additionalProperties": false,
      "properties": {
        "DataExport": {
          "$ref": "#/definitions/AWS::S3::Bucket.DataExport"
        }
      },
      "type": "object"
    },
    "AWS::S3::Bucket.TagFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::S3::Bucket.Tiering": {
      "additionalProperties": false,
      "properties": {
        "AccessTier": {
          "type": "string"
        },
        "Days": {
          "type": "number"
        }
      },
      "required": ["AccessTier", "Days"],
      "type": "object"
    },
    "AWS::S3::Bucket.TopicConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Event": {
          "type": "string"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter"
        },
        "Topic": {
          "type": "string"
        }
      },
      "required": ["Event", "Topic"],
      "type": "object"
    },
    "AWS::S3::Bucket.Transition": {
      "additionalProperties": false,
      "properties": {
        "StorageClass": {
          "type": "string"
        },
        "TransitionDate": {
          "type": "string"
        },
        "TransitionInDays": {
          "type": "number"
        }
      },
      "required": ["StorageClass"],
      "type": "object"
    },
    "AWS::S3::Bucket.VersioningConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3::Bucket.WebsiteConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ErrorDocument": {
          "type": "string"
        },
        "IndexDocument": {
          "type": "string"
        },
        "RedirectAllRequestsTo": {
          "$ref": "#/definitions/AWS::S3::Bucket.RedirectAllRequestsTo"
        },
        "RoutingRules": {
          "items": {
            "$ref": "#/definitions/AWS::S3::Bucket.RoutingRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::S3::BucketPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Bucket": {
              "type": "string"
            },
            "PolicyDocument": {
              "type": "object"
            }
          },
          "required": ["Bucket", "PolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::BucketPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::MultiRegionAccessPoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "PublicAccessBlockConfiguration": {
              "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration"
            },
            "Regions": {
              "items": {
                "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.Region"
              },
              "type": "array"
            }
          },
          "required": ["Regions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::MultiRegionAccessPoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlockPublicAcls": {
          "type": "boolean"
        },
        "BlockPublicPolicy": {
          "type": "boolean"
        },
        "IgnorePublicAcls": {
          "type": "boolean"
        },
        "RestrictPublicBuckets": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::MultiRegionAccessPoint.Region": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        }
      },
      "required": ["Bucket"],
      "type": "object"
    },
    "AWS::S3::MultiRegionAccessPointPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MrapName": {
              "type": "string"
            },
            "Policy": {
              "type": "object"
            }
          },
          "required": ["MrapName", "Policy"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::MultiRegionAccessPointPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::MultiRegionAccessPointPolicy.PolicyStatus": {
      "additionalProperties": false,
      "properties": {
        "IsPublic": {
          "type": "string"
        }
      },
      "required": ["IsPublic"],
      "type": "object"
    },
    "AWS::S3::StorageLens": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "StorageLensConfiguration": {
              "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["StorageLensConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3::StorageLens"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3::StorageLens.AccountLevel": {
      "additionalProperties": false,
      "properties": {
        "ActivityMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics"
        },
        "AdvancedCostOptimizationMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics"
        },
        "AdvancedDataProtectionMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics"
        },
        "BucketLevel": {
          "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel"
        },
        "DetailedStatusCodesMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics"
        }
      },
      "required": ["BucketLevel"],
      "type": "object"
    },
    "AWS::S3::StorageLens.ActivityMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.AdvancedCostOptimizationMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.AdvancedDataProtectionMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.AwsOrg": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::S3::StorageLens.BucketLevel": {
      "additionalProperties": false,
      "properties": {
        "ActivityMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics"
        },
        "AdvancedCostOptimizationMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics"
        },
        "AdvancedDataProtectionMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics"
        },
        "DetailedStatusCodesMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics"
        },
        "PrefixLevel": {
          "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.BucketsAndRegions": {
      "additionalProperties": false,
      "properties": {
        "Buckets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Regions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.CloudWatchMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        }
      },
      "required": ["IsEnabled"],
      "type": "object"
    },
    "AWS::S3::StorageLens.DataExport": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.CloudWatchMetrics"
        },
        "S3BucketDestination": {
          "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.DetailedStatusCodesMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.Encryption": {
      "additionalProperties": false,
      "properties": {
        "SSEKMS": {
          "$ref": "#/definitions/AWS::S3::StorageLens.SSEKMS"
        },
        "SSES3": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.PrefixLevel": {
      "additionalProperties": false,
      "properties": {
        "StorageMetrics": {
          "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics"
        }
      },
      "required": ["StorageMetrics"],
      "type": "object"
    },
    "AWS::S3::StorageLens.PrefixLevelStorageMetrics": {
      "additionalProperties": false,
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        },
        "SelectionCriteria": {
          "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.S3BucketDestination": {
      "additionalProperties": false,
      "properties": {
        "AccountId": {
          "type": "string"
        },
        "Arn": {
          "type": "string"
        },
        "Encryption": {
          "$ref": "#/definitions/AWS::S3::StorageLens.Encryption"
        },
        "Format": {
          "type": "string"
        },
        "OutputSchemaVersion": {
          "type": "string"
        },
        "Prefix": {
          "type": "string"
        }
      },
      "required": ["AccountId", "Arn", "Format", "OutputSchemaVersion"],
      "type": "object"
    },
    "AWS::S3::StorageLens.SSEKMS": {
      "additionalProperties": false,
      "properties": {
        "KeyId": {
          "type": "string"
        }
      },
      "required": ["KeyId"],
      "type": "object"
    },
    "AWS::S3::StorageLens.SelectionCriteria": {
      "additionalProperties": false,
      "properties": {
        "Delimiter": {
          "type": "string"
        },
        "MaxDepth": {
          "type": "number"
        },
        "MinStorageBytesPercentage": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::S3::StorageLens.StorageLensConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AccountLevel": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel"
        },
        "AwsOrg": {
          "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg"
        },
        "DataExport": {
          "$ref": "#/definitions/AWS::S3::StorageLens.DataExport"
        },
        "Exclude": {
          "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions"
        },
        "Id": {
          "type": "string"
        },
        "Include": {
          "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions"
        },
        "IsEnabled": {
          "type": "boolean"
        },
        "StorageLensArn": {
          "type": "string"
        }
      },
      "required": ["AccountLevel", "Id", "IsEnabled"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "ObjectLambdaConfiguration": {
              "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration"
            }
          },
          "required": ["ObjectLambdaConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3ObjectLambda::AccessPoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.AwsLambda": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "FunctionPayload": {
          "type": "string"
        }
      },
      "required": ["FunctionArn"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.ContentTransformation": {
      "additionalProperties": false,
      "properties": {
        "AwsLambda": {
          "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.AwsLambda"
        }
      },
      "required": ["AwsLambda"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AllowedFeatures": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "CloudWatchMetricsEnabled": {
          "type": "boolean"
        },
        "SupportingAccessPoint": {
          "type": "string"
        },
        "TransformationConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration"
          },
          "type": "array"
        }
      },
      "required": ["SupportingAccessPoint", "TransformationConfigurations"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.PolicyStatus": {
      "additionalProperties": false,
      "properties": {
        "IsPublic": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.PublicAccessBlockConfiguration": {
      "additionalProperties": false,
      "properties": {
        "BlockPublicAcls": {
          "type": "boolean"
        },
        "BlockPublicPolicy": {
          "type": "boolean"
        },
        "IgnorePublicAcls": {
          "type": "boolean"
        },
        "RestrictPublicBuckets": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ContentTransformation": {
          "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ContentTransformation"
        }
      },
      "required": ["Actions", "ContentTransformation"],
      "type": "object"
    },
    "AWS::S3ObjectLambda::AccessPointPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ObjectLambdaAccessPoint": {
              "type": "string"
            },
            "PolicyDocument": {
              "type": "object"
            }
          },
          "required": ["ObjectLambdaAccessPoint", "PolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3ObjectLambda::AccessPointPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3Outposts::AccessPoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Bucket": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Policy": {
              "type": "object"
            },
            "VpcConfiguration": {
              "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration"
            }
          },
          "required": ["Bucket", "Name", "VpcConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3Outposts::AccessPoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3Outposts::AccessPoint.VpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::S3Outposts::Bucket": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BucketName": {
              "type": "string"
            },
            "LifecycleConfiguration": {
              "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration"
            },
            "OutpostId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["BucketName", "OutpostId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3Outposts::Bucket"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": {
      "additionalProperties": false,
      "properties": {
        "DaysAfterInitiation": {
          "type": "number"
        }
      },
      "required": ["DaysAfterInitiation"],
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.Filter": {
      "additionalProperties": false,
      "properties": {
        "AndOperator": {
          "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterAndOperator"
        },
        "Prefix": {
          "type": "string"
        },
        "Tag": {
          "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterTag"
        }
      },
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.FilterAndOperator": {
      "additionalProperties": false,
      "properties": {
        "Prefix": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterTag"
          },
          "type": "array"
        }
      },
      "required": ["Tags"],
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.FilterTag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.LifecycleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Rules": {
          "items": {
            "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule"
          },
          "type": "array"
        }
      },
      "required": ["Rules"],
      "type": "object"
    },
    "AWS::S3Outposts::Bucket.Rule": {
      "additionalProperties": false,
      "properties": {
        "AbortIncompleteMultipartUpload": {
          "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload"
        },
        "ExpirationDate": {
          "type": "string"
        },
        "ExpirationInDays": {
          "type": "number"
        },
        "Filter": {
          "$ref": "#/definitions/AWS::S3Outposts::Bucket.Filter"
        },
        "Id": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Status"],
      "type": "object"
    },
    "AWS::S3Outposts::BucketPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Bucket": {
              "type": "string"
            },
            "PolicyDocument": {
              "type": "object"
            }
          },
          "required": ["Bucket", "PolicyDocument"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3Outposts::BucketPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3Outposts::Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessType": {
              "type": "string"
            },
            "CustomerOwnedIpv4Pool": {
              "type": "string"
            },
            "OutpostId": {
              "type": "string"
            },
            "SecurityGroupId": {
              "type": "string"
            },
            "SubnetId": {
              "type": "string"
            }
          },
          "required": ["OutpostId", "SecurityGroupId", "SubnetId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::S3Outposts::Endpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::S3Outposts::Endpoint.NetworkInterface": {
      "additionalProperties": false,
      "properties": {
        "NetworkInterfaceId": {
          "type": "string"
        }
      },
      "required": ["NetworkInterfaceId"],
      "type": "object"
    },
    "AWS::SDB::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SDB::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeliveryOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.DeliveryOptions"
            },
            "Name": {
              "type": "string"
            },
            "ReputationOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.ReputationOptions"
            },
            "SendingOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.SendingOptions"
            },
            "SuppressionOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.SuppressionOptions"
            },
            "TrackingOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.TrackingOptions"
            },
            "VdmOptions": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSet.VdmOptions"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ConfigurationSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.DashboardOptions": {
      "additionalProperties": false,
      "properties": {
        "EngagementMetrics": {
          "type": "string"
        }
      },
      "required": ["EngagementMetrics"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.DeliveryOptions": {
      "additionalProperties": false,
      "properties": {
        "SendingPoolName": {
          "type": "string"
        },
        "TlsPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.GuardianOptions": {
      "additionalProperties": false,
      "properties": {
        "OptimizedSharedDelivery": {
          "type": "string"
        }
      },
      "required": ["OptimizedSharedDelivery"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.ReputationOptions": {
      "additionalProperties": false,
      "properties": {
        "ReputationMetricsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.SendingOptions": {
      "additionalProperties": false,
      "properties": {
        "SendingEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.SuppressionOptions": {
      "additionalProperties": false,
      "properties": {
        "SuppressedReasons": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.TrackingOptions": {
      "additionalProperties": false,
      "properties": {
        "CustomRedirectDomain": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSet.VdmOptions": {
      "additionalProperties": false,
      "properties": {
        "DashboardOptions": {
          "$ref": "#/definitions/AWS::SES::ConfigurationSet.DashboardOptions"
        },
        "GuardianOptions": {
          "$ref": "#/definitions/AWS::SES::ConfigurationSet.GuardianOptions"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigurationSetName": {
              "type": "string"
            },
            "EventDestination": {
              "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.EventDestination"
            }
          },
          "required": ["ConfigurationSetName", "EventDestination"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ConfigurationSetEventDestination"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination": {
      "additionalProperties": false,
      "properties": {
        "DimensionConfigurations": {
          "items": {
            "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DefaultDimensionValue": {
          "type": "string"
        },
        "DimensionName": {
          "type": "string"
        },
        "DimensionValueSource": {
          "type": "string"
        }
      },
      "required": [
        "DefaultDimensionValue",
        "DimensionName",
        "DimensionValueSource"
      ],
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination.EventDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchDestination": {
          "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination"
        },
        "Enabled": {
          "type": "boolean"
        },
        "KinesisFirehoseDestination": {
          "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination"
        },
        "MatchingEventTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "SnsDestination": {
          "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.SnsDestination"
        }
      },
      "required": ["MatchingEventTypes"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination": {
      "additionalProperties": false,
      "properties": {
        "DeliveryStreamARN": {
          "type": "string"
        },
        "IAMRoleARN": {
          "type": "string"
        }
      },
      "required": ["DeliveryStreamARN", "IAMRoleARN"],
      "type": "object"
    },
    "AWS::SES::ConfigurationSetEventDestination.SnsDestination": {
      "additionalProperties": false,
      "properties": {
        "TopicARN": {
          "type": "string"
        }
      },
      "required": ["TopicARN"],
      "type": "object"
    },
    "AWS::SES::ContactList": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContactListName": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Topics": {
              "items": {
                "$ref": "#/definitions/AWS::SES::ContactList.Topic"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ContactList"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::ContactList.Topic": {
      "additionalProperties": false,
      "properties": {
        "DefaultSubscriptionStatus": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "DisplayName": {
          "type": "string"
        },
        "TopicName": {
          "type": "string"
        }
      },
      "required": ["DefaultSubscriptionStatus", "DisplayName", "TopicName"],
      "type": "object"
    },
    "AWS::SES::DedicatedIpPool": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PoolName": {
              "type": "string"
            },
            "ScalingMode": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::DedicatedIpPool"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::EmailIdentity": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConfigurationSetAttributes": {
              "$ref": "#/definitions/AWS::SES::EmailIdentity.ConfigurationSetAttributes"
            },
            "DkimAttributes": {
              "$ref": "#/definitions/AWS::SES::EmailIdentity.DkimAttributes"
            },
            "DkimSigningAttributes": {
              "$ref": "#/definitions/AWS::SES::EmailIdentity.DkimSigningAttributes"
            },
            "EmailIdentity": {
              "type": "string"
            },
            "FeedbackAttributes": {
              "$ref": "#/definitions/AWS::SES::EmailIdentity.FeedbackAttributes"
            },
            "MailFromAttributes": {
              "$ref": "#/definitions/AWS::SES::EmailIdentity.MailFromAttributes"
            }
          },
          "required": ["EmailIdentity"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::EmailIdentity"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SES::EmailIdentity.ConfigurationSetAttributes": {
      "additionalProperties": false,
      "properties": {
        "ConfigurationSetName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::EmailIdentity.DkimAttributes": {
      "additionalProperties": false,
      "properties": {
        "SigningEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SES::EmailIdentity.DkimSigningAttributes": {
      "additionalProperties": false,
      "properties": {
        "DomainSigningPrivateKey": {
          "type": "string"
        },
        "DomainSigningSelector": {
          "type": "string"
        },
        "NextSigningKeyLength": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::EmailIdentity.FeedbackAttributes": {
      "additionalProperties": false,
      "properties": {
        "EmailForwardingEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SES::EmailIdentity.MailFromAttributes": {
      "additionalProperties": false,
      "properties": {
        "BehaviorOnMxFailure": {
          "type": "string"
        },
        "MailFromDomain": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::ReceiptFilter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Filter": {
              "$ref": "#/definitions/AWS::SES::ReceiptFilter.Filter"
            }
          },
          "required": ["Filter"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ReceiptFilter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SES::ReceiptFilter.Filter": {
      "additionalProperties": false,
      "properties": {
        "IpFilter": {
          "$ref": "#/definitions/AWS::SES::ReceiptFilter.IpFilter"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["IpFilter"],
      "type": "object"
    },
    "AWS::SES::ReceiptFilter.IpFilter": {
      "additionalProperties": false,
      "properties": {
        "Cidr": {
          "type": "string"
        },
        "Policy": {
          "type": "string"
        }
      },
      "required": ["Cidr", "Policy"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "After": {
              "type": "string"
            },
            "Rule": {
              "$ref": "#/definitions/AWS::SES::ReceiptRule.Rule"
            },
            "RuleSetName": {
              "type": "string"
            }
          },
          "required": ["Rule", "RuleSetName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ReceiptRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.Action": {
      "additionalProperties": false,
      "properties": {
        "AddHeaderAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.AddHeaderAction"
        },
        "BounceAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.BounceAction"
        },
        "LambdaAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.LambdaAction"
        },
        "S3Action": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.S3Action"
        },
        "SNSAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.SNSAction"
        },
        "StopAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.StopAction"
        },
        "WorkmailAction": {
          "$ref": "#/definitions/AWS::SES::ReceiptRule.WorkmailAction"
        }
      },
      "type": "object"
    },
    "AWS::SES::ReceiptRule.AddHeaderAction": {
      "additionalProperties": false,
      "properties": {
        "HeaderName": {
          "type": "string"
        },
        "HeaderValue": {
          "type": "string"
        }
      },
      "required": ["HeaderName", "HeaderValue"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.BounceAction": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Sender": {
          "type": "string"
        },
        "SmtpReplyCode": {
          "type": "string"
        },
        "StatusCode": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["Message", "Sender", "SmtpReplyCode"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.LambdaAction": {
      "additionalProperties": false,
      "properties": {
        "FunctionArn": {
          "type": "string"
        },
        "InvocationType": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["FunctionArn"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.Rule": {
      "additionalProperties": false,
      "properties": {
        "Actions": {
          "items": {
            "$ref": "#/definitions/AWS::SES::ReceiptRule.Action"
          },
          "type": "array"
        },
        "Enabled": {
          "type": "boolean"
        },
        "Name": {
          "type": "string"
        },
        "Recipients": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ScanEnabled": {
          "type": "boolean"
        },
        "TlsPolicy": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::ReceiptRule.S3Action": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "KmsKeyArn": {
          "type": "string"
        },
        "ObjectKeyPrefix": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.SNSAction": {
      "additionalProperties": false,
      "properties": {
        "Encoding": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::ReceiptRule.StopAction": {
      "additionalProperties": false,
      "properties": {
        "Scope": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["Scope"],
      "type": "object"
    },
    "AWS::SES::ReceiptRule.WorkmailAction": {
      "additionalProperties": false,
      "properties": {
        "OrganizationArn": {
          "type": "string"
        },
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["OrganizationArn"],
      "type": "object"
    },
    "AWS::SES::ReceiptRuleSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RuleSetName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::ReceiptRuleSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::Template": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Template": {
              "$ref": "#/definitions/AWS::SES::Template.Template"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::Template"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::Template.Template": {
      "additionalProperties": false,
      "properties": {
        "HtmlPart": {
          "type": "string"
        },
        "SubjectPart": {
          "type": "string"
        },
        "TemplateName": {
          "type": "string"
        },
        "TextPart": {
          "type": "string"
        }
      },
      "required": ["SubjectPart"],
      "type": "object"
    },
    "AWS::SES::VdmAttributes": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DashboardAttributes": {
              "$ref": "#/definitions/AWS::SES::VdmAttributes.DashboardAttributes"
            },
            "GuardianAttributes": {
              "$ref": "#/definitions/AWS::SES::VdmAttributes.GuardianAttributes"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SES::VdmAttributes"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SES::VdmAttributes.DashboardAttributes": {
      "additionalProperties": false,
      "properties": {
        "EngagementMetrics": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SES::VdmAttributes.GuardianAttributes": {
      "additionalProperties": false,
      "properties": {
        "OptimizedSharedDelivery": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SNS::Subscription": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeliveryPolicy": {
              "type": "object"
            },
            "Endpoint": {
              "type": "string"
            },
            "FilterPolicy": {
              "type": "object"
            },
            "FilterPolicyScope": {
              "type": "string"
            },
            "Protocol": {
              "type": "string"
            },
            "RawMessageDelivery": {
              "type": "boolean"
            },
            "RedrivePolicy": {
              "type": "object"
            },
            "Region": {
              "type": "string"
            },
            "SubscriptionRoleArn": {
              "type": "string"
            },
            "TopicArn": {
              "type": "string"
            }
          },
          "required": ["Protocol", "TopicArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SNS::Subscription"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SNS::Topic": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContentBasedDeduplication": {
              "type": "boolean"
            },
            "DataProtectionPolicy": {
              "type": "object"
            },
            "DisplayName": {
              "type": "string"
            },
            "FifoTopic": {
              "type": "boolean"
            },
            "KmsMasterKeyId": {
              "type": "string"
            },
            "SignatureVersion": {
              "type": "string"
            },
            "Subscription": {
              "items": {
                "$ref": "#/definitions/AWS::SNS::Topic.Subscription"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TopicName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SNS::Topic"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SNS::Topic.Subscription": {
      "additionalProperties": false,
      "properties": {
        "Endpoint": {
          "type": "string"
        },
        "Protocol": {
          "type": "string"
        }
      },
      "required": ["Endpoint", "Protocol"],
      "type": "object"
    },
    "AWS::SNS::TopicPolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyDocument": {
              "type": "object"
            },
            "Topics": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["PolicyDocument", "Topics"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SNS::TopicPolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SQS::Queue": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ContentBasedDeduplication": {
              "type": "boolean"
            },
            "DeduplicationScope": {
              "type": "string"
            },
            "DelaySeconds": {
              "type": "number"
            },
            "FifoQueue": {
              "type": "boolean"
            },
            "FifoThroughputLimit": {
              "type": "string"
            },
            "KmsDataKeyReusePeriodSeconds": {
              "type": "number"
            },
            "KmsMasterKeyId": {
              "type": "string"
            },
            "MaximumMessageSize": {
              "type": "number"
            },
            "MessageRetentionPeriod": {
              "type": "number"
            },
            "QueueName": {
              "type": "string"
            },
            "ReceiveMessageWaitTimeSeconds": {
              "type": "number"
            },
            "RedriveAllowPolicy": {
              "type": "object"
            },
            "RedrivePolicy": {
              "type": "object"
            },
            "SqsManagedSseEnabled": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VisibilityTimeout": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SQS::Queue"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SQS::QueuePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PolicyDocument": {
              "type": "object"
            },
            "Queues": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["PolicyDocument", "Queues"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SQS::QueuePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::Association": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApplyOnlyAtCronInterval": {
              "type": "boolean"
            },
            "AssociationName": {
              "type": "string"
            },
            "AutomationTargetParameterName": {
              "type": "string"
            },
            "CalendarNames": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ComplianceSeverity": {
              "type": "string"
            },
            "DocumentVersion": {
              "type": "string"
            },
            "InstanceId": {
              "type": "string"
            },
            "MaxConcurrency": {
              "type": "string"
            },
            "MaxErrors": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "OutputLocation": {
              "$ref": "#/definitions/AWS::SSM::Association.InstanceAssociationOutputLocation"
            },
            "Parameters": {
              "type": "object"
            },
            "ScheduleExpression": {
              "type": "string"
            },
            "ScheduleOffset": {
              "type": "number"
            },
            "SyncCompliance": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::Association.Target"
              },
              "type": "array"
            },
            "WaitForSuccessTimeoutSeconds": {
              "type": "number"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::Association"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::Association.InstanceAssociationOutputLocation": {
      "additionalProperties": false,
      "properties": {
        "S3Location": {
          "$ref": "#/definitions/AWS::SSM::Association.S3OutputLocation"
        }
      },
      "type": "object"
    },
    "AWS::SSM::Association.S3OutputLocation": {
      "additionalProperties": false,
      "properties": {
        "OutputS3BucketName": {
          "type": "string"
        },
        "OutputS3KeyPrefix": {
          "type": "string"
        },
        "OutputS3Region": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSM::Association.Target": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Values"],
      "type": "object"
    },
    "AWS::SSM::Document": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Attachments": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::Document.AttachmentsSource"
              },
              "type": "array"
            },
            "Content": {
              "type": "object"
            },
            "DocumentFormat": {
              "type": "string"
            },
            "DocumentType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Requires": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::Document.DocumentRequires"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetType": {
              "type": "string"
            },
            "UpdateMethod": {
              "type": "string"
            },
            "VersionName": {
              "type": "string"
            }
          },
          "required": ["Content"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::Document"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::Document.AttachmentsSource": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSM::Document.DocumentRequires": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowUnassociatedTargets": {
              "type": "boolean"
            },
            "Cutoff": {
              "type": "number"
            },
            "Description": {
              "type": "string"
            },
            "Duration": {
              "type": "number"
            },
            "EndDate": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Schedule": {
              "type": "string"
            },
            "ScheduleOffset": {
              "type": "number"
            },
            "ScheduleTimezone": {
              "type": "string"
            },
            "StartDate": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "AllowUnassociatedTargets",
            "Cutoff",
            "Duration",
            "Name",
            "Schedule"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::MaintenanceWindow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTarget": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "OwnerInformation": {
              "type": "string"
            },
            "ResourceType": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget.Targets"
              },
              "type": "array"
            },
            "WindowId": {
              "type": "string"
            }
          },
          "required": ["ResourceType", "Targets", "WindowId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::MaintenanceWindowTarget"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTarget.Targets": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Values"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CutoffBehavior": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "LoggingInfo": {
              "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.LoggingInfo"
            },
            "MaxConcurrency": {
              "type": "string"
            },
            "MaxErrors": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Priority": {
              "type": "number"
            },
            "ServiceRoleArn": {
              "type": "string"
            },
            "Targets": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.Target"
              },
              "type": "array"
            },
            "TaskArn": {
              "type": "string"
            },
            "TaskInvocationParameters": {
              "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters"
            },
            "TaskParameters": {
              "type": "object"
            },
            "TaskType": {
              "type": "string"
            },
            "WindowId": {
              "type": "string"
            }
          },
          "required": ["Priority", "TaskArn", "TaskType", "WindowId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::MaintenanceWindowTask"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogGroupName": {
          "type": "string"
        },
        "CloudWatchOutputEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.LoggingInfo": {
      "additionalProperties": false,
      "properties": {
        "Region": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3Prefix": {
          "type": "string"
        }
      },
      "required": ["Region", "S3Bucket"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters": {
      "additionalProperties": false,
      "properties": {
        "DocumentVersion": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters": {
      "additionalProperties": false,
      "properties": {
        "ClientContext": {
          "type": "string"
        },
        "Payload": {
          "type": "string"
        },
        "Qualifier": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchOutputConfig": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig"
        },
        "Comment": {
          "type": "string"
        },
        "DocumentHash": {
          "type": "string"
        },
        "DocumentHashType": {
          "type": "string"
        },
        "DocumentVersion": {
          "type": "string"
        },
        "NotificationConfig": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.NotificationConfig"
        },
        "OutputS3BucketName": {
          "type": "string"
        },
        "OutputS3KeyPrefix": {
          "type": "string"
        },
        "Parameters": {
          "type": "object"
        },
        "ServiceRoleArn": {
          "type": "string"
        },
        "TimeoutSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters": {
      "additionalProperties": false,
      "properties": {
        "Input": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.NotificationConfig": {
      "additionalProperties": false,
      "properties": {
        "NotificationArn": {
          "type": "string"
        },
        "NotificationEvents": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "NotificationType": {
          "type": "string"
        }
      },
      "required": ["NotificationArn"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.Target": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Values"],
      "type": "object"
    },
    "AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters": {
      "additionalProperties": false,
      "properties": {
        "MaintenanceWindowAutomationParameters": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters"
        },
        "MaintenanceWindowLambdaParameters": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters"
        },
        "MaintenanceWindowRunCommandParameters": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters"
        },
        "MaintenanceWindowStepFunctionsParameters": {
          "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters"
        }
      },
      "type": "object"
    },
    "AWS::SSM::Parameter": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AllowedPattern": {
              "type": "string"
            },
            "DataType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Policies": {
              "type": "string"
            },
            "Tags": {
              "type": "object"
            },
            "Tier": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          },
          "required": ["Type", "Value"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::Parameter"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::PatchBaseline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ApprovalRules": {
              "$ref": "#/definitions/AWS::SSM::PatchBaseline.RuleGroup"
            },
            "ApprovedPatches": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ApprovedPatchesComplianceLevel": {
              "type": "string"
            },
            "ApprovedPatchesEnableNonSecurity": {
              "type": "boolean"
            },
            "Description": {
              "type": "string"
            },
            "GlobalFilters": {
              "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup"
            },
            "Name": {
              "type": "string"
            },
            "OperatingSystem": {
              "type": "string"
            },
            "PatchGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RejectedPatches": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "RejectedPatchesAction": {
              "type": "string"
            },
            "Sources": {
              "items": {
                "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::PatchBaseline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.PatchFilter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.PatchFilterGroup": {
      "additionalProperties": false,
      "properties": {
        "PatchFilters": {
          "items": {
            "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.PatchSource": {
      "additionalProperties": false,
      "properties": {
        "Configuration": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Products": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.PatchStringDate": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.Rule": {
      "additionalProperties": false,
      "properties": {
        "ApproveAfterDays": {
          "type": "number"
        },
        "ApproveUntilDate": {
          "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchStringDate"
        },
        "ComplianceLevel": {
          "type": "string"
        },
        "EnableNonSecurity": {
          "type": "boolean"
        },
        "PatchFilterGroup": {
          "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup"
        }
      },
      "type": "object"
    },
    "AWS::SSM::PatchBaseline.RuleGroup": {
      "additionalProperties": false,
      "properties": {
        "PatchRules": {
          "items": {
            "$ref": "#/definitions/AWS::SSM::PatchBaseline.Rule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSM::ResourceDataSync": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BucketName": {
              "type": "string"
            },
            "BucketPrefix": {
              "type": "string"
            },
            "BucketRegion": {
              "type": "string"
            },
            "KMSKeyArn": {
              "type": "string"
            },
            "S3Destination": {
              "$ref": "#/definitions/AWS::SSM::ResourceDataSync.S3Destination"
            },
            "SyncFormat": {
              "type": "string"
            },
            "SyncName": {
              "type": "string"
            },
            "SyncSource": {
              "$ref": "#/definitions/AWS::SSM::ResourceDataSync.SyncSource"
            },
            "SyncType": {
              "type": "string"
            }
          },
          "required": ["SyncName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::ResourceDataSync"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSM::ResourceDataSync.AwsOrganizationsSource": {
      "additionalProperties": false,
      "properties": {
        "OrganizationSourceType": {
          "type": "string"
        },
        "OrganizationalUnits": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["OrganizationSourceType"],
      "type": "object"
    },
    "AWS::SSM::ResourceDataSync.S3Destination": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "BucketPrefix": {
          "type": "string"
        },
        "BucketRegion": {
          "type": "string"
        },
        "KMSKeyArn": {
          "type": "string"
        },
        "SyncFormat": {
          "type": "string"
        }
      },
      "required": ["BucketName", "BucketRegion", "SyncFormat"],
      "type": "object"
    },
    "AWS::SSM::ResourceDataSync.SyncSource": {
      "additionalProperties": false,
      "properties": {
        "AwsOrganizationsSource": {
          "$ref": "#/definitions/AWS::SSM::ResourceDataSync.AwsOrganizationsSource"
        },
        "IncludeFutureRegions": {
          "type": "boolean"
        },
        "SourceRegions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SourceType": {
          "type": "string"
        }
      },
      "required": ["SourceRegions", "SourceType"],
      "type": "object"
    },
    "AWS::SSM::ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Policy": {
              "type": "object"
            },
            "ResourceArn": {
              "type": "string"
            }
          },
          "required": ["Policy", "ResourceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSM::ResourcePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSMContacts::Contact": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Alias": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "Plan": {
              "items": {
                "$ref": "#/definitions/AWS::SSMContacts::Contact.Stage"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Alias", "DisplayName", "Plan", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSMContacts::Contact"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSMContacts::Contact.ChannelTargetInfo": {
      "additionalProperties": false,
      "properties": {
        "ChannelId": {
          "type": "string"
        },
        "RetryIntervalInMinutes": {
          "type": "number"
        }
      },
      "required": ["ChannelId", "RetryIntervalInMinutes"],
      "type": "object"
    },
    "AWS::SSMContacts::Contact.ContactTargetInfo": {
      "additionalProperties": false,
      "properties": {
        "ContactId": {
          "type": "string"
        },
        "IsEssential": {
          "type": "boolean"
        }
      },
      "required": ["ContactId", "IsEssential"],
      "type": "object"
    },
    "AWS::SSMContacts::Contact.Stage": {
      "additionalProperties": false,
      "properties": {
        "DurationInMinutes": {
          "type": "number"
        },
        "Targets": {
          "items": {
            "$ref": "#/definitions/AWS::SSMContacts::Contact.Targets"
          },
          "type": "array"
        }
      },
      "required": ["DurationInMinutes"],
      "type": "object"
    },
    "AWS::SSMContacts::Contact.Targets": {
      "additionalProperties": false,
      "properties": {
        "ChannelTargetInfo": {
          "$ref": "#/definitions/AWS::SSMContacts::Contact.ChannelTargetInfo"
        },
        "ContactTargetInfo": {
          "$ref": "#/definitions/AWS::SSMContacts::Contact.ContactTargetInfo"
        }
      },
      "type": "object"
    },
    "AWS::SSMContacts::ContactChannel": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ChannelAddress": {
              "type": "string"
            },
            "ChannelName": {
              "type": "string"
            },
            "ChannelType": {
              "type": "string"
            },
            "ContactId": {
              "type": "string"
            },
            "DeferActivation": {
              "type": "boolean"
            }
          },
          "required": [
            "ChannelAddress",
            "ChannelName",
            "ChannelType",
            "ContactId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSMContacts::ContactChannel"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSMIncidents::ReplicationSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeletionProtected": {
              "type": "boolean"
            },
            "Regions": {
              "items": {
                "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.ReplicationRegion"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Regions"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSMIncidents::ReplicationSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSMIncidents::ReplicationSet.RegionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SseKmsKeyId": {
          "type": "string"
        }
      },
      "required": ["SseKmsKeyId"],
      "type": "object"
    },
    "AWS::SSMIncidents::ReplicationSet.ReplicationRegion": {
      "additionalProperties": false,
      "properties": {
        "RegionConfiguration": {
          "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.RegionConfiguration"
        },
        "RegionName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Actions": {
              "items": {
                "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Action"
              },
              "type": "array"
            },
            "ChatChannel": {
              "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.ChatChannel"
            },
            "DisplayName": {
              "type": "string"
            },
            "Engagements": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "IncidentTemplate": {
              "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.IncidentTemplate"
            },
            "Integrations": {
              "items": {
                "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Integration"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["IncidentTemplate", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSMIncidents::ResponsePlan"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.Action": {
      "additionalProperties": false,
      "properties": {
        "SsmAutomation": {
          "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmAutomation"
        }
      },
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.ChatChannel": {
      "additionalProperties": false,
      "properties": {
        "ChatbotSns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.DynamicSsmParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.DynamicSsmParameterValue"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.DynamicSsmParameterValue": {
      "additionalProperties": false,
      "properties": {
        "Variable": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.IncidentTemplate": {
      "additionalProperties": false,
      "properties": {
        "DedupeString": {
          "type": "string"
        },
        "Impact": {
          "type": "number"
        },
        "IncidentTags": {
          "items": {
            "$ref": "#/definitions/Tag"
          },
          "type": "array"
        },
        "NotificationTargets": {
          "items": {
            "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem"
          },
          "type": "array"
        },
        "Summary": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        }
      },
      "required": ["Impact", "Title"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.Integration": {
      "additionalProperties": false,
      "properties": {
        "PagerDutyConfiguration": {
          "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.PagerDutyConfiguration"
        }
      },
      "required": ["PagerDutyConfiguration"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.NotificationTargetItem": {
      "additionalProperties": false,
      "properties": {
        "SnsTopicArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.PagerDutyConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "PagerDutyIncidentConfiguration": {
          "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.PagerDutyIncidentConfiguration"
        },
        "SecretId": {
          "type": "string"
        }
      },
      "required": ["Name", "PagerDutyIncidentConfiguration", "SecretId"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.PagerDutyIncidentConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ServiceId": {
          "type": "string"
        }
      },
      "required": ["ServiceId"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.SsmAutomation": {
      "additionalProperties": false,
      "properties": {
        "DocumentName": {
          "type": "string"
        },
        "DocumentVersion": {
          "type": "string"
        },
        "DynamicParameters": {
          "items": {
            "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.DynamicSsmParameter"
          },
          "type": "array"
        },
        "Parameters": {
          "items": {
            "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmParameter"
          },
          "type": "array"
        },
        "RoleArn": {
          "type": "string"
        },
        "TargetAccount": {
          "type": "string"
        }
      },
      "required": ["DocumentName", "RoleArn"],
      "type": "object"
    },
    "AWS::SSMIncidents::ResponsePlan.SsmParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Key", "Values"],
      "type": "object"
    },
    "AWS::SSO::Assignment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InstanceArn": {
              "type": "string"
            },
            "PermissionSetArn": {
              "type": "string"
            },
            "PrincipalId": {
              "type": "string"
            },
            "PrincipalType": {
              "type": "string"
            },
            "TargetId": {
              "type": "string"
            },
            "TargetType": {
              "type": "string"
            }
          },
          "required": [
            "InstanceArn",
            "PermissionSetArn",
            "PrincipalId",
            "PrincipalType",
            "TargetId",
            "TargetType"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSO::Assignment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSO::InstanceAccessControlAttributeConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessControlAttributes": {
              "items": {
                "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttribute"
              },
              "type": "array"
            },
            "InstanceArn": {
              "type": "string"
            }
          },
          "required": ["InstanceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSO::InstanceAccessControlAttributeConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttribute": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue": {
      "additionalProperties": false,
      "properties": {
        "Source": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Source"],
      "type": "object"
    },
    "AWS::SSO::PermissionSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CustomerManagedPolicyReferences": {
              "items": {
                "$ref": "#/definitions/AWS::SSO::PermissionSet.CustomerManagedPolicyReference"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "InlinePolicy": {
              "type": "object"
            },
            "InstanceArn": {
              "type": "string"
            },
            "ManagedPolicies": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            },
            "PermissionsBoundary": {
              "$ref": "#/definitions/AWS::SSO::PermissionSet.PermissionsBoundary"
            },
            "RelayStateType": {
              "type": "string"
            },
            "SessionDuration": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["InstanceArn", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SSO::PermissionSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SSO::PermissionSet.CustomerManagedPolicyReference": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::SSO::PermissionSet.PermissionsBoundary": {
      "additionalProperties": false,
      "properties": {
        "CustomerManagedPolicyReference": {
          "$ref": "#/definitions/AWS::SSO::PermissionSet.CustomerManagedPolicyReference"
        },
        "ManagedPolicyArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::App": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppName": {
              "type": "string"
            },
            "AppType": {
              "type": "string"
            },
            "DomainId": {
              "type": "string"
            },
            "ResourceSpec": {
              "$ref": "#/definitions/AWS::SageMaker::App.ResourceSpec"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserProfileName": {
              "type": "string"
            }
          },
          "required": ["AppName", "AppType", "DomainId", "UserProfileName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::App"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::App.ResourceSpec": {
      "additionalProperties": false,
      "properties": {
        "InstanceType": {
          "type": "string"
        },
        "SageMakerImageArn": {
          "type": "string"
        },
        "SageMakerImageVersionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::AppImageConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppImageConfigName": {
              "type": "string"
            },
            "KernelGatewayImageConfig": {
              "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AppImageConfigName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::AppImageConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::AppImageConfig.FileSystemConfig": {
      "additionalProperties": false,
      "properties": {
        "DefaultGid": {
          "type": "number"
        },
        "DefaultUid": {
          "type": "number"
        },
        "MountPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig": {
      "additionalProperties": false,
      "properties": {
        "FileSystemConfig": {
          "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.FileSystemConfig"
        },
        "KernelSpecs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelSpec"
          },
          "type": "array"
        }
      },
      "required": ["KernelSpecs"],
      "type": "object"
    },
    "AWS::SageMaker::AppImageConfig.KernelSpec": {
      "additionalProperties": false,
      "properties": {
        "DisplayName": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::SageMaker::CodeRepository": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CodeRepositoryName": {
              "type": "string"
            },
            "GitConfig": {
              "$ref": "#/definitions/AWS::SageMaker::CodeRepository.GitConfig"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["GitConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::CodeRepository"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::CodeRepository.GitConfig": {
      "additionalProperties": false,
      "properties": {
        "Branch": {
          "type": "string"
        },
        "RepositoryUrl": {
          "type": "string"
        },
        "SecretArn": {
          "type": "string"
        }
      },
      "required": ["RepositoryUrl"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DataQualityAppSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification"
            },
            "DataQualityBaselineConfig": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig"
            },
            "DataQualityJobInput": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput"
            },
            "DataQualityJobOutputConfig": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig"
            },
            "EndpointName": {
              "type": "string"
            },
            "JobDefinitionName": {
              "type": "string"
            },
            "JobResources": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringResources"
            },
            "NetworkConfig": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.NetworkConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "StoppingCondition": {
              "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StoppingCondition"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "DataQualityAppSpecification",
            "DataQualityJobInput",
            "DataQualityJobOutputConfig",
            "JobResources",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::DataQualityJobDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput": {
      "additionalProperties": false,
      "properties": {
        "DataCapturedDestinationS3Uri": {
          "type": "string"
        },
        "DatasetFormat": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DatasetFormat"
        },
        "LocalPath": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": [
        "DataCapturedDestinationS3Uri",
        "DatasetFormat",
        "LocalPath"
      ],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InstanceCount", "InstanceType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.Csv": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContainerArguments": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ContainerEntrypoint": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ImageUri": {
          "type": "string"
        },
        "PostAnalyticsProcessorSourceUri": {
          "type": "string"
        },
        "RecordPreprocessorSourceUri": {
          "type": "string"
        }
      },
      "required": ["ImageUri"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "BaseliningJobName": {
          "type": "string"
        },
        "ConstraintsResource": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource"
        },
        "StatisticsResource": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StatisticsResource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput": {
      "additionalProperties": false,
      "properties": {
        "BatchTransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput"
        },
        "EndpointInput": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.EndpointInput"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.DatasetFormat": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.Csv"
        },
        "Json": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.Json"
        },
        "Parquet": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.EndpointInput": {
      "additionalProperties": false,
      "properties": {
        "EndpointName": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": ["EndpointName", "LocalPath"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.Json": {
      "additionalProperties": false,
      "properties": {
        "Line": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput": {
      "additionalProperties": false,
      "properties": {
        "S3Output": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.S3Output"
        }
      },
      "required": ["S3Output"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MonitoringOutputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput"
          },
          "type": "array"
        }
      },
      "required": ["MonitoringOutputs"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.MonitoringResources": {
      "additionalProperties": false,
      "properties": {
        "ClusterConfig": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ClusterConfig"
        }
      },
      "required": ["ClusterConfig"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.NetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableInterContainerTrafficEncryption": {
          "type": "boolean"
        },
        "EnableNetworkIsolation": {
          "type": "boolean"
        },
        "VpcConfig": {
          "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.VpcConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.S3Output": {
      "additionalProperties": false,
      "properties": {
        "LocalPath": {
          "type": "string"
        },
        "S3UploadMode": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["LocalPath", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.StatisticsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.StoppingCondition": {
      "additionalProperties": false,
      "properties": {
        "MaxRuntimeInSeconds": {
          "type": "number"
        }
      },
      "required": ["MaxRuntimeInSeconds"],
      "type": "object"
    },
    "AWS::SageMaker::DataQualityJobDefinition.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::Device": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Device": {
              "$ref": "#/definitions/AWS::SageMaker::Device.Device"
            },
            "DeviceFleetName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DeviceFleetName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Device"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Device.Device": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "DeviceName": {
          "type": "string"
        },
        "IotThingName": {
          "type": "string"
        }
      },
      "required": ["DeviceName"],
      "type": "object"
    },
    "AWS::SageMaker::DeviceFleet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DeviceFleetName": {
              "type": "string"
            },
            "OutputConfig": {
              "$ref": "#/definitions/AWS::SageMaker::DeviceFleet.EdgeOutputConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DeviceFleetName", "OutputConfig", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::DeviceFleet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::DeviceFleet.EdgeOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "S3OutputLocation": {
          "type": "string"
        }
      },
      "required": ["S3OutputLocation"],
      "type": "object"
    },
    "AWS::SageMaker::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AppNetworkAccessType": {
              "type": "string"
            },
            "AppSecurityGroupManagement": {
              "type": "string"
            },
            "AuthMode": {
              "type": "string"
            },
            "DefaultUserSettings": {
              "$ref": "#/definitions/AWS::SageMaker::Domain.UserSettings"
            },
            "DomainName": {
              "type": "string"
            },
            "DomainSettings": {
              "$ref": "#/definitions/AWS::SageMaker::Domain.DomainSettings"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "SubnetIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcId": {
              "type": "string"
            }
          },
          "required": [
            "AuthMode",
            "DefaultUserSettings",
            "DomainName",
            "SubnetIds",
            "VpcId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Domain.CustomImage": {
      "additionalProperties": false,
      "properties": {
        "AppImageConfigName": {
          "type": "string"
        },
        "ImageName": {
          "type": "string"
        },
        "ImageVersionNumber": {
          "type": "number"
        }
      },
      "required": ["AppImageConfigName", "ImageName"],
      "type": "object"
    },
    "AWS::SageMaker::Domain.DomainSettings": {
      "additionalProperties": false,
      "properties": {
        "RStudioServerProDomainSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.RStudioServerProDomainSettings"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.JupyterServerAppSettings": {
      "additionalProperties": false,
      "properties": {
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.KernelGatewayAppSettings": {
      "additionalProperties": false,
      "properties": {
        "CustomImages": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage"
          },
          "type": "array"
        },
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.RSessionAppSettings": {
      "additionalProperties": false,
      "properties": {
        "CustomImages": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage"
          },
          "type": "array"
        },
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.RStudioServerProAppSettings": {
      "additionalProperties": false,
      "properties": {
        "AccessStatus": {
          "type": "string"
        },
        "UserGroup": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.RStudioServerProDomainSettings": {
      "additionalProperties": false,
      "properties": {
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec"
        },
        "DomainExecutionRoleArn": {
          "type": "string"
        },
        "RStudioConnectUrl": {
          "type": "string"
        },
        "RStudioPackageManagerUrl": {
          "type": "string"
        }
      },
      "required": ["DomainExecutionRoleArn"],
      "type": "object"
    },
    "AWS::SageMaker::Domain.ResourceSpec": {
      "additionalProperties": false,
      "properties": {
        "InstanceType": {
          "type": "string"
        },
        "LifecycleConfigArn": {
          "type": "string"
        },
        "SageMakerImageArn": {
          "type": "string"
        },
        "SageMakerImageVersionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.SharingSettings": {
      "additionalProperties": false,
      "properties": {
        "NotebookOutputOption": {
          "type": "string"
        },
        "S3KmsKeyId": {
          "type": "string"
        },
        "S3OutputPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Domain.UserSettings": {
      "additionalProperties": false,
      "properties": {
        "ExecutionRole": {
          "type": "string"
        },
        "JupyterServerAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings"
        },
        "KernelGatewayAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings"
        },
        "RSessionAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.RSessionAppSettings"
        },
        "RStudioServerProAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.RStudioServerProAppSettings"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SharingSettings": {
          "$ref": "#/definitions/AWS::SageMaker::Domain.SharingSettings"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Endpoint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DeploymentConfig": {
              "$ref": "#/definitions/AWS::SageMaker::Endpoint.DeploymentConfig"
            },
            "EndpointConfigName": {
              "type": "string"
            },
            "EndpointName": {
              "type": "string"
            },
            "ExcludeRetainedVariantProperties": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::Endpoint.VariantProperty"
              },
              "type": "array"
            },
            "RetainAllVariantProperties": {
              "type": "boolean"
            },
            "RetainDeploymentConfig": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["EndpointConfigName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Endpoint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.Alarm": {
      "additionalProperties": false,
      "properties": {
        "AlarmName": {
          "type": "string"
        }
      },
      "required": ["AlarmName"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.AutoRollbackConfig": {
      "additionalProperties": false,
      "properties": {
        "Alarms": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::Endpoint.Alarm"
          },
          "type": "array"
        }
      },
      "required": ["Alarms"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy": {
      "additionalProperties": false,
      "properties": {
        "MaximumExecutionTimeoutInSeconds": {
          "type": "number"
        },
        "TerminationWaitInSeconds": {
          "type": "number"
        },
        "TrafficRoutingConfiguration": {
          "$ref": "#/definitions/AWS::SageMaker::Endpoint.TrafficRoutingConfig"
        }
      },
      "required": ["TrafficRoutingConfiguration"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.CapacitySize": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.DeploymentConfig": {
      "additionalProperties": false,
      "properties": {
        "AutoRollbackConfiguration": {
          "$ref": "#/definitions/AWS::SageMaker::Endpoint.AutoRollbackConfig"
        },
        "BlueGreenUpdatePolicy": {
          "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy"
        }
      },
      "required": ["BlueGreenUpdatePolicy"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.TrafficRoutingConfig": {
      "additionalProperties": false,
      "properties": {
        "CanarySize": {
          "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize"
        },
        "LinearStepSize": {
          "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize"
        },
        "Type": {
          "type": "string"
        },
        "WaitIntervalInSeconds": {
          "type": "number"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SageMaker::Endpoint.VariantProperty": {
      "additionalProperties": false,
      "properties": {
        "VariantPropertyType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AsyncInferenceConfig": {
              "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceConfig"
            },
            "DataCaptureConfig": {
              "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig"
            },
            "EndpointConfigName": {
              "type": "string"
            },
            "ExplainerConfig": {
              "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ExplainerConfig"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "ProductionVariants": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant"
              },
              "type": "array"
            },
            "ShadowProductionVariants": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ProductionVariants"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::EndpointConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig": {
      "additionalProperties": false,
      "properties": {
        "MaxConcurrentInvocationsPerInstance": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.AsyncInferenceConfig": {
      "additionalProperties": false,
      "properties": {
        "ClientConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig"
        },
        "OutputConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig"
        }
      },
      "required": ["OutputConfig"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig": {
      "additionalProperties": false,
      "properties": {
        "ErrorTopic": {
          "type": "string"
        },
        "SuccessTopic": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "NotificationConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig"
        },
        "S3OutputPath": {
          "type": "string"
        }
      },
      "required": ["S3OutputPath"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": {
      "additionalProperties": false,
      "properties": {
        "CsvContentTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "JsonContentTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.CaptureOption": {
      "additionalProperties": false,
      "properties": {
        "CaptureMode": {
          "type": "string"
        }
      },
      "required": ["CaptureMode"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyExplainerConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableExplanations": {
          "type": "string"
        },
        "InferenceConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyInferenceConfig"
        },
        "ShapConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyShapConfig"
        }
      },
      "required": ["ShapConfig"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyFeatureType": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyHeader": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyInferenceConfig": {
      "additionalProperties": false,
      "properties": {
        "ContentTemplate": {
          "type": "string"
        },
        "FeatureHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyHeader"
          },
          "type": "array"
        },
        "FeatureTypes": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyFeatureType"
          },
          "type": "array"
        },
        "FeaturesAttribute": {
          "type": "string"
        },
        "LabelAttribute": {
          "type": "string"
        },
        "LabelHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyHeader"
          },
          "type": "array"
        },
        "LabelIndex": {
          "type": "number"
        },
        "MaxPayloadInMB": {
          "type": "number"
        },
        "MaxRecordCount": {
          "type": "number"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "ProbabilityIndex": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyShapBaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "MimeType": {
          "type": "string"
        },
        "ShapBaseline": {
          "type": "string"
        },
        "ShapBaselineUri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyShapConfig": {
      "additionalProperties": false,
      "properties": {
        "NumberOfSamples": {
          "type": "number"
        },
        "Seed": {
          "type": "number"
        },
        "ShapBaselineConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyShapBaselineConfig"
        },
        "TextConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyTextConfig"
        },
        "UseLogit": {
          "type": "boolean"
        }
      },
      "required": ["ShapBaselineConfig"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ClarifyTextConfig": {
      "additionalProperties": false,
      "properties": {
        "Granularity": {
          "type": "string"
        },
        "Language": {
          "type": "string"
        }
      },
      "required": ["Granularity", "Language"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.DataCaptureConfig": {
      "additionalProperties": false,
      "properties": {
        "CaptureContentTypeHeader": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader"
        },
        "CaptureOptions": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption"
          },
          "type": "array"
        },
        "DestinationS3Uri": {
          "type": "string"
        },
        "EnableCapture": {
          "type": "boolean"
        },
        "InitialSamplingPercentage": {
          "type": "number"
        },
        "KmsKeyId": {
          "type": "string"
        }
      },
      "required": [
        "CaptureOptions",
        "DestinationS3Uri",
        "InitialSamplingPercentage"
      ],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ExplainerConfig": {
      "additionalProperties": false,
      "properties": {
        "ClarifyExplainerConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyExplainerConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ProductionVariant": {
      "additionalProperties": false,
      "properties": {
        "AcceleratorType": {
          "type": "string"
        },
        "ContainerStartupHealthCheckTimeoutInSeconds": {
          "type": "number"
        },
        "InitialInstanceCount": {
          "type": "number"
        },
        "InitialVariantWeight": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "ModelDataDownloadTimeoutInSeconds": {
          "type": "number"
        },
        "ModelName": {
          "type": "string"
        },
        "ServerlessConfig": {
          "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ServerlessConfig"
        },
        "VariantName": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InitialVariantWeight", "ModelName", "VariantName"],
      "type": "object"
    },
    "AWS::SageMaker::EndpointConfig.ServerlessConfig": {
      "additionalProperties": false,
      "properties": {
        "MaxConcurrency": {
          "type": "number"
        },
        "MemorySizeInMB": {
          "type": "number"
        }
      },
      "required": ["MaxConcurrency", "MemorySizeInMB"],
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EventTimeFeatureName": {
              "type": "string"
            },
            "FeatureDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition"
              },
              "type": "array"
            },
            "FeatureGroupName": {
              "type": "string"
            },
            "OfflineStoreConfig": {
              "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OfflineStoreConfig"
            },
            "OnlineStoreConfig": {
              "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreConfig"
            },
            "RecordIdentifierFeatureName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "EventTimeFeatureName",
            "FeatureDefinitions",
            "FeatureGroupName",
            "RecordIdentifierFeatureName"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::FeatureGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.DataCatalogConfig": {
      "additionalProperties": false,
      "properties": {
        "Catalog": {
          "type": "string"
        },
        "Database": {
          "type": "string"
        },
        "TableName": {
          "type": "string"
        }
      },
      "required": ["Catalog", "Database", "TableName"],
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.FeatureDefinition": {
      "additionalProperties": false,
      "properties": {
        "FeatureName": {
          "type": "string"
        },
        "FeatureType": {
          "type": "string"
        }
      },
      "required": ["FeatureName", "FeatureType"],
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.OfflineStoreConfig": {
      "additionalProperties": false,
      "properties": {
        "DataCatalogConfig": {
          "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.DataCatalogConfig"
        },
        "DisableGlueTableCreation": {
          "type": "boolean"
        },
        "S3StorageConfig": {
          "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.S3StorageConfig"
        },
        "TableFormat": {
          "type": "string"
        }
      },
      "required": ["S3StorageConfig"],
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.OnlineStoreConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableOnlineStore": {
          "type": "boolean"
        },
        "SecurityConfig": {
          "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreSecurityConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.OnlineStoreSecurityConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::FeatureGroup.S3StorageConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::Image": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ImageDescription": {
              "type": "string"
            },
            "ImageDisplayName": {
              "type": "string"
            },
            "ImageName": {
              "type": "string"
            },
            "ImageRoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ImageName", "ImageRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Image"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::ImageVersion": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BaseImage": {
              "type": "string"
            },
            "ImageName": {
              "type": "string"
            }
          },
          "required": ["BaseImage", "ImageName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ImageVersion"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Model": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Containers": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition"
              },
              "type": "array"
            },
            "EnableNetworkIsolation": {
              "type": "boolean"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "InferenceExecutionConfig": {
              "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig"
            },
            "ModelName": {
              "type": "string"
            },
            "PrimaryContainer": {
              "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VpcConfig": {
              "$ref": "#/definitions/AWS::SageMaker::Model.VpcConfig"
            }
          },
          "required": ["ExecutionRoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Model"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Model.ContainerDefinition": {
      "additionalProperties": false,
      "properties": {
        "ContainerHostname": {
          "type": "string"
        },
        "Environment": {
          "type": "object"
        },
        "Image": {
          "type": "string"
        },
        "ImageConfig": {
          "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig"
        },
        "InferenceSpecificationName": {
          "type": "string"
        },
        "Mode": {
          "type": "string"
        },
        "ModelDataUrl": {
          "type": "string"
        },
        "ModelPackageName": {
          "type": "string"
        },
        "MultiModelConfig": {
          "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Model.ImageConfig": {
      "additionalProperties": false,
      "properties": {
        "RepositoryAccessMode": {
          "type": "string"
        },
        "RepositoryAuthConfig": {
          "$ref": "#/definitions/AWS::SageMaker::Model.RepositoryAuthConfig"
        }
      },
      "required": ["RepositoryAccessMode"],
      "type": "object"
    },
    "AWS::SageMaker::Model.InferenceExecutionConfig": {
      "additionalProperties": false,
      "properties": {
        "Mode": {
          "type": "string"
        }
      },
      "required": ["Mode"],
      "type": "object"
    },
    "AWS::SageMaker::Model.MultiModelConfig": {
      "additionalProperties": false,
      "properties": {
        "ModelCacheSetting": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Model.RepositoryAuthConfig": {
      "additionalProperties": false,
      "properties": {
        "RepositoryCredentialsProviderArn": {
          "type": "string"
        }
      },
      "required": ["RepositoryCredentialsProviderArn"],
      "type": "object"
    },
    "AWS::SageMaker::Model.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointName": {
              "type": "string"
            },
            "JobDefinitionName": {
              "type": "string"
            },
            "JobResources": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringResources"
            },
            "ModelBiasAppSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasAppSpecification"
            },
            "ModelBiasBaselineConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasBaselineConfig"
            },
            "ModelBiasJobInput": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasJobInput"
            },
            "ModelBiasJobOutputConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutputConfig"
            },
            "NetworkConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.NetworkConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "StoppingCondition": {
              "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.StoppingCondition"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "JobResources",
            "ModelBiasAppSpecification",
            "ModelBiasJobInput",
            "ModelBiasJobOutputConfig",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ModelBiasJobDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.BatchTransformInput": {
      "additionalProperties": false,
      "properties": {
        "DataCapturedDestinationS3Uri": {
          "type": "string"
        },
        "DatasetFormat": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.DatasetFormat"
        },
        "EndTimeOffset": {
          "type": "string"
        },
        "FeaturesAttribute": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "ProbabilityThresholdAttribute": {
          "type": "number"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        },
        "StartTimeOffset": {
          "type": "string"
        }
      },
      "required": [
        "DataCapturedDestinationS3Uri",
        "DatasetFormat",
        "LocalPath"
      ],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InstanceCount", "InstanceType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.ConstraintsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.Csv": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.DatasetFormat": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.Csv"
        },
        "Json": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.Json"
        },
        "Parquet": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.EndpointInput": {
      "additionalProperties": false,
      "properties": {
        "EndTimeOffset": {
          "type": "string"
        },
        "EndpointName": {
          "type": "string"
        },
        "FeaturesAttribute": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "ProbabilityThresholdAttribute": {
          "type": "number"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        },
        "StartTimeOffset": {
          "type": "string"
        }
      },
      "required": ["EndpointName", "LocalPath"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.Json": {
      "additionalProperties": false,
      "properties": {
        "Line": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasAppSpecification": {
      "additionalProperties": false,
      "properties": {
        "ConfigUri": {
          "type": "string"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ImageUri": {
          "type": "string"
        }
      },
      "required": ["ConfigUri", "ImageUri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasBaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "BaseliningJobName": {
          "type": "string"
        },
        "ConstraintsResource": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ConstraintsResource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasJobInput": {
      "additionalProperties": false,
      "properties": {
        "BatchTransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.BatchTransformInput"
        },
        "EndpointInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.EndpointInput"
        },
        "GroundTruthS3Input": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringGroundTruthS3Input"
        }
      },
      "required": ["GroundTruthS3Input"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.MonitoringGroundTruthS3Input": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutput": {
      "additionalProperties": false,
      "properties": {
        "S3Output": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.S3Output"
        }
      },
      "required": ["S3Output"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MonitoringOutputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutput"
          },
          "type": "array"
        }
      },
      "required": ["MonitoringOutputs"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.MonitoringResources": {
      "additionalProperties": false,
      "properties": {
        "ClusterConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ClusterConfig"
        }
      },
      "required": ["ClusterConfig"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.NetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableInterContainerTrafficEncryption": {
          "type": "boolean"
        },
        "EnableNetworkIsolation": {
          "type": "boolean"
        },
        "VpcConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.VpcConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.S3Output": {
      "additionalProperties": false,
      "properties": {
        "LocalPath": {
          "type": "string"
        },
        "S3UploadMode": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["LocalPath", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.StoppingCondition": {
      "additionalProperties": false,
      "properties": {
        "MaxRuntimeInSeconds": {
          "type": "number"
        }
      },
      "required": ["MaxRuntimeInSeconds"],
      "type": "object"
    },
    "AWS::SageMaker::ModelBiasJobDefinition.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointName": {
              "type": "string"
            },
            "JobDefinitionName": {
              "type": "string"
            },
            "JobResources": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringResources"
            },
            "ModelExplainabilityAppSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityAppSpecification"
            },
            "ModelExplainabilityBaselineConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityBaselineConfig"
            },
            "ModelExplainabilityJobInput": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityJobInput"
            },
            "ModelExplainabilityJobOutputConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutputConfig"
            },
            "NetworkConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.NetworkConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "StoppingCondition": {
              "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.StoppingCondition"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "JobResources",
            "ModelExplainabilityAppSpecification",
            "ModelExplainabilityJobInput",
            "ModelExplainabilityJobOutputConfig",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ModelExplainabilityJobDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.BatchTransformInput": {
      "additionalProperties": false,
      "properties": {
        "DataCapturedDestinationS3Uri": {
          "type": "string"
        },
        "DatasetFormat": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.DatasetFormat"
        },
        "FeaturesAttribute": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": [
        "DataCapturedDestinationS3Uri",
        "DatasetFormat",
        "LocalPath"
      ],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InstanceCount", "InstanceType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.ConstraintsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.Csv": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.DatasetFormat": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.Csv"
        },
        "Json": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.Json"
        },
        "Parquet": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.EndpointInput": {
      "additionalProperties": false,
      "properties": {
        "EndpointName": {
          "type": "string"
        },
        "FeaturesAttribute": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": ["EndpointName", "LocalPath"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.Json": {
      "additionalProperties": false,
      "properties": {
        "Line": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityAppSpecification": {
      "additionalProperties": false,
      "properties": {
        "ConfigUri": {
          "type": "string"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ImageUri": {
          "type": "string"
        }
      },
      "required": ["ConfigUri", "ImageUri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityBaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "BaseliningJobName": {
          "type": "string"
        },
        "ConstraintsResource": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ConstraintsResource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityJobInput": {
      "additionalProperties": false,
      "properties": {
        "BatchTransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.BatchTransformInput"
        },
        "EndpointInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.EndpointInput"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutput": {
      "additionalProperties": false,
      "properties": {
        "S3Output": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.S3Output"
        }
      },
      "required": ["S3Output"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MonitoringOutputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutput"
          },
          "type": "array"
        }
      },
      "required": ["MonitoringOutputs"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringResources": {
      "additionalProperties": false,
      "properties": {
        "ClusterConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ClusterConfig"
        }
      },
      "required": ["ClusterConfig"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.NetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableInterContainerTrafficEncryption": {
          "type": "boolean"
        },
        "EnableNetworkIsolation": {
          "type": "boolean"
        },
        "VpcConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.VpcConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.S3Output": {
      "additionalProperties": false,
      "properties": {
        "LocalPath": {
          "type": "string"
        },
        "S3UploadMode": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["LocalPath", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.StoppingCondition": {
      "additionalProperties": false,
      "properties": {
        "MaxRuntimeInSeconds": {
          "type": "number"
        }
      },
      "required": ["MaxRuntimeInSeconds"],
      "type": "object"
    },
    "AWS::SageMaker::ModelExplainabilityJobDefinition.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AdditionalInferenceSpecificationDefinition": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition"
            },
            "AdditionalInferenceSpecifications": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition"
              },
              "type": "array"
            },
            "AdditionalInferenceSpecificationsToAdd": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition"
              },
              "type": "array"
            },
            "ApprovalDescription": {
              "type": "string"
            },
            "CertifyForMarketplace": {
              "type": "boolean"
            },
            "ClientToken": {
              "type": "string"
            },
            "CreatedBy": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.UserContext"
            },
            "CustomerMetadataProperties": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "Domain": {
              "type": "string"
            },
            "DriftCheckBaselines": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckBaselines"
            },
            "Environment": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "InferenceSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.InferenceSpecification"
            },
            "LastModifiedBy": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.UserContext"
            },
            "LastModifiedTime": {
              "type": "string"
            },
            "MetadataProperties": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetadataProperties"
            },
            "ModelApprovalStatus": {
              "type": "string"
            },
            "ModelMetrics": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelMetrics"
            },
            "ModelPackageDescription": {
              "type": "string"
            },
            "ModelPackageGroupName": {
              "type": "string"
            },
            "ModelPackageName": {
              "type": "string"
            },
            "ModelPackageStatusDetails": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusDetails"
            },
            "ModelPackageStatusItem": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem"
            },
            "ModelPackageVersion": {
              "type": "number"
            },
            "SamplePayloadUrl": {
              "type": "string"
            },
            "SourceAlgorithmSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.SourceAlgorithmSpecification"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Task": {
              "type": "string"
            },
            "ValidationSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ValidationSpecification"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ModelPackage"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition": {
      "additionalProperties": false,
      "properties": {
        "Containers": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition"
          },
          "type": "array"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SupportedContentTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedRealtimeInferenceInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedResponseMIMETypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedTransformInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Containers", "Name"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.Bias": {
      "additionalProperties": false,
      "properties": {
        "PostTrainingReport": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "PreTrainingReport": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "Report": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DataSource": {
      "additionalProperties": false,
      "properties": {
        "S3DataSource": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.S3DataSource"
        }
      },
      "required": ["S3DataSource"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DriftCheckBaselines": {
      "additionalProperties": false,
      "properties": {
        "Bias": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckBias"
        },
        "Explainability": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckExplainability"
        },
        "ModelDataQuality": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckModelDataQuality"
        },
        "ModelQuality": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckModelQuality"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DriftCheckBias": {
      "additionalProperties": false,
      "properties": {
        "ConfigFile": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.FileSource"
        },
        "PostTrainingConstraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "PreTrainingConstraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DriftCheckExplainability": {
      "additionalProperties": false,
      "properties": {
        "ConfigFile": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.FileSource"
        },
        "Constraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DriftCheckModelDataQuality": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "Statistics": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.DriftCheckModelQuality": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "Statistics": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.Explainability": {
      "additionalProperties": false,
      "properties": {
        "Report": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.FileSource": {
      "additionalProperties": false,
      "properties": {
        "ContentDigest": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.InferenceSpecification": {
      "additionalProperties": false,
      "properties": {
        "Containers": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition"
          },
          "type": "array"
        },
        "SupportedContentTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedRealtimeInferenceInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedResponseMIMETypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SupportedTransformInstanceTypes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "Containers",
        "SupportedContentTypes",
        "SupportedResponseMIMETypes"
      ],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.MetadataProperties": {
      "additionalProperties": false,
      "properties": {
        "CommitId": {
          "type": "string"
        },
        "GeneratedBy": {
          "type": "string"
        },
        "ProjectId": {
          "type": "string"
        },
        "Repository": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.MetricsSource": {
      "additionalProperties": false,
      "properties": {
        "ContentDigest": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["ContentType", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelDataQuality": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "Statistics": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelInput": {
      "additionalProperties": false,
      "properties": {
        "DataInputConfig": {
          "type": "string"
        }
      },
      "required": ["DataInputConfig"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelMetrics": {
      "additionalProperties": false,
      "properties": {
        "Bias": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.Bias"
        },
        "Explainability": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.Explainability"
        },
        "ModelDataQuality": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelDataQuality"
        },
        "ModelQuality": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelQuality"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition": {
      "additionalProperties": false,
      "properties": {
        "ContainerHostname": {
          "type": "string"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Framework": {
          "type": "string"
        },
        "FrameworkVersion": {
          "type": "string"
        },
        "Image": {
          "type": "string"
        },
        "ImageDigest": {
          "type": "string"
        },
        "ModelDataUrl": {
          "type": "string"
        },
        "ModelInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelInput"
        },
        "NearestModelName": {
          "type": "string"
        },
        "ProductId": {
          "type": "string"
        }
      },
      "required": ["Image"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelPackageStatusDetails": {
      "additionalProperties": false,
      "properties": {
        "ImageScanStatuses": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem"
          },
          "type": "array"
        },
        "ValidationStatuses": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem"
          },
          "type": "array"
        }
      },
      "required": ["ValidationStatuses"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelPackageStatusItem": {
      "additionalProperties": false,
      "properties": {
        "FailureReason": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        }
      },
      "required": ["Name", "Status"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ModelQuality": {
      "additionalProperties": false,
      "properties": {
        "Constraints": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        },
        "Statistics": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.S3DataSource": {
      "additionalProperties": false,
      "properties": {
        "S3DataType": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["S3DataType", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.SourceAlgorithm": {
      "additionalProperties": false,
      "properties": {
        "AlgorithmName": {
          "type": "string"
        },
        "ModelDataUrl": {
          "type": "string"
        }
      },
      "required": ["AlgorithmName"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.SourceAlgorithmSpecification": {
      "additionalProperties": false,
      "properties": {
        "SourceAlgorithms": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.SourceAlgorithm"
          },
          "type": "array"
        }
      },
      "required": ["SourceAlgorithms"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.TransformInput": {
      "additionalProperties": false,
      "properties": {
        "CompressionType": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        },
        "DataSource": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DataSource"
        },
        "SplitType": {
          "type": "string"
        }
      },
      "required": ["DataSource"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.TransformJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "BatchStrategy": {
          "type": "string"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "MaxConcurrentTransforms": {
          "type": "number"
        },
        "MaxPayloadInMB": {
          "type": "number"
        },
        "TransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformInput"
        },
        "TransformOutput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformOutput"
        },
        "TransformResources": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformResources"
        }
      },
      "required": ["TransformInput", "TransformOutput", "TransformResources"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.TransformOutput": {
      "additionalProperties": false,
      "properties": {
        "Accept": {
          "type": "string"
        },
        "AssembleWith": {
          "type": "string"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "S3OutputPath": {
          "type": "string"
        }
      },
      "required": ["S3OutputPath"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.TransformResources": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        }
      },
      "required": ["InstanceCount", "InstanceType"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.UserContext": {
      "additionalProperties": false,
      "properties": {
        "DomainId": {
          "type": "string"
        },
        "UserProfileArn": {
          "type": "string"
        },
        "UserProfileName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ValidationProfile": {
      "additionalProperties": false,
      "properties": {
        "ProfileName": {
          "type": "string"
        },
        "TransformJobDefinition": {
          "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformJobDefinition"
        }
      },
      "required": ["ProfileName", "TransformJobDefinition"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackage.ValidationSpecification": {
      "additionalProperties": false,
      "properties": {
        "ValidationProfiles": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ValidationProfile"
          },
          "type": "array"
        },
        "ValidationRole": {
          "type": "string"
        }
      },
      "required": ["ValidationProfiles", "ValidationRole"],
      "type": "object"
    },
    "AWS::SageMaker::ModelPackageGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ModelPackageGroupDescription": {
              "type": "string"
            },
            "ModelPackageGroupName": {
              "type": "string"
            },
            "ModelPackageGroupPolicy": {
              "type": "object"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ModelPackageGroupName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ModelPackageGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointName": {
              "type": "string"
            },
            "JobDefinitionName": {
              "type": "string"
            },
            "JobResources": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringResources"
            },
            "ModelQualityAppSpecification": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityAppSpecification"
            },
            "ModelQualityBaselineConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityBaselineConfig"
            },
            "ModelQualityJobInput": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityJobInput"
            },
            "ModelQualityJobOutputConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutputConfig"
            },
            "NetworkConfig": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.NetworkConfig"
            },
            "RoleArn": {
              "type": "string"
            },
            "StoppingCondition": {
              "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.StoppingCondition"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "JobResources",
            "ModelQualityAppSpecification",
            "ModelQualityJobInput",
            "ModelQualityJobOutputConfig",
            "RoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::ModelQualityJobDefinition"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.BatchTransformInput": {
      "additionalProperties": false,
      "properties": {
        "DataCapturedDestinationS3Uri": {
          "type": "string"
        },
        "DatasetFormat": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.DatasetFormat"
        },
        "EndTimeOffset": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "ProbabilityThresholdAttribute": {
          "type": "number"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        },
        "StartTimeOffset": {
          "type": "string"
        }
      },
      "required": [
        "DataCapturedDestinationS3Uri",
        "DatasetFormat",
        "LocalPath"
      ],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InstanceCount", "InstanceType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.ConstraintsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.Csv": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.DatasetFormat": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.Csv"
        },
        "Json": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.Json"
        },
        "Parquet": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.EndpointInput": {
      "additionalProperties": false,
      "properties": {
        "EndTimeOffset": {
          "type": "string"
        },
        "EndpointName": {
          "type": "string"
        },
        "InferenceAttribute": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "ProbabilityAttribute": {
          "type": "string"
        },
        "ProbabilityThresholdAttribute": {
          "type": "number"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        },
        "StartTimeOffset": {
          "type": "string"
        }
      },
      "required": ["EndpointName", "LocalPath"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.Json": {
      "additionalProperties": false,
      "properties": {
        "Line": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityAppSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContainerArguments": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ContainerEntrypoint": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "ImageUri": {
          "type": "string"
        },
        "PostAnalyticsProcessorSourceUri": {
          "type": "string"
        },
        "ProblemType": {
          "type": "string"
        },
        "RecordPreprocessorSourceUri": {
          "type": "string"
        }
      },
      "required": ["ImageUri", "ProblemType"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityBaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "BaseliningJobName": {
          "type": "string"
        },
        "ConstraintsResource": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ConstraintsResource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityJobInput": {
      "additionalProperties": false,
      "properties": {
        "BatchTransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.BatchTransformInput"
        },
        "EndpointInput": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.EndpointInput"
        },
        "GroundTruthS3Input": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringGroundTruthS3Input"
        }
      },
      "required": ["GroundTruthS3Input"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.MonitoringGroundTruthS3Input": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutput": {
      "additionalProperties": false,
      "properties": {
        "S3Output": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.S3Output"
        }
      },
      "required": ["S3Output"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MonitoringOutputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutput"
          },
          "type": "array"
        }
      },
      "required": ["MonitoringOutputs"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.MonitoringResources": {
      "additionalProperties": false,
      "properties": {
        "ClusterConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ClusterConfig"
        }
      },
      "required": ["ClusterConfig"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.NetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableInterContainerTrafficEncryption": {
          "type": "boolean"
        },
        "EnableNetworkIsolation": {
          "type": "boolean"
        },
        "VpcConfig": {
          "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.VpcConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.S3Output": {
      "additionalProperties": false,
      "properties": {
        "LocalPath": {
          "type": "string"
        },
        "S3UploadMode": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["LocalPath", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.StoppingCondition": {
      "additionalProperties": false,
      "properties": {
        "MaxRuntimeInSeconds": {
          "type": "number"
        }
      },
      "required": ["MaxRuntimeInSeconds"],
      "type": "object"
    },
    "AWS::SageMaker::ModelQualityJobDefinition.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "EndpointName": {
              "type": "string"
            },
            "FailureReason": {
              "type": "string"
            },
            "LastMonitoringExecutionSummary": {
              "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary"
            },
            "MonitoringScheduleConfig": {
              "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringScheduleConfig"
            },
            "MonitoringScheduleName": {
              "type": "string"
            },
            "MonitoringScheduleStatus": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["MonitoringScheduleConfig", "MonitoringScheduleName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::MonitoringSchedule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.BaselineConfig": {
      "additionalProperties": false,
      "properties": {
        "ConstraintsResource": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ConstraintsResource"
        },
        "StatisticsResource": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.StatisticsResource"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.BatchTransformInput": {
      "additionalProperties": false,
      "properties": {
        "DataCapturedDestinationS3Uri": {
          "type": "string"
        },
        "DatasetFormat": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.DatasetFormat"
        },
        "LocalPath": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": [
        "DataCapturedDestinationS3Uri",
        "DatasetFormat",
        "LocalPath"
      ],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.ClusterConfig": {
      "additionalProperties": false,
      "properties": {
        "InstanceCount": {
          "type": "number"
        },
        "InstanceType": {
          "type": "string"
        },
        "VolumeKmsKeyId": {
          "type": "string"
        },
        "VolumeSizeInGB": {
          "type": "number"
        }
      },
      "required": ["InstanceCount", "InstanceType", "VolumeSizeInGB"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.ConstraintsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.Csv": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.DatasetFormat": {
      "additionalProperties": false,
      "properties": {
        "Csv": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.Csv"
        },
        "Json": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.Json"
        },
        "Parquet": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.EndpointInput": {
      "additionalProperties": false,
      "properties": {
        "EndpointName": {
          "type": "string"
        },
        "LocalPath": {
          "type": "string"
        },
        "S3DataDistributionType": {
          "type": "string"
        },
        "S3InputMode": {
          "type": "string"
        }
      },
      "required": ["EndpointName", "LocalPath"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.Json": {
      "additionalProperties": false,
      "properties": {
        "Line": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringAppSpecification": {
      "additionalProperties": false,
      "properties": {
        "ContainerArguments": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ContainerEntrypoint": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ImageUri": {
          "type": "string"
        },
        "PostAnalyticsProcessorSourceUri": {
          "type": "string"
        },
        "RecordPreprocessorSourceUri": {
          "type": "string"
        }
      },
      "required": ["ImageUri"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary": {
      "additionalProperties": false,
      "properties": {
        "CreationTime": {
          "type": "string"
        },
        "EndpointName": {
          "type": "string"
        },
        "FailureReason": {
          "type": "string"
        },
        "LastModifiedTime": {
          "type": "string"
        },
        "MonitoringExecutionStatus": {
          "type": "string"
        },
        "MonitoringScheduleName": {
          "type": "string"
        },
        "ProcessingJobArn": {
          "type": "string"
        },
        "ScheduledTime": {
          "type": "string"
        }
      },
      "required": [
        "CreationTime",
        "LastModifiedTime",
        "MonitoringExecutionStatus",
        "MonitoringScheduleName",
        "ScheduledTime"
      ],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringInput": {
      "additionalProperties": false,
      "properties": {
        "BatchTransformInput": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.BatchTransformInput"
        },
        "EndpointInput": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.EndpointInput"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringJobDefinition": {
      "additionalProperties": false,
      "properties": {
        "BaselineConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.BaselineConfig"
        },
        "Environment": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "MonitoringAppSpecification": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringAppSpecification"
        },
        "MonitoringInputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringInput"
          },
          "type": "array"
        },
        "MonitoringOutputConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringOutputConfig"
        },
        "MonitoringResources": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringResources"
        },
        "NetworkConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.NetworkConfig"
        },
        "RoleArn": {
          "type": "string"
        },
        "StoppingCondition": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.StoppingCondition"
        }
      },
      "required": [
        "MonitoringAppSpecification",
        "MonitoringInputs",
        "MonitoringOutputConfig",
        "MonitoringResources",
        "RoleArn"
      ],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringOutput": {
      "additionalProperties": false,
      "properties": {
        "S3Output": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.S3Output"
        }
      },
      "required": ["S3Output"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringOutputConfig": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "MonitoringOutputs": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringOutput"
          },
          "type": "array"
        }
      },
      "required": ["MonitoringOutputs"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringResources": {
      "additionalProperties": false,
      "properties": {
        "ClusterConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ClusterConfig"
        }
      },
      "required": ["ClusterConfig"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.MonitoringScheduleConfig": {
      "additionalProperties": false,
      "properties": {
        "MonitoringJobDefinition": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringJobDefinition"
        },
        "MonitoringJobDefinitionName": {
          "type": "string"
        },
        "MonitoringType": {
          "type": "string"
        },
        "ScheduleConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ScheduleConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.NetworkConfig": {
      "additionalProperties": false,
      "properties": {
        "EnableInterContainerTrafficEncryption": {
          "type": "boolean"
        },
        "EnableNetworkIsolation": {
          "type": "boolean"
        },
        "VpcConfig": {
          "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.VpcConfig"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.S3Output": {
      "additionalProperties": false,
      "properties": {
        "LocalPath": {
          "type": "string"
        },
        "S3UploadMode": {
          "type": "string"
        },
        "S3Uri": {
          "type": "string"
        }
      },
      "required": ["LocalPath", "S3Uri"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.ScheduleConfig": {
      "additionalProperties": false,
      "properties": {
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.StatisticsResource": {
      "additionalProperties": false,
      "properties": {
        "S3Uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.StoppingCondition": {
      "additionalProperties": false,
      "properties": {
        "MaxRuntimeInSeconds": {
          "type": "number"
        }
      },
      "required": ["MaxRuntimeInSeconds"],
      "type": "object"
    },
    "AWS::SageMaker::MonitoringSchedule.VpcConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["SecurityGroupIds", "Subnets"],
      "type": "object"
    },
    "AWS::SageMaker::NotebookInstance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceleratorTypes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AdditionalCodeRepositories": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "DefaultCodeRepository": {
              "type": "string"
            },
            "DirectInternetAccess": {
              "type": "string"
            },
            "InstanceMetadataServiceConfiguration": {
              "$ref": "#/definitions/AWS::SageMaker::NotebookInstance.InstanceMetadataServiceConfiguration"
            },
            "InstanceType": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "LifecycleConfigName": {
              "type": "string"
            },
            "NotebookInstanceName": {
              "type": "string"
            },
            "PlatformIdentifier": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "RootAccess": {
              "type": "string"
            },
            "SecurityGroupIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "SubnetId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VolumeSizeInGB": {
              "type": "number"
            }
          },
          "required": ["InstanceType", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::NotebookInstance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::NotebookInstance.InstanceMetadataServiceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MinimumInstanceMetadataServiceVersion": {
          "type": "string"
        }
      },
      "required": ["MinimumInstanceMetadataServiceVersion"],
      "type": "object"
    },
    "AWS::SageMaker::NotebookInstanceLifecycleConfig": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "NotebookInstanceLifecycleConfigName": {
              "type": "string"
            },
            "OnCreate": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook"
              },
              "type": "array"
            },
            "OnStart": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::NotebookInstanceLifecycleConfig"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Pipeline": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ParallelismConfiguration": {
              "$ref": "#/definitions/AWS::SageMaker::Pipeline.ParallelismConfiguration"
            },
            "PipelineDefinition": {
              "$ref": "#/definitions/AWS::SageMaker::Pipeline.PipelineDefinition"
            },
            "PipelineDescription": {
              "type": "string"
            },
            "PipelineDisplayName": {
              "type": "string"
            },
            "PipelineName": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PipelineDefinition", "PipelineName", "RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Pipeline"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Pipeline.ParallelismConfiguration": {
      "additionalProperties": false,
      "properties": {
        "MaxParallelExecutionSteps": {
          "type": "number"
        }
      },
      "required": ["MaxParallelExecutionSteps"],
      "type": "object"
    },
    "AWS::SageMaker::Pipeline.PipelineDefinition": {
      "additionalProperties": false,
      "properties": {
        "PipelineDefinitionBody": {
          "type": "string"
        },
        "PipelineDefinitionS3Location": {
          "$ref": "#/definitions/AWS::SageMaker::Pipeline.S3Location"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Pipeline.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "ETag": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::SageMaker::Project": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ProjectDescription": {
              "type": "string"
            },
            "ProjectName": {
              "type": "string"
            },
            "ServiceCatalogProvisioningDetails": {
              "$ref": "#/definitions/AWS::SageMaker::Project.ServiceCatalogProvisioningDetails"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ProjectName", "ServiceCatalogProvisioningDetails"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Project"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::Project.ProvisioningParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::SageMaker::Project.ServiceCatalogProvisionedProductDetails": {
      "additionalProperties": false,
      "properties": {
        "ProvisionedProductId": {
          "type": "string"
        },
        "ProvisionedProductStatusMessage": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Project.ServiceCatalogProvisioningDetails": {
      "additionalProperties": false,
      "properties": {
        "PathId": {
          "type": "string"
        },
        "ProductId": {
          "type": "string"
        },
        "ProvisioningArtifactId": {
          "type": "string"
        },
        "ProvisioningParameters": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::Project.ProvisioningParameter"
          },
          "type": "array"
        }
      },
      "required": ["ProductId"],
      "type": "object"
    },
    "AWS::SageMaker::UserProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DomainId": {
              "type": "string"
            },
            "SingleSignOnUserIdentifier": {
              "type": "string"
            },
            "SingleSignOnUserValue": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserProfileName": {
              "type": "string"
            },
            "UserSettings": {
              "$ref": "#/definitions/AWS::SageMaker::UserProfile.UserSettings"
            }
          },
          "required": ["DomainId", "UserProfileName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::UserProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.CustomImage": {
      "additionalProperties": false,
      "properties": {
        "AppImageConfigName": {
          "type": "string"
        },
        "ImageName": {
          "type": "string"
        },
        "ImageVersionNumber": {
          "type": "number"
        }
      },
      "required": ["AppImageConfigName", "ImageName"],
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.JupyterServerAppSettings": {
      "additionalProperties": false,
      "properties": {
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.ResourceSpec"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.KernelGatewayAppSettings": {
      "additionalProperties": false,
      "properties": {
        "CustomImages": {
          "items": {
            "$ref": "#/definitions/AWS::SageMaker::UserProfile.CustomImage"
          },
          "type": "array"
        },
        "DefaultResourceSpec": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.ResourceSpec"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.RStudioServerProAppSettings": {
      "additionalProperties": false,
      "properties": {
        "AccessStatus": {
          "type": "string"
        },
        "UserGroup": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.ResourceSpec": {
      "additionalProperties": false,
      "properties": {
        "InstanceType": {
          "type": "string"
        },
        "SageMakerImageArn": {
          "type": "string"
        },
        "SageMakerImageVersionArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.SharingSettings": {
      "additionalProperties": false,
      "properties": {
        "NotebookOutputOption": {
          "type": "string"
        },
        "S3KmsKeyId": {
          "type": "string"
        },
        "S3OutputPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::UserProfile.UserSettings": {
      "additionalProperties": false,
      "properties": {
        "ExecutionRole": {
          "type": "string"
        },
        "JupyterServerAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.JupyterServerAppSettings"
        },
        "KernelGatewayAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.KernelGatewayAppSettings"
        },
        "RStudioServerProAppSettings": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.RStudioServerProAppSettings"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SharingSettings": {
          "$ref": "#/definitions/AWS::SageMaker::UserProfile.SharingSettings"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Workteam": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "MemberDefinitions": {
              "items": {
                "$ref": "#/definitions/AWS::SageMaker::Workteam.MemberDefinition"
              },
              "type": "array"
            },
            "NotificationConfiguration": {
              "$ref": "#/definitions/AWS::SageMaker::Workteam.NotificationConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "WorkforceName": {
              "type": "string"
            },
            "WorkteamName": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SageMaker::Workteam"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SageMaker::Workteam.CognitoMemberDefinition": {
      "additionalProperties": false,
      "properties": {
        "CognitoClientId": {
          "type": "string"
        },
        "CognitoUserGroup": {
          "type": "string"
        },
        "CognitoUserPool": {
          "type": "string"
        }
      },
      "required": ["CognitoClientId", "CognitoUserGroup", "CognitoUserPool"],
      "type": "object"
    },
    "AWS::SageMaker::Workteam.MemberDefinition": {
      "additionalProperties": false,
      "properties": {
        "CognitoMemberDefinition": {
          "$ref": "#/definitions/AWS::SageMaker::Workteam.CognitoMemberDefinition"
        },
        "OidcMemberDefinition": {
          "$ref": "#/definitions/AWS::SageMaker::Workteam.OidcMemberDefinition"
        }
      },
      "type": "object"
    },
    "AWS::SageMaker::Workteam.NotificationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "NotificationTopicArn": {
          "type": "string"
        }
      },
      "required": ["NotificationTopicArn"],
      "type": "object"
    },
    "AWS::SageMaker::Workteam.OidcMemberDefinition": {
      "additionalProperties": false,
      "properties": {
        "OidcGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["OidcGroups"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "EndDate": {
              "type": "string"
            },
            "FlexibleTimeWindow": {
              "$ref": "#/definitions/AWS::Scheduler::Schedule.FlexibleTimeWindow"
            },
            "GroupName": {
              "type": "string"
            },
            "KmsKeyArn": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ScheduleExpression": {
              "type": "string"
            },
            "ScheduleExpressionTimezone": {
              "type": "string"
            },
            "StartDate": {
              "type": "string"
            },
            "State": {
              "type": "string"
            },
            "Target": {
              "$ref": "#/definitions/AWS::Scheduler::Schedule.Target"
            }
          },
          "required": ["FlexibleTimeWindow", "ScheduleExpression", "Target"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Scheduler::Schedule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.AwsVpcConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AssignPublicIp": {
          "type": "string"
        },
        "SecurityGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["Subnets"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.CapacityProviderStrategyItem": {
      "additionalProperties": false,
      "properties": {
        "Base": {
          "type": "number"
        },
        "CapacityProvider": {
          "type": "string"
        },
        "Weight": {
          "type": "number"
        }
      },
      "required": ["CapacityProvider"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.EcsParameters": {
      "additionalProperties": false,
      "properties": {
        "CapacityProviderStrategy": {
          "items": {
            "$ref": "#/definitions/AWS::Scheduler::Schedule.CapacityProviderStrategyItem"
          },
          "type": "array"
        },
        "EnableECSManagedTags": {
          "type": "boolean"
        },
        "EnableExecuteCommand": {
          "type": "boolean"
        },
        "Group": {
          "type": "string"
        },
        "LaunchType": {
          "type": "string"
        },
        "NetworkConfiguration": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.NetworkConfiguration"
        },
        "PlacementConstraints": {
          "items": {
            "$ref": "#/definitions/AWS::Scheduler::Schedule.PlacementConstraint"
          },
          "type": "array"
        },
        "PlacementStrategy": {
          "items": {
            "$ref": "#/definitions/AWS::Scheduler::Schedule.PlacementStrategy"
          },
          "type": "array"
        },
        "PlatformVersion": {
          "type": "string"
        },
        "PropagateTags": {
          "type": "string"
        },
        "ReferenceId": {
          "type": "string"
        },
        "Tags": {
          "type": "object"
        },
        "TaskCount": {
          "type": "number"
        },
        "TaskDefinitionArn": {
          "type": "string"
        }
      },
      "required": ["TaskDefinitionArn"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.EventBridgeParameters": {
      "additionalProperties": false,
      "properties": {
        "DetailType": {
          "type": "string"
        },
        "Source": {
          "type": "string"
        }
      },
      "required": ["DetailType", "Source"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.FlexibleTimeWindow": {
      "additionalProperties": false,
      "properties": {
        "MaximumWindowInMinutes": {
          "type": "number"
        },
        "Mode": {
          "type": "string"
        }
      },
      "required": ["Mode"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.KinesisParameters": {
      "additionalProperties": false,
      "properties": {
        "PartitionKey": {
          "type": "string"
        }
      },
      "required": ["PartitionKey"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.NetworkConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AwsvpcConfiguration": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.AwsVpcConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.PlacementConstraint": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.PlacementStrategy": {
      "additionalProperties": false,
      "properties": {
        "Field": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.RetryPolicy": {
      "additionalProperties": false,
      "properties": {
        "MaximumEventAgeInSeconds": {
          "type": "number"
        },
        "MaximumRetryAttempts": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.SageMakerPipelineParameter": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::Scheduler::Schedule.SageMakerPipelineParameters": {
      "additionalProperties": false,
      "properties": {
        "PipelineParameterList": {
          "items": {
            "$ref": "#/definitions/AWS::Scheduler::Schedule.SageMakerPipelineParameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.SqsParameters": {
      "additionalProperties": false,
      "properties": {
        "MessageGroupId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Scheduler::Schedule.Target": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "DeadLetterConfig": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.DeadLetterConfig"
        },
        "EcsParameters": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.EcsParameters"
        },
        "EventBridgeParameters": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.EventBridgeParameters"
        },
        "Input": {
          "type": "string"
        },
        "KinesisParameters": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.KinesisParameters"
        },
        "RetryPolicy": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.RetryPolicy"
        },
        "RoleArn": {
          "type": "string"
        },
        "SageMakerPipelineParameters": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.SageMakerPipelineParameters"
        },
        "SqsParameters": {
          "$ref": "#/definitions/AWS::Scheduler::Schedule.SqsParameters"
        }
      },
      "required": ["Arn", "RoleArn"],
      "type": "object"
    },
    "AWS::Scheduler::ScheduleGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Scheduler::ScheduleGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SecretsManager::ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BlockPublicPolicy": {
              "type": "boolean"
            },
            "ResourcePolicy": {
              "type": "object"
            },
            "SecretId": {
              "type": "string"
            }
          },
          "required": ["ResourcePolicy", "SecretId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SecretsManager::ResourcePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SecretsManager::RotationSchedule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HostedRotationLambda": {
              "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule.HostedRotationLambda"
            },
            "RotateImmediatelyOnUpdate": {
              "type": "boolean"
            },
            "RotationLambdaARN": {
              "type": "string"
            },
            "RotationRules": {
              "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule.RotationRules"
            },
            "SecretId": {
              "type": "string"
            }
          },
          "required": ["SecretId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SecretsManager::RotationSchedule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SecretsManager::RotationSchedule.HostedRotationLambda": {
      "additionalProperties": false,
      "properties": {
        "ExcludeCharacters": {
          "type": "string"
        },
        "KmsKeyArn": {
          "type": "string"
        },
        "MasterSecretArn": {
          "type": "string"
        },
        "MasterSecretKmsKeyArn": {
          "type": "string"
        },
        "RotationLambdaName": {
          "type": "string"
        },
        "RotationType": {
          "type": "string"
        },
        "SuperuserSecretArn": {
          "type": "string"
        },
        "SuperuserSecretKmsKeyArn": {
          "type": "string"
        },
        "VpcSecurityGroupIds": {
          "type": "string"
        },
        "VpcSubnetIds": {
          "type": "string"
        }
      },
      "required": ["RotationType"],
      "type": "object"
    },
    "AWS::SecretsManager::RotationSchedule.RotationRules": {
      "additionalProperties": false,
      "properties": {
        "AutomaticallyAfterDays": {
          "type": "number"
        },
        "Duration": {
          "type": "string"
        },
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SecretsManager::Secret": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "GenerateSecretString": {
              "$ref": "#/definitions/AWS::SecretsManager::Secret.GenerateSecretString"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ReplicaRegions": {
              "items": {
                "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion"
              },
              "type": "array"
            },
            "SecretString": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SecretsManager::Secret"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::SecretsManager::Secret.GenerateSecretString": {
      "additionalProperties": false,
      "properties": {
        "ExcludeCharacters": {
          "type": "string"
        },
        "ExcludeLowercase": {
          "type": "boolean"
        },
        "ExcludeNumbers": {
          "type": "boolean"
        },
        "ExcludePunctuation": {
          "type": "boolean"
        },
        "ExcludeUppercase": {
          "type": "boolean"
        },
        "GenerateStringKey": {
          "type": "string"
        },
        "IncludeSpace": {
          "type": "boolean"
        },
        "PasswordLength": {
          "type": "number"
        },
        "RequireEachIncludedType": {
          "type": "boolean"
        },
        "SecretStringTemplate": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::SecretsManager::Secret.ReplicaRegion": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        }
      },
      "required": ["Region"],
      "type": "object"
    },
    "AWS::SecretsManager::SecretTargetAttachment": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "SecretId": {
              "type": "string"
            },
            "TargetId": {
              "type": "string"
            },
            "TargetType": {
              "type": "string"
            }
          },
          "required": ["SecretId", "TargetId", "TargetType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SecretsManager::SecretTargetAttachment"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SecurityHub::Hub": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Tags": {
              "type": "object"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SecurityHub::Hub"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ServiceCatalog::AcceptedPortfolioShare": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            }
          },
          "required": ["PortfolioId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::AcceptedPortfolioShare"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::CloudFormationProduct": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Distributor": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Owner": {
              "type": "string"
            },
            "ProvisioningArtifactParameters": {
              "items": {
                "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties"
              },
              "type": "array"
            },
            "ReplaceProvisioningArtifacts": {
              "type": "boolean"
            },
            "SupportDescription": {
              "type": "string"
            },
            "SupportEmail": {
              "type": "string"
            },
            "SupportUrl": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "Owner", "ProvisioningArtifactParameters"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::CloudFormationProduct"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties": {
      "additionalProperties": false,
      "properties": {
        "Description": {
          "type": "string"
        },
        "DisableTemplateValidation": {
          "type": "boolean"
        },
        "Info": {
          "type": "object"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["Info"],
      "type": "object"
    },
    "AWS::ServiceCatalog::CloudFormationProvisionedProduct": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "NotificationArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PathId": {
              "type": "string"
            },
            "PathName": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "ProductName": {
              "type": "string"
            },
            "ProvisionedProductName": {
              "type": "string"
            },
            "ProvisioningArtifactId": {
              "type": "string"
            },
            "ProvisioningArtifactName": {
              "type": "string"
            },
            "ProvisioningParameters": {
              "items": {
                "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter"
              },
              "type": "array"
            },
            "ProvisioningPreferences": {
              "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::CloudFormationProvisionedProduct"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences": {
      "additionalProperties": false,
      "properties": {
        "StackSetAccounts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StackSetFailureToleranceCount": {
          "type": "number"
        },
        "StackSetFailureTolerancePercentage": {
          "type": "number"
        },
        "StackSetMaxConcurrencyCount": {
          "type": "number"
        },
        "StackSetMaxConcurrencyPercentage": {
          "type": "number"
        },
        "StackSetOperationType": {
          "type": "string"
        },
        "StackSetRegions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::ServiceCatalog::LaunchNotificationConstraint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "NotificationArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            }
          },
          "required": ["NotificationArns", "PortfolioId", "ProductId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::LaunchNotificationConstraint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::LaunchRoleConstraint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "LocalRoleName": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "RoleArn": {
              "type": "string"
            }
          },
          "required": ["PortfolioId", "ProductId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::LaunchRoleConstraint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::LaunchTemplateConstraint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "Rules": {
              "type": "string"
            }
          },
          "required": ["PortfolioId", "ProductId", "Rules"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::LaunchTemplateConstraint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::Portfolio": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "DisplayName": {
              "type": "string"
            },
            "ProviderName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DisplayName", "ProviderName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::Portfolio"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::PortfolioPrincipalAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "PrincipalARN": {
              "type": "string"
            },
            "PrincipalType": {
              "type": "string"
            }
          },
          "required": ["PortfolioId", "PrincipalARN", "PrincipalType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::PortfolioPrincipalAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::PortfolioProductAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "SourcePortfolioId": {
              "type": "string"
            }
          },
          "required": ["PortfolioId", "ProductId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::PortfolioProductAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::PortfolioShare": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "AccountId": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ShareTagOptions": {
              "type": "boolean"
            }
          },
          "required": ["AccountId", "PortfolioId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::PortfolioShare"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::ResourceUpdateConstraint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "TagUpdateOnProvisionedProduct": {
              "type": "string"
            }
          },
          "required": [
            "PortfolioId",
            "ProductId",
            "TagUpdateOnProvisionedProduct"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::ResourceUpdateConstraint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::ServiceAction": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "Definition": {
              "items": {
                "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction.DefinitionParameter"
              },
              "type": "array"
            },
            "DefinitionType": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Definition", "DefinitionType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::ServiceAction"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::ServiceAction.DefinitionParameter": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::ServiceCatalog::ServiceActionAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ProductId": {
              "type": "string"
            },
            "ProvisioningArtifactId": {
              "type": "string"
            },
            "ServiceActionId": {
              "type": "string"
            }
          },
          "required": [
            "ProductId",
            "ProvisioningArtifactId",
            "ServiceActionId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::ServiceActionAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::StackSetConstraint": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AcceptLanguage": {
              "type": "string"
            },
            "AccountList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "AdminRole": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "ExecutionRole": {
              "type": "string"
            },
            "PortfolioId": {
              "type": "string"
            },
            "ProductId": {
              "type": "string"
            },
            "RegionList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "StackInstanceControl": {
              "type": "string"
            }
          },
          "required": [
            "AccountList",
            "AdminRole",
            "Description",
            "ExecutionRole",
            "PortfolioId",
            "ProductId",
            "RegionList",
            "StackInstanceControl"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::StackSetConstraint"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::TagOption": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Active": {
              "type": "boolean"
            },
            "Key": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          },
          "required": ["Key", "Value"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::TagOption"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalog::TagOptionAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceId": {
              "type": "string"
            },
            "TagOptionId": {
              "type": "string"
            }
          },
          "required": ["ResourceId", "TagOptionId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalog::TagOptionAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalogAppRegistry::Application": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalogAppRegistry::Application"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalogAppRegistry::AttributeGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Attributes": {
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": ["Attributes", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalogAppRegistry::AttributeGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Application": {
              "type": "string"
            },
            "AttributeGroup": {
              "type": "string"
            }
          },
          "required": ["Application", "AttributeGroup"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceCatalogAppRegistry::ResourceAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Application": {
              "type": "string"
            },
            "Resource": {
              "type": "string"
            },
            "ResourceType": {
              "type": "string"
            }
          },
          "required": ["Application", "Resource", "ResourceType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceCatalogAppRegistry::ResourceAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::HttpNamespace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceDiscovery::HttpNamespace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::Instance": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "InstanceAttributes": {
              "type": "object"
            },
            "InstanceId": {
              "type": "string"
            },
            "ServiceId": {
              "type": "string"
            }
          },
          "required": ["InstanceAttributes", "ServiceId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceDiscovery::Instance"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::PrivateDnsNamespace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Properties": {
              "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.Properties"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Vpc": {
              "type": "string"
            }
          },
          "required": ["Name", "Vpc"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceDiscovery::PrivateDnsNamespace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable": {
      "additionalProperties": false,
      "properties": {
        "SOA": {
          "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.SOA"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::PrivateDnsNamespace.Properties": {
      "additionalProperties": false,
      "properties": {
        "DnsProperties": {
          "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::PrivateDnsNamespace.SOA": {
      "additionalProperties": false,
      "properties": {
        "TTL": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::PublicDnsNamespace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Properties": {
              "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.Properties"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceDiscovery::PublicDnsNamespace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::PublicDnsNamespace.Properties": {
      "additionalProperties": false,
      "properties": {
        "DnsProperties": {
          "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable": {
      "additionalProperties": false,
      "properties": {
        "SOA": {
          "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.SOA"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::PublicDnsNamespace.SOA": {
      "additionalProperties": false,
      "properties": {
        "TTL": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::ServiceDiscovery::Service": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "DnsConfig": {
              "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig"
            },
            "HealthCheckConfig": {
              "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig"
            },
            "HealthCheckCustomConfig": {
              "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig"
            },
            "Name": {
              "type": "string"
            },
            "NamespaceId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::ServiceDiscovery::Service"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::Service.DnsConfig": {
      "additionalProperties": false,
      "properties": {
        "DnsRecords": {
          "items": {
            "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord"
          },
          "type": "array"
        },
        "NamespaceId": {
          "type": "string"
        },
        "RoutingPolicy": {
          "type": "string"
        }
      },
      "required": ["DnsRecords"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::Service.DnsRecord": {
      "additionalProperties": false,
      "properties": {
        "TTL": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["TTL", "Type"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::Service.HealthCheckConfig": {
      "additionalProperties": false,
      "properties": {
        "FailureThreshold": {
          "type": "number"
        },
        "ResourcePath": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": {
      "additionalProperties": false,
      "properties": {
        "FailureThreshold": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Signer::ProfilePermission": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Action": {
              "type": "string"
            },
            "Principal": {
              "type": "string"
            },
            "ProfileName": {
              "type": "string"
            },
            "ProfileVersion": {
              "type": "string"
            },
            "StatementId": {
              "type": "string"
            }
          },
          "required": ["Action", "Principal", "ProfileName", "StatementId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Signer::ProfilePermission"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Signer::SigningProfile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "PlatformId": {
              "type": "string"
            },
            "SignatureValidityPeriod": {
              "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["PlatformId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Signer::SigningProfile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Signer::SigningProfile.SignatureValidityPeriod": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::StepFunctions::Activity": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::StepFunctions::Activity"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::StepFunctions::Activity.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Definition": {
              "type": "object"
            },
            "DefinitionS3Location": {
              "$ref": "#/definitions/AWS::StepFunctions::StateMachine.S3Location"
            },
            "DefinitionString": {
              "type": "string"
            },
            "DefinitionSubstitutions": {
              "additionalProperties": true,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "type": "object"
                }
              },
              "type": "object"
            },
            "LoggingConfiguration": {
              "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LoggingConfiguration"
            },
            "RoleArn": {
              "type": "string"
            },
            "StateMachineName": {
              "type": "string"
            },
            "StateMachineType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry"
              },
              "type": "array"
            },
            "TracingConfiguration": {
              "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TracingConfiguration"
            }
          },
          "required": ["RoleArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::StepFunctions::StateMachine"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup": {
      "additionalProperties": false,
      "properties": {
        "LogGroupArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.LogDestination": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchLogsLogGroup": {
          "$ref": "#/definitions/AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup"
        }
      },
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Destinations": {
          "items": {
            "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LogDestination"
          },
          "type": "array"
        },
        "IncludeExecutionData": {
          "type": "boolean"
        },
        "Level": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.S3Location": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.TagsEntry": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::StepFunctions::StateMachine.TracingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::SupportApp::AccountAlias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccountAlias": {
              "type": "string"
            }
          },
          "required": ["AccountAlias"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SupportApp::AccountAlias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SupportApp::SlackChannelConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ChannelId": {
              "type": "string"
            },
            "ChannelName": {
              "type": "string"
            },
            "ChannelRoleArn": {
              "type": "string"
            },
            "NotifyOnAddCorrespondenceToCase": {
              "type": "boolean"
            },
            "NotifyOnCaseSeverity": {
              "type": "string"
            },
            "NotifyOnCreateOrReopenCase": {
              "type": "boolean"
            },
            "NotifyOnResolveCase": {
              "type": "boolean"
            },
            "TeamId": {
              "type": "string"
            }
          },
          "required": [
            "ChannelId",
            "ChannelRoleArn",
            "NotifyOnCaseSeverity",
            "TeamId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SupportApp::SlackChannelConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::SupportApp::SlackWorkspaceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "TeamId": {
              "type": "string"
            },
            "VersionId": {
              "type": "string"
            }
          },
          "required": ["TeamId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::SupportApp::SlackWorkspaceConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Synthetics::Canary": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ArtifactConfig": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig"
            },
            "ArtifactS3Location": {
              "type": "string"
            },
            "Code": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.Code"
            },
            "DeleteLambdaResourcesOnCanaryDeletion": {
              "type": "boolean"
            },
            "ExecutionRoleArn": {
              "type": "string"
            },
            "FailureRetentionPeriod": {
              "type": "number"
            },
            "Name": {
              "type": "string"
            },
            "RunConfig": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.RunConfig"
            },
            "RuntimeVersion": {
              "type": "string"
            },
            "Schedule": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.Schedule"
            },
            "StartCanaryAfterCreation": {
              "type": "boolean"
            },
            "SuccessRetentionPeriod": {
              "type": "number"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VPCConfig": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.VPCConfig"
            },
            "VisualReference": {
              "$ref": "#/definitions/AWS::Synthetics::Canary.VisualReference"
            }
          },
          "required": [
            "ArtifactS3Location",
            "Code",
            "ExecutionRoleArn",
            "Name",
            "RuntimeVersion",
            "Schedule",
            "StartCanaryAfterCreation"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Synthetics::Canary"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Synthetics::Canary.ArtifactConfig": {
      "additionalProperties": false,
      "properties": {
        "S3Encryption": {
          "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption"
        }
      },
      "type": "object"
    },
    "AWS::Synthetics::Canary.BaseScreenshot": {
      "additionalProperties": false,
      "properties": {
        "IgnoreCoordinates": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ScreenshotName": {
          "type": "string"
        }
      },
      "required": ["ScreenshotName"],
      "type": "object"
    },
    "AWS::Synthetics::Canary.Code": {
      "additionalProperties": false,
      "properties": {
        "Handler": {
          "type": "string"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        },
        "S3ObjectVersion": {
          "type": "string"
        },
        "Script": {
          "type": "string"
        }
      },
      "required": ["Handler"],
      "type": "object"
    },
    "AWS::Synthetics::Canary.RunConfig": {
      "additionalProperties": false,
      "properties": {
        "ActiveTracing": {
          "type": "boolean"
        },
        "EnvironmentVariables": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "MemoryInMB": {
          "type": "number"
        },
        "TimeoutInSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Synthetics::Canary.S3Encryption": {
      "additionalProperties": false,
      "properties": {
        "EncryptionMode": {
          "type": "string"
        },
        "KmsKeyArn": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Synthetics::Canary.Schedule": {
      "additionalProperties": false,
      "properties": {
        "DurationInSeconds": {
          "type": "string"
        },
        "Expression": {
          "type": "string"
        }
      },
      "required": ["Expression"],
      "type": "object"
    },
    "AWS::Synthetics::Canary.VPCConfig": {
      "additionalProperties": false,
      "properties": {
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "required": ["SecurityGroupIds", "SubnetIds"],
      "type": "object"
    },
    "AWS::Synthetics::Canary.VisualReference": {
      "additionalProperties": false,
      "properties": {
        "BaseCanaryRunId": {
          "type": "string"
        },
        "BaseScreenshots": {
          "items": {
            "$ref": "#/definitions/AWS::Synthetics::Canary.BaseScreenshot"
          },
          "type": "array"
        }
      },
      "required": ["BaseCanaryRunId"],
      "type": "object"
    },
    "AWS::Synthetics::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "ResourceArns": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Synthetics::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Timestream::Database": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatabaseName": {
              "type": "string"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Timestream::Database"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ClientToken": {
              "type": "string"
            },
            "ErrorReportConfiguration": {
              "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ErrorReportConfiguration"
            },
            "KmsKeyId": {
              "type": "string"
            },
            "NotificationConfiguration": {
              "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.NotificationConfiguration"
            },
            "QueryString": {
              "type": "string"
            },
            "ScheduleConfiguration": {
              "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ScheduleConfiguration"
            },
            "ScheduledQueryExecutionRoleArn": {
              "type": "string"
            },
            "ScheduledQueryName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TargetConfiguration": {
              "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TargetConfiguration"
            }
          },
          "required": [
            "ErrorReportConfiguration",
            "NotificationConfiguration",
            "QueryString",
            "ScheduleConfiguration",
            "ScheduledQueryExecutionRoleArn"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Timestream::ScheduledQuery"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.DimensionMapping": {
      "additionalProperties": false,
      "properties": {
        "DimensionValueType": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["DimensionValueType", "Name"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.ErrorReportConfiguration": {
      "additionalProperties": false,
      "properties": {
        "S3Configuration": {
          "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.S3Configuration"
        }
      },
      "required": ["S3Configuration"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.MixedMeasureMapping": {
      "additionalProperties": false,
      "properties": {
        "MeasureName": {
          "type": "string"
        },
        "MeasureValueType": {
          "type": "string"
        },
        "MultiMeasureAttributeMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping"
          },
          "type": "array"
        },
        "SourceColumn": {
          "type": "string"
        },
        "TargetMeasureName": {
          "type": "string"
        }
      },
      "required": ["MeasureValueType"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping": {
      "additionalProperties": false,
      "properties": {
        "MeasureValueType": {
          "type": "string"
        },
        "SourceColumn": {
          "type": "string"
        },
        "TargetMultiMeasureAttributeName": {
          "type": "string"
        }
      },
      "required": ["MeasureValueType", "SourceColumn"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.MultiMeasureMappings": {
      "additionalProperties": false,
      "properties": {
        "MultiMeasureAttributeMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping"
          },
          "type": "array"
        },
        "TargetMultiMeasureName": {
          "type": "string"
        }
      },
      "required": ["MultiMeasureAttributeMappings"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.NotificationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "SnsConfiguration": {
          "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.SnsConfiguration"
        }
      },
      "required": ["SnsConfiguration"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.S3Configuration": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "EncryptionOption": {
          "type": "string"
        },
        "ObjectKeyPrefix": {
          "type": "string"
        }
      },
      "required": ["BucketName"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.ScheduleConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ScheduleExpression": {
          "type": "string"
        }
      },
      "required": ["ScheduleExpression"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.SnsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TopicArn": {
          "type": "string"
        }
      },
      "required": ["TopicArn"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.TargetConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TimestreamConfiguration": {
          "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TimestreamConfiguration"
        }
      },
      "required": ["TimestreamConfiguration"],
      "type": "object"
    },
    "AWS::Timestream::ScheduledQuery.TimestreamConfiguration": {
      "additionalProperties": false,
      "properties": {
        "DatabaseName": {
          "type": "string"
        },
        "DimensionMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.DimensionMapping"
          },
          "type": "array"
        },
        "MeasureNameColumn": {
          "type": "string"
        },
        "MixedMeasureMappings": {
          "items": {
            "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MixedMeasureMapping"
          },
          "type": "array"
        },
        "MultiMeasureMappings": {
          "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureMappings"
        },
        "TableName": {
          "type": "string"
        },
        "TimeColumn": {
          "type": "string"
        }
      },
      "required": [
        "DatabaseName",
        "DimensionMappings",
        "TableName",
        "TimeColumn"
      ],
      "type": "object"
    },
    "AWS::Timestream::Table": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DatabaseName": {
              "type": "string"
            },
            "MagneticStoreWriteProperties": {
              "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreWriteProperties"
            },
            "RetentionProperties": {
              "$ref": "#/definitions/AWS::Timestream::Table.RetentionProperties"
            },
            "TableName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["DatabaseName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Timestream::Table"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Timestream::Table.MagneticStoreRejectedDataLocation": {
      "additionalProperties": false,
      "properties": {
        "S3Configuration": {
          "$ref": "#/definitions/AWS::Timestream::Table.S3Configuration"
        }
      },
      "type": "object"
    },
    "AWS::Timestream::Table.MagneticStoreWriteProperties": {
      "additionalProperties": false,
      "properties": {
        "EnableMagneticStoreWrites": {
          "type": "boolean"
        },
        "MagneticStoreRejectedDataLocation": {
          "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreRejectedDataLocation"
        }
      },
      "required": ["EnableMagneticStoreWrites"],
      "type": "object"
    },
    "AWS::Timestream::Table.RetentionProperties": {
      "additionalProperties": false,
      "properties": {
        "MagneticStoreRetentionPeriodInDays": {
          "type": "string"
        },
        "MemoryStoreRetentionPeriodInHours": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Timestream::Table.S3Configuration": {
      "additionalProperties": false,
      "properties": {
        "BucketName": {
          "type": "string"
        },
        "EncryptionOption": {
          "type": "string"
        },
        "KmsKeyId": {
          "type": "string"
        },
        "ObjectKeyPrefix": {
          "type": "string"
        }
      },
      "required": ["BucketName", "EncryptionOption"],
      "type": "object"
    },
    "AWS::Transfer::Agreement": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessRole": {
              "type": "string"
            },
            "BaseDirectory": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "LocalProfileId": {
              "type": "string"
            },
            "PartnerProfileId": {
              "type": "string"
            },
            "ServerId": {
              "type": "string"
            },
            "Status": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": [
            "AccessRole",
            "BaseDirectory",
            "LocalProfileId",
            "PartnerProfileId",
            "ServerId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Agreement"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::Certificate": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ActiveDate": {
              "type": "string"
            },
            "Certificate": {
              "type": "string"
            },
            "CertificateChain": {
              "type": "string"
            },
            "Description": {
              "type": "string"
            },
            "InactiveDate": {
              "type": "string"
            },
            "PrivateKey": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Usage": {
              "type": "string"
            }
          },
          "required": ["Certificate", "Usage"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Certificate"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::Connector": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AccessRole": {
              "type": "string"
            },
            "As2Config": {
              "$ref": "#/definitions/AWS::Transfer::Connector.As2Config"
            },
            "LoggingRole": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Url": {
              "type": "string"
            }
          },
          "required": ["AccessRole", "As2Config", "Url"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Connector"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::Connector.As2Config": {
      "additionalProperties": false,
      "properties": {
        "Compression": {
          "type": "string"
        },
        "EncryptionAlgorithm": {
          "type": "string"
        },
        "LocalProfileId": {
          "type": "string"
        },
        "MdnResponse": {
          "type": "string"
        },
        "MdnSigningAlgorithm": {
          "type": "string"
        },
        "MessageSubject": {
          "type": "string"
        },
        "PartnerProfileId": {
          "type": "string"
        },
        "SigningAlgorithm": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Profile": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "As2Id": {
              "type": "string"
            },
            "CertificateIds": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ProfileType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["As2Id", "ProfileType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Profile"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::Server": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Certificate": {
              "type": "string"
            },
            "Domain": {
              "type": "string"
            },
            "EndpointDetails": {
              "$ref": "#/definitions/AWS::Transfer::Server.EndpointDetails"
            },
            "EndpointType": {
              "type": "string"
            },
            "IdentityProviderDetails": {
              "$ref": "#/definitions/AWS::Transfer::Server.IdentityProviderDetails"
            },
            "IdentityProviderType": {
              "type": "string"
            },
            "LoggingRole": {
              "type": "string"
            },
            "PostAuthenticationLoginBanner": {
              "type": "string"
            },
            "PreAuthenticationLoginBanner": {
              "type": "string"
            },
            "ProtocolDetails": {
              "$ref": "#/definitions/AWS::Transfer::Server.ProtocolDetails"
            },
            "Protocols": {
              "items": {
                "$ref": "#/definitions/AWS::Transfer::Server.Protocol"
              },
              "type": "array"
            },
            "SecurityPolicyName": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "WorkflowDetails": {
              "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetails"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Server"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::Transfer::Server.As2Transport": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::Transfer::Server.EndpointDetails": {
      "additionalProperties": false,
      "properties": {
        "AddressAllocationIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SubnetIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VpcEndpointId": {
          "type": "string"
        },
        "VpcId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Server.IdentityProviderDetails": {
      "additionalProperties": false,
      "properties": {
        "DirectoryId": {
          "type": "string"
        },
        "Function": {
          "type": "string"
        },
        "InvocationRole": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Server.Protocol": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::Transfer::Server.ProtocolDetails": {
      "additionalProperties": false,
      "properties": {
        "As2Transports": {
          "items": {
            "$ref": "#/definitions/AWS::Transfer::Server.As2Transport"
          },
          "type": "array"
        },
        "PassiveIp": {
          "type": "string"
        },
        "SetStatOption": {
          "type": "string"
        },
        "TlsSessionResumptionMode": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Server.WorkflowDetail": {
      "additionalProperties": false,
      "properties": {
        "ExecutionRole": {
          "type": "string"
        },
        "WorkflowId": {
          "type": "string"
        }
      },
      "required": ["ExecutionRole", "WorkflowId"],
      "type": "object"
    },
    "AWS::Transfer::Server.WorkflowDetails": {
      "additionalProperties": false,
      "properties": {
        "OnPartialUpload": {
          "items": {
            "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetail"
          },
          "type": "array"
        },
        "OnUpload": {
          "items": {
            "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetail"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::User": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "HomeDirectory": {
              "type": "string"
            },
            "HomeDirectoryMappings": {
              "items": {
                "$ref": "#/definitions/AWS::Transfer::User.HomeDirectoryMapEntry"
              },
              "type": "array"
            },
            "HomeDirectoryType": {
              "type": "string"
            },
            "Policy": {
              "type": "string"
            },
            "PosixProfile": {
              "$ref": "#/definitions/AWS::Transfer::User.PosixProfile"
            },
            "Role": {
              "type": "string"
            },
            "ServerId": {
              "type": "string"
            },
            "SshPublicKeys": {
              "items": {
                "$ref": "#/definitions/AWS::Transfer::User.SshPublicKey"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserName": {
              "type": "string"
            }
          },
          "required": ["Role", "ServerId", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::User"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::User.HomeDirectoryMapEntry": {
      "additionalProperties": false,
      "properties": {
        "Entry": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        }
      },
      "required": ["Entry", "Target"],
      "type": "object"
    },
    "AWS::Transfer::User.PosixProfile": {
      "additionalProperties": false,
      "properties": {
        "Gid": {
          "type": "number"
        },
        "SecondaryGids": {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "Uid": {
          "type": "number"
        }
      },
      "required": ["Gid", "Uid"],
      "type": "object"
    },
    "AWS::Transfer::User.SshPublicKey": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "AWS::Transfer::Workflow": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "OnExceptionSteps": {
              "items": {
                "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep"
              },
              "type": "array"
            },
            "Steps": {
              "items": {
                "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep"
              },
              "type": "array"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Steps"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Transfer::Workflow"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Transfer::Workflow.CopyStepDetails": {
      "additionalProperties": false,
      "properties": {
        "DestinationFileLocation": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.InputFileLocation"
        },
        "Name": {
          "type": "string"
        },
        "OverwriteExisting": {
          "type": "string"
        },
        "SourceFileLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.CustomStepDetails": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SourceFileLocation": {
          "type": "string"
        },
        "Target": {
          "type": "string"
        },
        "TimeoutSeconds": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.DeleteStepDetails": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SourceFileLocation": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.InputFileLocation": {
      "additionalProperties": false,
      "properties": {
        "S3FileLocation": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.S3InputFileLocation"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.S3InputFileLocation": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.S3Tag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::Transfer::Workflow.TagStepDetails": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "SourceFileLocation": {
          "type": "string"
        },
        "Tags": {
          "items": {
            "$ref": "#/definitions/AWS::Transfer::Workflow.S3Tag"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::Transfer::Workflow.WorkflowStep": {
      "additionalProperties": false,
      "properties": {
        "CopyStepDetails": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.CopyStepDetails"
        },
        "CustomStepDetails": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.CustomStepDetails"
        },
        "DeleteStepDetails": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.DeleteStepDetails"
        },
        "TagStepDetails": {
          "$ref": "#/definitions/AWS::Transfer::Workflow.TagStepDetails"
        },
        "Type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::VoiceID::Domain": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ServerSideEncryptionConfiguration": {
              "$ref": "#/definitions/AWS::VoiceID::Domain.ServerSideEncryptionConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Name", "ServerSideEncryptionConfiguration"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::VoiceID::Domain"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::VoiceID::Domain.ServerSideEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        }
      },
      "required": ["KmsKeyId"],
      "type": "object"
    },
    "AWS::WAF::ByteMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ByteMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::ByteMatchSet.ByteMatchTuple"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::ByteMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::ByteMatchSet.ByteMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAF::ByteMatchSet.FieldToMatch"
        },
        "PositionalConstraint": {
          "type": "string"
        },
        "TargetString": {
          "type": "string"
        },
        "TargetStringBase64": {
          "type": "string"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": [
        "FieldToMatch",
        "PositionalConstraint",
        "TextTransformation"
      ],
      "type": "object"
    },
    "AWS::WAF::ByteMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAF::IPSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IPSetDescriptors": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::IPSet.IPSetDescriptor"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::IPSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::IPSet.IPSetDescriptor": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::WAF::Rule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MetricName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Predicates": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::Rule.Predicate"
              },
              "type": "array"
            }
          },
          "required": ["MetricName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::Rule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::Rule.Predicate": {
      "additionalProperties": false,
      "properties": {
        "DataId": {
          "type": "string"
        },
        "Negated": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["DataId", "Negated", "Type"],
      "type": "object"
    },
    "AWS::WAF::SizeConstraintSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SizeConstraints": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.SizeConstraint"
              },
              "type": "array"
            }
          },
          "required": ["Name", "SizeConstraints"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::SizeConstraintSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::SizeConstraintSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAF::SizeConstraintSet.SizeConstraint": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.FieldToMatch"
        },
        "Size": {
          "type": "number"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": [
        "ComparisonOperator",
        "FieldToMatch",
        "Size",
        "TextTransformation"
      ],
      "type": "object"
    },
    "AWS::WAF::SqlInjectionMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SqlInjectionMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::SqlInjectionMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::SqlInjectionMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.FieldToMatch"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": ["FieldToMatch", "TextTransformation"],
      "type": "object"
    },
    "AWS::WAF::WebACL": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultAction": {
              "$ref": "#/definitions/AWS::WAF::WebACL.WafAction"
            },
            "MetricName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::WebACL.ActivatedRule"
              },
              "type": "array"
            }
          },
          "required": ["DefaultAction", "MetricName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::WebACL"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::WebACL.ActivatedRule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::WAF::WebACL.WafAction"
        },
        "Priority": {
          "type": "number"
        },
        "RuleId": {
          "type": "string"
        }
      },
      "required": ["Priority", "RuleId"],
      "type": "object"
    },
    "AWS::WAF::WebACL.WafAction": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAF::XssMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "XssMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAF::XssMatchSet.XssMatchTuple"
              },
              "type": "array"
            }
          },
          "required": ["Name", "XssMatchTuples"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAF::XssMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAF::XssMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAF::XssMatchSet.XssMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAF::XssMatchSet.FieldToMatch"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": ["FieldToMatch", "TextTransformation"],
      "type": "object"
    },
    "AWS::WAFRegional::ByteMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ByteMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.ByteMatchTuple"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::ByteMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::ByteMatchSet.ByteMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.FieldToMatch"
        },
        "PositionalConstraint": {
          "type": "string"
        },
        "TargetString": {
          "type": "string"
        },
        "TargetStringBase64": {
          "type": "string"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": [
        "FieldToMatch",
        "PositionalConstraint",
        "TextTransformation"
      ],
      "type": "object"
    },
    "AWS::WAFRegional::ByteMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAFRegional::GeoMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "GeoMatchConstraints": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::GeoMatchSet.GeoMatchConstraint"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::GeoMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::GeoMatchSet.GeoMatchConstraint": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::WAFRegional::IPSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "IPSetDescriptors": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::IPSet.IPSetDescriptor"
              },
              "type": "array"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::IPSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::IPSet.IPSetDescriptor": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Type", "Value"],
      "type": "object"
    },
    "AWS::WAFRegional::RateBasedRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MatchPredicates": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::RateBasedRule.Predicate"
              },
              "type": "array"
            },
            "MetricName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RateKey": {
              "type": "string"
            },
            "RateLimit": {
              "type": "number"
            }
          },
          "required": ["MetricName", "Name", "RateKey", "RateLimit"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::RateBasedRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::RateBasedRule.Predicate": {
      "additionalProperties": false,
      "properties": {
        "DataId": {
          "type": "string"
        },
        "Negated": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["DataId", "Negated", "Type"],
      "type": "object"
    },
    "AWS::WAFRegional::RegexPatternSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "RegexPatternStrings": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["Name", "RegexPatternStrings"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::RegexPatternSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::Rule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "MetricName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Predicates": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::Rule.Predicate"
              },
              "type": "array"
            }
          },
          "required": ["MetricName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::Rule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::Rule.Predicate": {
      "additionalProperties": false,
      "properties": {
        "DataId": {
          "type": "string"
        },
        "Negated": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["DataId", "Negated", "Type"],
      "type": "object"
    },
    "AWS::WAFRegional::SizeConstraintSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SizeConstraints": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.SizeConstraint"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::SizeConstraintSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::SizeConstraintSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAFRegional::SizeConstraintSet.SizeConstraint": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.FieldToMatch"
        },
        "Size": {
          "type": "number"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": [
        "ComparisonOperator",
        "FieldToMatch",
        "Size",
        "TextTransformation"
      ],
      "type": "object"
    },
    "AWS::WAFRegional::SqlInjectionMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "SqlInjectionMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::SqlInjectionMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": ["FieldToMatch", "TextTransformation"],
      "type": "object"
    },
    "AWS::WAFRegional::WebACL": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "DefaultAction": {
              "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action"
            },
            "MetricName": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::WebACL.Rule"
              },
              "type": "array"
            }
          },
          "required": ["DefaultAction", "MetricName", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::WebACL"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::WebACL.Action": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAFRegional::WebACL.Rule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action"
        },
        "Priority": {
          "type": "number"
        },
        "RuleId": {
          "type": "string"
        }
      },
      "required": ["Action", "Priority", "RuleId"],
      "type": "object"
    },
    "AWS::WAFRegional::WebACLAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceArn": {
              "type": "string"
            },
            "WebACLId": {
              "type": "string"
            }
          },
          "required": ["ResourceArn", "WebACLId"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::WebACLAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::XssMatchSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            },
            "XssMatchTuples": {
              "items": {
                "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.XssMatchTuple"
              },
              "type": "array"
            }
          },
          "required": ["Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFRegional::XssMatchSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFRegional::XssMatchSet.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "Data": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::WAFRegional::XssMatchSet.XssMatchTuple": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.FieldToMatch"
        },
        "TextTransformation": {
          "type": "string"
        }
      },
      "required": ["FieldToMatch", "TextTransformation"],
      "type": "object"
    },
    "AWS::WAFv2::IPSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Addresses": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Description": {
              "type": "string"
            },
            "IPAddressVersion": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Scope": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["Addresses", "IPAddressVersion", "Scope"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::IPSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "LogDestinationConfigs": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "LoggingFilter": {
              "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LoggingFilter"
            },
            "RedactedFields": {
              "items": {
                "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch"
              },
              "type": "array"
            },
            "ResourceArn": {
              "type": "string"
            }
          },
          "required": ["LogDestinationConfigs", "ResourceArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::LoggingConfiguration"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.ActionCondition": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "type": "string"
        }
      },
      "required": ["Action"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.Condition": {
      "additionalProperties": false,
      "properties": {
        "ActionCondition": {
          "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.ActionCondition"
        },
        "LabelNameCondition": {
          "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LabelNameCondition"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "JsonBody": {
          "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.JsonBody"
        },
        "Method": {
          "type": "object"
        },
        "QueryString": {
          "type": "object"
        },
        "SingleHeader": {
          "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.SingleHeader"
        },
        "UriPath": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.Filter": {
      "additionalProperties": false,
      "properties": {
        "Behavior": {
          "type": "string"
        },
        "Conditions": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.Condition"
          },
          "type": "array"
        },
        "Requirement": {
          "type": "string"
        }
      },
      "required": ["Behavior", "Conditions", "Requirement"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.JsonBody": {
      "additionalProperties": false,
      "properties": {
        "InvalidFallbackBehavior": {
          "type": "string"
        },
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.MatchPattern"
        },
        "MatchScope": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.LabelNameCondition": {
      "additionalProperties": false,
      "properties": {
        "LabelName": {
          "type": "string"
        }
      },
      "required": ["LabelName"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.LoggingFilter": {
      "additionalProperties": false,
      "properties": {
        "DefaultBehavior": {
          "type": "string"
        },
        "Filters": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.Filter"
          },
          "type": "array"
        }
      },
      "required": ["DefaultBehavior", "Filters"],
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.MatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "IncludedPaths": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::LoggingConfiguration.SingleHeader": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::RegexPatternSet": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RegularExpressionList": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "Scope": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["RegularExpressionList", "Scope"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::RegexPatternSet"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AvailableLabels": {
              "items": {
                "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary"
              },
              "type": "array"
            },
            "Capacity": {
              "type": "number"
            },
            "ConsumedLabels": {
              "items": {
                "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary"
              },
              "type": "array"
            },
            "CustomResponseBodies": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponseBody"
                }
              },
              "type": "object"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Rule"
              },
              "type": "array"
            },
            "Scope": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "VisibilityConfig": {
              "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig"
            }
          },
          "required": ["Capacity", "Scope", "VisibilityConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::RuleGroup"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Allow": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.AndStatement": {
      "additionalProperties": false,
      "properties": {
        "Statements": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement"
          },
          "type": "array"
        }
      },
      "required": ["Statements"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Block": {
      "additionalProperties": false,
      "properties": {
        "CustomResponse": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponse"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Body": {
      "additionalProperties": false,
      "properties": {
        "OversizeHandling": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.ByteMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "PositionalConstraint": {
          "type": "string"
        },
        "SearchString": {
          "type": "string"
        },
        "SearchStringBase64": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": [
        "FieldToMatch",
        "PositionalConstraint",
        "TextTransformations"
      ],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Captcha": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CaptchaConfig": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTimeProperty": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Challenge": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.ChallengeConfig": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTimeProperty": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CookieMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "ExcludedCookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludedCookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Cookies": {
      "additionalProperties": false,
      "properties": {
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CookieMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope", "OversizeHandling"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Count": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CustomHTTPHeader": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CustomRequestHandling": {
      "additionalProperties": false,
      "properties": {
        "InsertHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomHTTPHeader"
          },
          "type": "array"
        }
      },
      "required": ["InsertHeaders"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CustomResponse": {
      "additionalProperties": false,
      "properties": {
        "CustomResponseBodyKey": {
          "type": "string"
        },
        "ResponseCode": {
          "type": "number"
        },
        "ResponseHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomHTTPHeader"
          },
          "type": "array"
        }
      },
      "required": ["ResponseCode"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.CustomResponseBody": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        }
      },
      "required": ["Content", "ContentType"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "AllQueryArguments": {
          "type": "object"
        },
        "Body": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Body"
        },
        "Cookies": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Cookies"
        },
        "Headers": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Headers"
        },
        "JsonBody": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonBody"
        },
        "Method": {
          "type": "object"
        },
        "QueryString": {
          "type": "object"
        },
        "SingleHeader": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleHeader"
        },
        "SingleQueryArgument": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleQueryArgument"
        },
        "UriPath": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.ForwardedIPConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FallbackBehavior": {
          "type": "string"
        },
        "HeaderName": {
          "type": "string"
        }
      },
      "required": ["FallbackBehavior", "HeaderName"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.GeoMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "CountryCodes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.HeaderMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "ExcludedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Headers": {
      "additionalProperties": false,
      "properties": {
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.HeaderMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope", "OversizeHandling"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FallbackBehavior": {
          "type": "string"
        },
        "HeaderName": {
          "type": "string"
        },
        "Position": {
          "type": "string"
        }
      },
      "required": ["FallbackBehavior", "HeaderName", "Position"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.IPSetReferenceStatement": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "IPSetForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.ImmunityTimeProperty": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTime": {
          "type": "number"
        }
      },
      "required": ["ImmunityTime"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.JsonBody": {
      "additionalProperties": false,
      "properties": {
        "InvalidFallbackBehavior": {
          "type": "string"
        },
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.JsonMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "IncludedPaths": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Label": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.LabelMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        }
      },
      "required": ["Key", "Scope"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.LabelSummary": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.NotStatement": {
      "additionalProperties": false,
      "properties": {
        "Statement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement"
        }
      },
      "required": ["Statement"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.OrStatement": {
      "additionalProperties": false,
      "properties": {
        "Statements": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement"
          },
          "type": "array"
        }
      },
      "required": ["Statements"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.RateBasedStatement": {
      "additionalProperties": false,
      "properties": {
        "AggregateKeyType": {
          "type": "string"
        },
        "ForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration"
        },
        "Limit": {
          "type": "number"
        },
        "ScopeDownStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement"
        }
      },
      "required": ["AggregateKeyType", "Limit"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.RegexMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "RegexString": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "RegexString", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["Arn", "FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Rule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RuleAction"
        },
        "CaptchaConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaConfig"
        },
        "ChallengeConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeConfig"
        },
        "Name": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "RuleLabels": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Label"
          },
          "type": "array"
        },
        "Statement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement"
        },
        "VisibilityConfig": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig"
        }
      },
      "required": ["Name", "Priority", "Statement", "VisibilityConfig"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.RuleAction": {
      "additionalProperties": false,
      "properties": {
        "Allow": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Allow"
        },
        "Block": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Block"
        },
        "Captcha": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Captcha"
        },
        "Challenge": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Challenge"
        },
        "Count": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Count"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.SingleHeader": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.SingleQueryArgument": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.SizeConstraintStatement": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "Size": {
          "type": "number"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": [
        "ComparisonOperator",
        "FieldToMatch",
        "Size",
        "TextTransformations"
      ],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.SqliMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "SensitivityLevel": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.Statement": {
      "additionalProperties": false,
      "properties": {
        "AndStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AndStatement"
        },
        "ByteMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ByteMatchStatement"
        },
        "GeoMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.GeoMatchStatement"
        },
        "IPSetReferenceStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetReferenceStatement"
        },
        "LabelMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelMatchStatement"
        },
        "NotStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.NotStatement"
        },
        "OrStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.OrStatement"
        },
        "RateBasedStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RateBasedStatement"
        },
        "RegexMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexMatchStatement"
        },
        "RegexPatternSetReferenceStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement"
        },
        "SizeConstraintStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SizeConstraintStatement"
        },
        "SqliMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SqliMatchStatement"
        },
        "XssMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.XssMatchStatement"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.TextTransformation": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Priority", "Type"],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.VisibilityConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchMetricsEnabled": {
          "type": "boolean"
        },
        "MetricName": {
          "type": "string"
        },
        "SampledRequestsEnabled": {
          "type": "boolean"
        }
      },
      "required": [
        "CloudWatchMetricsEnabled",
        "MetricName",
        "SampledRequestsEnabled"
      ],
      "type": "object"
    },
    "AWS::WAFv2::RuleGroup.XssMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "CaptchaConfig": {
              "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig"
            },
            "ChallengeConfig": {
              "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig"
            },
            "CustomResponseBodies": {
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9]+$": {
                  "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponseBody"
                }
              },
              "type": "object"
            },
            "DefaultAction": {
              "$ref": "#/definitions/AWS::WAFv2::WebACL.DefaultAction"
            },
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "Rules": {
              "items": {
                "$ref": "#/definitions/AWS::WAFv2::WebACL.Rule"
              },
              "type": "array"
            },
            "Scope": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "TokenDomains": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "VisibilityConfig": {
              "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig"
            }
          },
          "required": ["DefaultAction", "Scope", "VisibilityConfig"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::WebACL"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet": {
      "additionalProperties": false,
      "properties": {
        "InspectionLevel": {
          "type": "string"
        }
      },
      "required": ["InspectionLevel"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.AllowAction": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.AndStatement": {
      "additionalProperties": false,
      "properties": {
        "Statements": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
          },
          "type": "array"
        }
      },
      "required": ["Statements"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.BlockAction": {
      "additionalProperties": false,
      "properties": {
        "CustomResponse": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponse"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Body": {
      "additionalProperties": false,
      "properties": {
        "OversizeHandling": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ByteMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "PositionalConstraint": {
          "type": "string"
        },
        "SearchString": {
          "type": "string"
        },
        "SearchStringBase64": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": [
        "FieldToMatch",
        "PositionalConstraint",
        "TextTransformations"
      ],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CaptchaAction": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CaptchaConfig": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTimeProperty": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ChallengeAction": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ChallengeConfig": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTimeProperty": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CookieMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "ExcludedCookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludedCookies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Cookies": {
      "additionalProperties": false,
      "properties": {
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CookieMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope", "OversizeHandling"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CountAction": {
      "additionalProperties": false,
      "properties": {
        "CustomRequestHandling": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CustomHTTPHeader": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Name", "Value"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CustomRequestHandling": {
      "additionalProperties": false,
      "properties": {
        "InsertHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader"
          },
          "type": "array"
        }
      },
      "required": ["InsertHeaders"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CustomResponse": {
      "additionalProperties": false,
      "properties": {
        "CustomResponseBodyKey": {
          "type": "string"
        },
        "ResponseCode": {
          "type": "number"
        },
        "ResponseHeaders": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader"
          },
          "type": "array"
        }
      },
      "required": ["ResponseCode"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.CustomResponseBody": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        }
      },
      "required": ["Content", "ContentType"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.DefaultAction": {
      "additionalProperties": false,
      "properties": {
        "Allow": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction"
        },
        "Block": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ExcludedRule": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.FieldIdentifier": {
      "additionalProperties": false,
      "properties": {
        "Identifier": {
          "type": "string"
        }
      },
      "required": ["Identifier"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.FieldToMatch": {
      "additionalProperties": false,
      "properties": {
        "AllQueryArguments": {
          "type": "object"
        },
        "Body": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Body"
        },
        "Cookies": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Cookies"
        },
        "Headers": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Headers"
        },
        "JsonBody": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonBody"
        },
        "Method": {
          "type": "object"
        },
        "QueryString": {
          "type": "object"
        },
        "SingleHeader": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleHeader"
        },
        "SingleQueryArgument": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleQueryArgument"
        },
        "UriPath": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ForwardedIPConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FallbackBehavior": {
          "type": "string"
        },
        "HeaderName": {
          "type": "string"
        }
      },
      "required": ["FallbackBehavior", "HeaderName"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.GeoMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "CountryCodes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.HeaderMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "ExcludedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "IncludedHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Headers": {
      "additionalProperties": false,
      "properties": {
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.HeaderMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope", "OversizeHandling"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration": {
      "additionalProperties": false,
      "properties": {
        "FallbackBehavior": {
          "type": "string"
        },
        "HeaderName": {
          "type": "string"
        },
        "Position": {
          "type": "string"
        }
      },
      "required": ["FallbackBehavior", "HeaderName", "Position"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.IPSetReferenceStatement": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "IPSetForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ImmunityTimeProperty": {
      "additionalProperties": false,
      "properties": {
        "ImmunityTime": {
          "type": "number"
        }
      },
      "required": ["ImmunityTime"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.JsonBody": {
      "additionalProperties": false,
      "properties": {
        "InvalidFallbackBehavior": {
          "type": "string"
        },
        "MatchPattern": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonMatchPattern"
        },
        "MatchScope": {
          "type": "string"
        },
        "OversizeHandling": {
          "type": "string"
        }
      },
      "required": ["MatchPattern", "MatchScope"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.JsonMatchPattern": {
      "additionalProperties": false,
      "properties": {
        "All": {
          "type": "object"
        },
        "IncludedPaths": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Label": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.LabelMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Scope": {
          "type": "string"
        }
      },
      "required": ["Key", "Scope"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ManagedRuleGroupConfig": {
      "additionalProperties": false,
      "properties": {
        "AWSManagedRulesBotControlRuleSet": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet"
        },
        "LoginPath": {
          "type": "string"
        },
        "PasswordField": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier"
        },
        "PayloadType": {
          "type": "string"
        },
        "UsernameField": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.ManagedRuleGroupStatement": {
      "additionalProperties": false,
      "properties": {
        "ExcludedRules": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule"
          },
          "type": "array"
        },
        "ManagedRuleGroupConfigs": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupConfig"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "RuleActionOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleActionOverride"
          },
          "type": "array"
        },
        "ScopeDownStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
        },
        "VendorName": {
          "type": "string"
        },
        "Version": {
          "type": "string"
        }
      },
      "required": ["Name", "VendorName"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.NotStatement": {
      "additionalProperties": false,
      "properties": {
        "Statement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
        }
      },
      "required": ["Statement"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.OrStatement": {
      "additionalProperties": false,
      "properties": {
        "Statements": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
          },
          "type": "array"
        }
      },
      "required": ["Statements"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.OverrideAction": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "object"
        },
        "None": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RateBasedStatement": {
      "additionalProperties": false,
      "properties": {
        "AggregateKeyType": {
          "type": "string"
        },
        "ForwardedIPConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration"
        },
        "Limit": {
          "type": "number"
        },
        "ScopeDownStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
        }
      },
      "required": ["AggregateKeyType", "Limit"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RegexMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "RegexString": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "RegexString", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["Arn", "FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Rule": {
      "additionalProperties": false,
      "properties": {
        "Action": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction"
        },
        "CaptchaConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig"
        },
        "ChallengeConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig"
        },
        "Name": {
          "type": "string"
        },
        "OverrideAction": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.OverrideAction"
        },
        "Priority": {
          "type": "number"
        },
        "RuleLabels": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.Label"
          },
          "type": "array"
        },
        "Statement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement"
        },
        "VisibilityConfig": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig"
        }
      },
      "required": ["Name", "Priority", "Statement", "VisibilityConfig"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RuleAction": {
      "additionalProperties": false,
      "properties": {
        "Allow": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction"
        },
        "Block": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction"
        },
        "Captcha": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaAction"
        },
        "Challenge": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeAction"
        },
        "Count": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.CountAction"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RuleActionOverride": {
      "additionalProperties": false,
      "properties": {
        "ActionToUse": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction"
        },
        "Name": {
          "type": "string"
        }
      },
      "required": ["ActionToUse", "Name"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.RuleGroupReferenceStatement": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "type": "string"
        },
        "ExcludedRules": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule"
          },
          "type": "array"
        },
        "RuleActionOverrides": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleActionOverride"
          },
          "type": "array"
        }
      },
      "required": ["Arn"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.SingleHeader": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.SingleQueryArgument": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        }
      },
      "required": ["Name"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.SizeConstraintStatement": {
      "additionalProperties": false,
      "properties": {
        "ComparisonOperator": {
          "type": "string"
        },
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "Size": {
          "type": "number"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": [
        "ComparisonOperator",
        "FieldToMatch",
        "Size",
        "TextTransformations"
      ],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.SqliMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "SensitivityLevel": {
          "type": "string"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.Statement": {
      "additionalProperties": false,
      "properties": {
        "AndStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.AndStatement"
        },
        "ByteMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ByteMatchStatement"
        },
        "GeoMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.GeoMatchStatement"
        },
        "IPSetReferenceStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetReferenceStatement"
        },
        "LabelMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.LabelMatchStatement"
        },
        "ManagedRuleGroupStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupStatement"
        },
        "NotStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.NotStatement"
        },
        "OrStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.OrStatement"
        },
        "RateBasedStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RateBasedStatement"
        },
        "RegexMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexMatchStatement"
        },
        "RegexPatternSetReferenceStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement"
        },
        "RuleGroupReferenceStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleGroupReferenceStatement"
        },
        "SizeConstraintStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.SizeConstraintStatement"
        },
        "SqliMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.SqliMatchStatement"
        },
        "XssMatchStatement": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.XssMatchStatement"
        }
      },
      "type": "object"
    },
    "AWS::WAFv2::WebACL.TextTransformation": {
      "additionalProperties": false,
      "properties": {
        "Priority": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": ["Priority", "Type"],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.VisibilityConfig": {
      "additionalProperties": false,
      "properties": {
        "CloudWatchMetricsEnabled": {
          "type": "boolean"
        },
        "MetricName": {
          "type": "string"
        },
        "SampledRequestsEnabled": {
          "type": "boolean"
        }
      },
      "required": [
        "CloudWatchMetricsEnabled",
        "MetricName",
        "SampledRequestsEnabled"
      ],
      "type": "object"
    },
    "AWS::WAFv2::WebACL.XssMatchStatement": {
      "additionalProperties": false,
      "properties": {
        "FieldToMatch": {
          "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch"
        },
        "TextTransformations": {
          "items": {
            "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation"
          },
          "type": "array"
        }
      },
      "required": ["FieldToMatch", "TextTransformations"],
      "type": "object"
    },
    "AWS::WAFv2::WebACLAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ResourceArn": {
              "type": "string"
            },
            "WebACLArn": {
              "type": "string"
            }
          },
          "required": ["ResourceArn", "WebACLArn"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WAFv2::WebACLAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Wisdom::Assistant": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "ServerSideEncryptionConfiguration": {
              "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "Type": {
              "type": "string"
            }
          },
          "required": ["Name", "Type"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Wisdom::Assistant"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Wisdom::AssistantAssociation": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AssistantId": {
              "type": "string"
            },
            "Association": {
              "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData"
            },
            "AssociationType": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["AssistantId", "Association", "AssociationType"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Wisdom::AssistantAssociation"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Wisdom::AssistantAssociation.AssociationData": {
      "additionalProperties": false,
      "properties": {
        "KnowledgeBaseId": {
          "type": "string"
        }
      },
      "required": ["KnowledgeBaseId"],
      "type": "object"
    },
    "AWS::Wisdom::KnowledgeBase": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "Description": {
              "type": "string"
            },
            "KnowledgeBaseType": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            },
            "RenderingConfiguration": {
              "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration"
            },
            "ServerSideEncryptionConfiguration": {
              "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration"
            },
            "SourceConfiguration": {
              "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["KnowledgeBaseType", "Name"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::Wisdom::KnowledgeBase"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AppIntegrationArn": {
          "type": "string"
        },
        "ObjectFields": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": ["AppIntegrationArn", "ObjectFields"],
      "type": "object"
    },
    "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": {
      "additionalProperties": false,
      "properties": {
        "TemplateUri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": {
      "additionalProperties": false,
      "properties": {
        "KmsKeyId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::Wisdom::KnowledgeBase.SourceConfiguration": {
      "additionalProperties": false,
      "properties": {
        "AppIntegrations": {
          "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration"
        }
      },
      "required": ["AppIntegrations"],
      "type": "object"
    },
    "AWS::WorkSpaces::ConnectionAlias": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "ConnectionString": {
              "type": "string"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            }
          },
          "required": ["ConnectionString"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WorkSpaces::ConnectionAlias"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WorkSpaces::ConnectionAlias.ConnectionAliasAssociation": {
      "additionalProperties": false,
      "properties": {
        "AssociatedAccountId": {
          "type": "string"
        },
        "AssociationStatus": {
          "type": "string"
        },
        "ConnectionIdentifier": {
          "type": "string"
        },
        "ResourceId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::WorkSpaces::Workspace": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BundleId": {
              "type": "string"
            },
            "DirectoryId": {
              "type": "string"
            },
            "RootVolumeEncryptionEnabled": {
              "type": "boolean"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/Tag"
              },
              "type": "array"
            },
            "UserName": {
              "type": "string"
            },
            "UserVolumeEncryptionEnabled": {
              "type": "boolean"
            },
            "VolumeEncryptionKey": {
              "type": "string"
            },
            "WorkspaceProperties": {
              "$ref": "#/definitions/AWS::WorkSpaces::Workspace.WorkspaceProperties"
            }
          },
          "required": ["BundleId", "DirectoryId", "UserName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::WorkSpaces::Workspace"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::WorkSpaces::Workspace.WorkspaceProperties": {
      "additionalProperties": false,
      "properties": {
        "ComputeTypeName": {
          "type": "string"
        },
        "RootVolumeSizeGib": {
          "type": "number"
        },
        "RunningMode": {
          "type": "string"
        },
        "RunningModeAutoStopTimeoutInMinutes": {
          "type": "number"
        },
        "UserVolumeSizeGib": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::XRay::Group": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "FilterExpression": {
              "type": "string"
            },
            "GroupName": {
              "type": "string"
            },
            "InsightsConfiguration": {
              "$ref": "#/definitions/AWS::XRay::Group.InsightsConfiguration"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::XRay::Group.TagsItems"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::XRay::Group"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::XRay::Group.InsightsConfiguration": {
      "additionalProperties": false,
      "properties": {
        "InsightsEnabled": {
          "type": "boolean"
        },
        "NotificationsEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AWS::XRay::Group.TagsItems": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "AWS::XRay::ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "BypassPolicyLockoutCheck": {
              "type": "boolean"
            },
            "PolicyDocument": {
              "type": "string"
            },
            "PolicyName": {
              "type": "string"
            }
          },
          "required": ["PolicyDocument", "PolicyName"],
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::XRay::ResourcePolicy"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "AWS::XRay::SamplingRule": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "RuleName": {
              "type": "string"
            },
            "SamplingRule": {
              "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule"
            },
            "SamplingRuleRecord": {
              "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleRecord"
            },
            "SamplingRuleUpdate": {
              "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleUpdate"
            },
            "Tags": {
              "items": {
                "$ref": "#/definitions/AWS::XRay::SamplingRule.TagsItems"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "Type": {
          "enum": ["AWS::XRay::SamplingRule"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "AWS::XRay::SamplingRule.SamplingRule": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "FixedRate": {
          "type": "number"
        },
        "HTTPMethod": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "ReservoirSize": {
          "type": "number"
        },
        "ResourceARN": {
          "type": "string"
        },
        "RuleARN": {
          "type": "string"
        },
        "RuleName": {
          "type": "string"
        },
        "ServiceName": {
          "type": "string"
        },
        "ServiceType": {
          "type": "string"
        },
        "URLPath": {
          "type": "string"
        },
        "Version": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "AWS::XRay::SamplingRule.SamplingRuleRecord": {
      "additionalProperties": false,
      "properties": {
        "CreatedAt": {
          "type": "string"
        },
        "ModifiedAt": {
          "type": "string"
        },
        "SamplingRule": {
          "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule"
        }
      },
      "type": "object"
    },
    "AWS::XRay::SamplingRule.SamplingRuleUpdate": {
      "additionalProperties": false,
      "properties": {
        "Attributes": {
          "additionalProperties": true,
          "patternProperties": {
            "^[a-zA-Z0-9]+$": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "FixedRate": {
          "type": "number"
        },
        "HTTPMethod": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Priority": {
          "type": "number"
        },
        "ReservoirSize": {
          "type": "number"
        },
        "ResourceARN": {
          "type": "string"
        },
        "RuleARN": {
          "type": "string"
        },
        "RuleName": {
          "type": "string"
        },
        "ServiceName": {
          "type": "string"
        },
        "ServiceType": {
          "type": "string"
        },
        "URLPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AWS::XRay::SamplingRule.TagsItems": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "Alexa::ASK::Skill": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "type": "string"
        },
        "DeletionPolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        },
        "DependsOn": {
          "anyOf": [
            {
              "pattern": "^[a-zA-Z0-9]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[a-zA-Z0-9]+$",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "Metadata": {
          "type": "object"
        },
        "Properties": {
          "additionalProperties": false,
          "properties": {
            "AuthenticationConfiguration": {
              "$ref": "#/definitions/Alexa::ASK::Skill.AuthenticationConfiguration"
            },
            "SkillPackage": {
              "$ref": "#/definitions/Alexa::ASK::Skill.SkillPackage"
            },
            "VendorId": {
              "type": "string"
            }
          },
          "required": [
            "AuthenticationConfiguration",
            "SkillPackage",
            "VendorId"
          ],
          "type": "object"
        },
        "Type": {
          "enum": ["Alexa::ASK::Skill"],
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "enum": ["Delete", "Retain", "Snapshot"],
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "Alexa::ASK::Skill.AuthenticationConfiguration": {
      "additionalProperties": false,
      "properties": {
        "ClientId": {
          "type": "string"
        },
        "ClientSecret": {
          "type": "string"
        },
        "RefreshToken": {
          "type": "string"
        }
      },
      "required": ["ClientId", "ClientSecret", "RefreshToken"],
      "type": "object"
    },
    "Alexa::ASK::Skill.Overrides": {
      "additionalProperties": false,
      "properties": {
        "Manifest": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "Alexa::ASK::Skill.SkillPackage": {
      "additionalProperties": false,
      "properties": {
        "Overrides": {
          "$ref": "#/definitions/Alexa::ASK::Skill.Overrides"
        },
        "S3Bucket": {
          "type": "string"
        },
        "S3BucketRole": {
          "type": "string"
        },
        "S3Key": {
          "type": "string"
        },
        "S3ObjectVersion": {
          "type": "string"
        }
      },
      "required": ["S3Bucket", "S3Key"],
      "type": "object"
    },
    "AlexaSkillEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/AlexaSkillEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["AlexaSkill"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type"],
      "title": "AlexaSkillEvent",
      "type": "object"
    },
    "AlexaSkillEventProperties": {
      "additionalProperties": false,
      "properties": {
        "SkillId": {
          "description": "The Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SkillId",
          "type": "string"
        }
      },
      "title": "AlexaSkillEventProperties",
      "type": "object"
    },
    "ApiAuth": {
      "additionalProperties": false,
      "properties": {
        "ApiKeyRequired": {
          "description": "Requires an API key for this API, path, and method\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Requires an API key for this API, path, and method\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ApiKeyRequired",
          "type": "boolean"
        },
        "AuthorizationScopes": {
          "description": "The authorization scopes to apply to this API, path, and method\\.  \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The authorization scopes to apply to this API, path, and method\\.  \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "Authorizer": {
          "description": "The `Authorizer` for a specific Function  \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The `Authorizer` for a specific Function  \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Authorizer",
          "type": "string"
        },
        "InvokeRole": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\.  \n*Type*: String  \n*Required*: No  \n*Default*: `CALLER_CREDENTIALS`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.",
          "markdownDescription": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\.  \n*Type*: String  \n*Required*: No  \n*Default*: `CALLER_CREDENTIALS`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.",
          "title": "InvokeRole"
        },
        "ResourcePolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy"
            }
          ],
          "description": "Configure Resource Policy for this path on an API\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configure Resource Policy for this path on an API\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ResourcePolicy"
        }
      },
      "title": "ApiAuth",
      "type": "object"
    },
    "CloudWatchLogsEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/CloudWatchLogsEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["CloudWatchLogs"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "CloudWatchLogsEvent",
      "type": "object"
    },
    "CloudWatchLogsEventProperties": {
      "additionalProperties": false,
      "properties": {
        "FilterPattern": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.",
          "markdownDescription": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.",
          "title": "FilterPattern"
        },
        "LogGroupName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.",
          "markdownDescription": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.",
          "title": "LogGroupName"
        }
      },
      "required": ["FilterPattern", "LogGroupName"],
      "title": "CloudWatchLogsEventProperties",
      "type": "object"
    },
    "CodeUri": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "An Amazon S3 bucket in the same AWS Region as your function\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "markdownDescription": "An Amazon S3 bucket in the same AWS Region as your function\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "title": "Bucket"
        },
        "Key": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The Amazon S3 key of the deployment package\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "markdownDescription": "The Amazon S3 key of the deployment package\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "title": "Key"
        },
        "Version": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "For versioned objects, the version of the deployment package object to use\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "markdownDescription": "For versioned objects, the version of the deployment package object to use\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "title": "Version"
        }
      },
      "required": ["Bucket", "Key"],
      "title": "CodeUri",
      "type": "object"
    },
    "CognitoAuthorizer": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "description": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "Identity": {
          "allOf": [
            {
              "$ref": "#/definitions/CognitoAuthorizerIdentity"
            }
          ],
          "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\.  \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\.  \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Identity"
        },
        "UserPoolArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "UserPoolArn"
        }
      },
      "required": ["UserPoolArn"],
      "title": "CognitoAuthorizer",
      "type": "object"
    },
    "CognitoAuthorizerIdentity": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "description": "Specify the header name for Authorization in the OpenApi definition\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Authorization  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Authorization  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Header",
          "type": "string"
        },
        "ReauthorizeEvery": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ReauthorizeEvery"
        },
        "ValidationExpression": {
          "description": "Specify a validation expression for validating the incoming Identity  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify a validation expression for validating the incoming Identity  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ValidationExpression",
          "type": "string"
        }
      },
      "title": "CognitoAuthorizerIdentity",
      "type": "object"
    },
    "CognitoEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/CognitoEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Cognito"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "CognitoEvent",
      "type": "object"
    },
    "CognitoEventProperties": {
      "additionalProperties": false,
      "properties": {
        "Trigger": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Lambda trigger configuration information for the new user pool\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.",
          "markdownDescription": "The Lambda trigger configuration information for the new user pool\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.",
          "title": "Trigger"
        },
        "UserPool": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Reference to UserPool defined in the same template  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Reference to UserPool defined in the same template  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "UserPool"
        }
      },
      "required": ["Trigger", "UserPool"],
      "title": "CognitoEventProperties",
      "type": "object"
    },
    "ContentUri": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon S3 bucket of the layer archive\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "markdownDescription": "The Amazon S3 bucket of the layer archive\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "title": "Bucket"
        },
        "Key": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon S3 key of the layer archive\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "markdownDescription": "The Amazon S3 key of the layer archive\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "title": "Key"
        },
        "Version": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "For versioned objects, the version of the layer archive object to use\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "markdownDescription": "For versioned objects, the version of the layer archive object to use\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.",
          "title": "Version"
        }
      },
      "required": ["Bucket", "Key"],
      "title": "ContentUri",
      "type": "object"
    },
    "Cors": {
      "additionalProperties": false,
      "properties": {
        "AllowCredentials": {
          "description": "Boolean indicating whether request is allowed to contain credentials\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Boolean indicating whether request is allowed to contain credentials\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AllowCredentials",
          "type": "boolean"
        },
        "AllowHeaders": {
          "description": "String of headers to allow\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "String of headers to allow\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AllowHeaders",
          "type": "string"
        },
        "AllowMethods": {
          "description": "String containing the HTTP methods to allow\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "String containing the HTTP methods to allow\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AllowMethods",
          "type": "string"
        },
        "AllowOrigin": {
          "description": "String of origin to allow\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "String of origin to allow\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AllowOrigin",
          "type": "string"
        },
        "MaxAge": {
          "description": "String containing the number of seconds to cache CORS Preflight request\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "String containing the number of seconds to cache CORS Preflight request\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "MaxAge",
          "type": "string"
        }
      },
      "required": ["AllowOrigin"],
      "title": "Cors",
      "type": "object"
    },
    "CustomResource": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "additionalProperties": true,
          "properties": {
            "ServiceToken": {
              "type": "string"
            }
          },
          "required": ["ServiceToken"],
          "type": "object"
        },
        "Type": {
          "pattern": "^Custom::[a-zA-Z_@-]+$",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "type": "object"
    },
    "DeadLetterQueue": {
      "additionalProperties": false,
      "properties": {
        "TargetArn": {
          "description": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.",
          "title": "TargetArn",
          "type": "string"
        },
        "Type": {
          "description": "The type of dead letter queue\\.  \n*Valid values*: `SNS`, `SQS`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SNS", "SQS"],
          "markdownDescription": "The type of dead letter queue\\.  \n*Valid values*: `SNS`, `SQS`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["TargetArn", "Type"],
      "title": "DeadLetterQueue",
      "type": "object"
    },
    "DeploymentPreference": {
      "additionalProperties": false,
      "properties": {
        "Alarms": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "items": {
                "type": "object"
              },
              "type": "array"
            }
          ],
          "description": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\.  \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\.  \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Alarms"
        },
        "Enabled": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "Whether this deployment preference is enabled\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Whether this deployment preference is enabled\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Enabled"
        },
        "Hooks": {
          "allOf": [
            {
              "$ref": "#/definitions/Hooks"
            }
          ],
          "description": "Validation Lambda functions that are run before and after traffic shifting\\.  \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Validation Lambda functions that are run before and after traffic shifting\\.  \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Hooks"
        },
        "PassthroughCondition": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to False\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to False\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "PassthroughCondition"
        },
        "Role": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Role"
        },
        "TriggerConfigurations": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of trigger configurations you want to associate with the deployment group\\. Used to notify an SNS topic on lifecycle events\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TriggerConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations) property of an `AWS::CodeDeploy::DeploymentGroup` resource\\.",
          "markdownDescription": "A list of trigger configurations you want to associate with the deployment group\\. Used to notify an SNS topic on lifecycle events\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TriggerConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations) property of an `AWS::CodeDeploy::DeploymentGroup` resource\\.",
          "title": "TriggerConfigurations"
        },
        "Type": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "There are two categories of deployment types at the moment: Linear and Canary\\. For more information about available deployment types see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "There are two categories of deployment types at the moment: Linear and Canary\\. For more information about available deployment types see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type"
        }
      },
      "title": "DeploymentPreference",
      "type": "object"
    },
    "DynamoDBEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/DynamoDBEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["DynamoDB"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "DynamoDBEvent",
      "type": "object"
    },
    "DynamoDBEventProperties": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `1000`",
          "markdownDescription": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `1000`",
          "title": "BatchSize"
        },
        "BisectBatchOnFunctionError": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "If the function returns an error, split the batch in two and retry\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BisectBatchOnFunctionError`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "If the function returns an error, split the batch in two and retry\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BisectBatchOnFunctionError`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "BisectBatchOnFunctionError"
        },
        "DestinationConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\.  \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\.  \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "DestinationConfig"
        },
        "Enabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Enabled"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "FunctionResponseTypes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `ReportBatchItemFailures`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `ReportBatchItemFailures`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FunctionResponseTypes"
        },
        "MaximumBatchingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumBatchingWindowInSeconds"
        },
        "MaximumRecordAgeInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum age of a record that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumRecordAgeInSeconds"
        },
        "MaximumRetryAttempts": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of times to retry when the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum number of times to retry when the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumRetryAttempts"
        },
        "ParallelizationFactor": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The number of batches to process from each shard concurrently\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The number of batches to process from each shard concurrently\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "ParallelizationFactor"
        },
        "StartingPosition": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPosition"
        },
        "StartingPositionTimestamp": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPositionTimestamp"
        },
        "Stream": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the DynamoDB stream\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the DynamoDB stream\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Stream"
        },
        "TumblingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\.  \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\.  \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "TumblingWindowInSeconds"
        }
      },
      "required": ["Stream"],
      "title": "DynamoDBEventProperties",
      "type": "object"
    },
    "EmbeddedConnector": {
      "additionalProperties": false,
      "properties": {
        "DeletionPolicy": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "DependsOn": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Metadata": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/EmbeddedConnectorProperties"
        },
        "UpdatePolicy": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Properties"],
      "title": "EmbeddedConnector",
      "type": "object"
    },
    "EmbeddedConnectorProperties": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "allOf": [
            {
              "$ref": "#/definitions/ResourceReference"
            }
          ],
          "description": "The destination resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The destination resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Destination"
        },
        "Permissions": {
          "description": "The permission type that the source resource is allowed to perform on the destination resource\\.  \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\.  \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\.  \n*Valid values*: `Read` or `Write`  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "enum": ["Read", "Write"],
            "type": "string"
          },
          "markdownDescription": "The permission type that the source resource is allowed to perform on the destination resource\\.  \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\.  \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\.  \n*Valid values*: `Read` or `Write`  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Permissions",
          "type": "array"
        },
        "SourceReference": {
          "$ref": "#/definitions/SourceReference"
        }
      },
      "required": ["Destination", "Permissions"],
      "title": "EmbeddedConnectorProperties",
      "type": "object"
    },
    "EndpointConfiguration": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The endpoint type of a REST API\\.  \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.",
          "markdownDescription": "The endpoint type of a REST API\\.  \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.",
          "title": "Type"
        },
        "VPCEndpointIds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.",
          "markdownDescription": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.",
          "title": "VPCEndpointIds"
        }
      },
      "title": "EndpointConfiguration",
      "type": "object"
    },
    "EventInvokeConfig": {
      "additionalProperties": false,
      "properties": {
        "DestinationConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/EventInvokeDestinationConfig"
            }
          ],
          "description": "A configuration object that specifies the destination of an event after Lambda processes it\\.  \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.",
          "markdownDescription": "A configuration object that specifies the destination of an event after Lambda processes it\\.  \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.",
          "title": "DestinationConfig"
        },
        "MaximumEventAgeInSeconds": {
          "description": "The maximum age of a request that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.",
          "markdownDescription": "The maximum age of a request that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.",
          "title": "MaximumEventAgeInSeconds",
          "type": "integer"
        },
        "MaximumRetryAttempts": {
          "description": "The maximum number of times to retry before the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.",
          "markdownDescription": "The maximum number of times to retry before the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.",
          "title": "MaximumRetryAttempts",
          "type": "integer"
        }
      },
      "title": "EventInvokeConfig",
      "type": "object"
    },
    "EventInvokeDestinationConfig": {
      "additionalProperties": false,
      "properties": {
        "OnFailure": {
          "allOf": [
            {
              "$ref": "#/definitions/EventInvokeOnFailure"
            }
          ],
          "description": "A destination for events that failed processing\\.  \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.",
          "markdownDescription": "A destination for events that failed processing\\.  \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.",
          "title": "OnFailure"
        },
        "OnSuccess": {
          "allOf": [
            {
              "$ref": "#/definitions/EventInvokeOnSuccess"
            }
          ],
          "description": "A destination for events that were processed successfully\\.  \n*Type*: [OnSuccess](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onsuccess.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnSuccess`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.",
          "markdownDescription": "A destination for events that were processed successfully\\.  \n*Type*: [OnSuccess](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onsuccess.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnSuccess`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.",
          "title": "OnSuccess"
        }
      },
      "title": "EventInvokeDestinationConfig",
      "type": "object"
    },
    "EventInvokeOnFailure": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\.  \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\.  \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.",
          "title": "Destination"
        },
        "Type": {
          "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `<function-logical-id>.DestinationQueue` for SQS or `<function-logical-id>.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.",
          "enum": ["SQS", "SNS", "Lambda", "EventBridge"],
          "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `<function-logical-id>.DestinationQueue` for SQS or `<function-logical-id>.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "EventInvokeOnFailure",
      "type": "object"
    },
    "EventInvokeOnSuccess": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnSuccess`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\.  \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`OnSuccess`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\.  \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.",
          "title": "Destination"
        },
        "Type": {
          "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `<function-logical-id>.DestinationQueue` for SQS or `<function-logical-id>.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.",
          "enum": ["SQS", "SNS", "Lambda", "EventBridge"],
          "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `<function-logical-id>.DestinationQueue` for SQS or `<function-logical-id>.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "EventInvokeOnSuccess",
      "type": "object"
    },
    "EventsScheduleProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "A description of the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.",
          "title": "Description"
        },
        "Enabled": {
          "description": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "markdownDescription": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "title": "Enabled",
          "type": "boolean"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.",
          "title": "Name"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "Schedule": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.",
          "title": "Schedule"
        },
        "State": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "title": "State"
        }
      },
      "title": "EventsScheduleProperties",
      "type": "object"
    },
    "FunctionUrlConfig": {
      "additionalProperties": false,
      "properties": {
        "AuthType": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\.  \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide*  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.",
          "markdownDescription": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\.  \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide*  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.",
          "title": "AuthType"
        },
        "Cors": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\.  \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.",
          "markdownDescription": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\.  \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.",
          "title": "Cors"
        }
      },
      "required": ["AuthType"],
      "title": "FunctionUrlConfig",
      "type": "object"
    },
    "Hooks": {
      "additionalProperties": false,
      "properties": {
        "PostTraffic": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Lambda function that is run after traffic shifting\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Lambda function that is run after traffic shifting\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "PostTraffic"
        },
        "PreTraffic": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Lambda function that is run before traffic shifting\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Lambda function that is run before traffic shifting\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "PreTraffic"
        }
      },
      "title": "Hooks",
      "type": "object"
    },
    "HttpApiAuth": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "description": "The authorization scopes to apply to this API, path, and method\\.  \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The authorization scopes to apply to this API, path, and method\\.  \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "Authorizer": {
          "description": "The `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\.  \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\.  \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Authorizer",
          "type": "string"
        }
      },
      "title": "HttpApiAuth",
      "type": "object"
    },
    "HttpApiEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/HttpApiEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["HttpApi"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type"],
      "title": "HttpApiEvent",
      "type": "object"
    },
    "HttpApiEventProperties": {
      "additionalProperties": false,
      "properties": {
        "ApiId": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\.  \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\.  \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\.  \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\.  \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ApiId"
        },
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/HttpApiAuth"
            }
          ],
          "description": "Auth configuration for this specific Api\\+Path\\+Method\\.  \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\.  \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\.  \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\.  \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "Method": {
          "description": "HTTP method for which this function is invoked\\.  \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "HTTP method for which this function is invoked\\.  \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Method",
          "type": "string"
        },
        "Path": {
          "description": "Uri path for which this function is invoked\\. Must start with `/`\\.  \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Uri path for which this function is invoked\\. Must start with `/`\\.  \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Path",
          "type": "string"
        },
        "PayloadFormatVersion": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specifies the format of the payload sent to an integration\\.  \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\.  \n*Type*: String  \n*Required*: No  \n*Default*: 2\\.0  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies the format of the payload sent to an integration\\.  \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\.  \n*Type*: String  \n*Required*: No  \n*Default*: 2\\.0  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "PayloadFormatVersion"
        },
        "RouteSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\.  \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\.  \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "RouteSettings"
        },
        "TimeoutInMillis": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "integer"
            }
          ],
          "description": "Custom timeout between 50 and 29,000 milliseconds\\.  \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 5000  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\.  \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 5000  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "TimeoutInMillis"
        }
      },
      "title": "HttpApiEventProperties",
      "type": "object"
    },
    "IoTRuleEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/IoTRuleEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["IoTRule"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "IoTRuleEvent",
      "type": "object"
    },
    "IoTRuleEventProperties": {
      "additionalProperties": false,
      "properties": {
        "AwsIotSqlVersion": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The version of the SQL rules engine to use when evaluating the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.",
          "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.",
          "title": "AwsIotSqlVersion"
        },
        "Sql": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.",
          "markdownDescription": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.",
          "title": "Sql"
        }
      },
      "required": ["Sql"],
      "title": "IoTRuleEventProperties",
      "type": "object"
    },
    "KinesisEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/KinesisEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Kinesis"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "KinesisEvent",
      "type": "object"
    },
    "KinesisEventProperties": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "markdownDescription": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "title": "BatchSize"
        },
        "BisectBatchOnFunctionError": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "If the function returns an error, split the batch in two and retry\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BisectBatchOnFunctionError`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "If the function returns an error, split the batch in two and retry\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BisectBatchOnFunctionError`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "BisectBatchOnFunctionError"
        },
        "DestinationConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\.  \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\.  \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "DestinationConfig"
        },
        "Enabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Enabled"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "FunctionResponseTypes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `ReportBatchItemFailures`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `ReportBatchItemFailures`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FunctionResponseTypes"
        },
        "MaximumBatchingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumBatchingWindowInSeconds"
        },
        "MaximumRecordAgeInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum age of a record that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumRecordAgeInSeconds"
        },
        "MaximumRetryAttempts": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of times to retry when the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum number of times to retry when the function returns an error\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumRetryAttempts"
        },
        "ParallelizationFactor": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The number of batches to process from each shard concurrently\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The number of batches to process from each shard concurrently\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "ParallelizationFactor"
        },
        "StartingPosition": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPosition"
        },
        "StartingPositionTimestamp": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPositionTimestamp"
        },
        "Stream": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Stream"
        },
        "TumblingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\.  \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\.  \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "TumblingWindowInSeconds"
        }
      },
      "required": ["Stream"],
      "title": "KinesisEventProperties",
      "type": "object"
    },
    "LambdaAuthorizer": {
      "additionalProperties": false,
      "properties": {
        "AuthorizerPayloadFormatVersion": {
          "anyOf": [
            {
              "enum": ["1.0", "2.0"],
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\.  \nThis is passed through to the `authorizerPayloadFormatVersion` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Valid values*: `1.0` or `2.0`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\.  \nThis is passed through to the `authorizerPayloadFormatVersion` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Valid values*: `1.0` or `2.0`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizerPayloadFormatVersion"
        },
        "EnableSimpleResponses": {
          "description": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\.  \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\.  \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EnableSimpleResponses",
          "type": "boolean"
        },
        "FunctionArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\.  \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\.  \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionArn"
        },
        "FunctionInvokeRole": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\.  \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\.  \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionInvokeRole"
        },
        "Identity": {
          "allOf": [
            {
              "$ref": "#/definitions/LambdaAuthorizerIdentity"
            }
          ],
          "description": "Specifies an `IdentitySource` in an incoming request for an authorizer\\.  \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies an `IdentitySource` in an incoming request for an authorizer\\.  \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Identity"
        }
      },
      "required": ["AuthorizerPayloadFormatVersion", "FunctionArn"],
      "title": "LambdaAuthorizer",
      "type": "object"
    },
    "LambdaAuthorizerIdentity": {
      "additionalProperties": false,
      "properties": {
        "Context": {
          "description": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Context",
          "type": "array"
        },
        "Headers": {
          "description": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Headers",
          "type": "array"
        },
        "QueryStrings": {
          "description": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueryStrings",
          "type": "array"
        },
        "ReauthorizeEvery": {
          "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ReauthorizeEvery",
          "type": "integer"
        },
        "StageVariables": {
          "description": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "StageVariables",
          "type": "array"
        }
      },
      "title": "LambdaAuthorizerIdentity",
      "type": "object"
    },
    "LambdaRequestAuthorizer": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "description": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "FunctionArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specify the function arn of the Lambda function which provides authorization for the API\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionArn"
        },
        "FunctionInvokeRole": {
          "description": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionInvokeRole",
          "type": "string"
        },
        "FunctionPayloadType": {
          "description": "This property can be used to define the type of Lambda Authorizer for an API\\.  \n*Valid values*: `TOKEN` or `REQUEST`  \n*Type*: String  \n*Required*: No  \n*Default*: `TOKEN`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["REQUEST"],
          "markdownDescription": "This property can be used to define the type of Lambda Authorizer for an API\\.  \n*Valid values*: `TOKEN` or `REQUEST`  \n*Type*: String  \n*Required*: No  \n*Default*: `TOKEN`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionPayloadType",
          "type": "string"
        },
        "Identity": {
          "allOf": [
            {
              "$ref": "#/definitions/LambdaRequestAuthorizerIdentity"
            }
          ],
          "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\.  \n*Type*: [LambdaRequestAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizationidentity.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\.  \n*Type*: [LambdaRequestAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizationidentity.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Identity"
        }
      },
      "required": ["FunctionArn"],
      "title": "LambdaRequestAuthorizer",
      "type": "object"
    },
    "LambdaRequestAuthorizerIdentity": {
      "additionalProperties": false,
      "properties": {
        "Context": {
          "description": "Converts the given context strings to the mapping expressions of format `context.contextString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given context strings to the mapping expressions of format `context.contextString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Context",
          "type": "array"
        },
        "Headers": {
          "description": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Headers",
          "type": "array"
        },
        "QueryStrings": {
          "description": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueryStrings",
          "type": "array"
        },
        "ReauthorizeEvery": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ReauthorizeEvery"
        },
        "StageVariables": {
          "description": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "StageVariables",
          "type": "array"
        }
      },
      "title": "LambdaRequestAuthorizerIdentity",
      "type": "object"
    },
    "LambdaTokenAuthorizer": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "description": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "FunctionArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specify the function arn of the Lambda function which provides authorization for the API\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionArn"
        },
        "FunctionInvokeRole": {
          "description": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionInvokeRole",
          "type": "string"
        },
        "FunctionPayloadType": {
          "description": "This property can be used to define the type of Lambda Authorizer for an Api\\.  \n*Valid values*: `TOKEN` or `REQUEST`  \n*Type*: String  \n*Required*: No  \n*Default*: `TOKEN`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["TOKEN"],
          "markdownDescription": "This property can be used to define the type of Lambda Authorizer for an Api\\.  \n*Valid values*: `TOKEN` or `REQUEST`  \n*Type*: String  \n*Required*: No  \n*Default*: `TOKEN`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionPayloadType",
          "type": "string"
        },
        "Identity": {
          "allOf": [
            {
              "$ref": "#/definitions/LambdaTokenAuthorizerIdentity"
            }
          ],
          "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\.  \n*Type*: [LambdaTokenAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizationidentity.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\.  \n*Type*: [LambdaTokenAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizationidentity.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Identity"
        }
      },
      "required": ["FunctionArn"],
      "title": "LambdaTokenAuthorizer",
      "type": "object"
    },
    "LambdaTokenAuthorizerIdentity": {
      "additionalProperties": false,
      "properties": {
        "Header": {
          "description": "Specify the header name for Authorization in the OpenApi definition\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Authorization  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Authorization  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Header",
          "type": "string"
        },
        "ReauthorizeEvery": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 300  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ReauthorizeEvery"
        },
        "ValidationExpression": {
          "description": "Specify a validation expression for validating the incoming Identity\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify a validation expression for validating the incoming Identity\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ValidationExpression",
          "type": "string"
        }
      },
      "title": "LambdaTokenAuthorizerIdentity",
      "type": "object"
    },
    "Location": {
      "additionalProperties": false,
      "properties": {
        "ApplicationId": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the application\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the application\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ApplicationId"
        },
        "SemanticVersion": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The semantic version of the application\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The semantic version of the application\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SemanticVersion"
        }
      },
      "required": ["ApplicationId", "SemanticVersion"],
      "title": "Location",
      "type": "object"
    },
    "MQEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/MQEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["MQ"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "MQEvent",
      "type": "object"
    },
    "MQEventProperties": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "markdownDescription": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "title": "BatchSize"
        },
        "Broker": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the Amazon MQ broker\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon MQ broker\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Broker"
        },
        "Enabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Enabled"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "MaximumBatchingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumBatchingWindowInSeconds"
        },
        "Queues": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the Amazon MQ broker destination queue to consume\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The name of the Amazon MQ broker destination queue to consume\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Queues"
        },
        "SecretsManagerKmsKeyId": {
          "description": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn't included the `kms:Decrypt` permission\\.  \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn't included the `kms:Decrypt` permission\\.  \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SecretsManagerKmsKeyId",
          "type": "string"
        },
        "SourceAccessConfigurations": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An array of the authentication protocol or vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\.  \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\.  \n+ **`BASIC_AUTH`** \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` is allowed\\.\n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "An array of the authentication protocol or vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\.  \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\.  \n+ **`BASIC_AUTH`** \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` is allowed\\.\n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "SourceAccessConfigurations"
        }
      },
      "required": ["Broker", "Queues", "SourceAccessConfigurations"],
      "title": "MQEventProperties",
      "type": "object"
    },
    "MSKEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/MSKEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["MSK"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "MSKEvent",
      "type": "object"
    },
    "MSKEventProperties": {
      "additionalProperties": false,
      "properties": {
        "ConsumerGroupId": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A string that configures how events will be read from Kafka topics\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A string that configures how events will be read from Kafka topics\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "ConsumerGroupId"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "MaximumBatchingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumBatchingWindowInSeconds"
        },
        "SourceAccessConfigurations": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "StartingPosition": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The position in a stream from which to start reading\\.  \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPosition`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPosition"
        },
        "StartingPositionTimestamp": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\.  \n*Type*: Double  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "StartingPositionTimestamp"
        },
        "Stream": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Stream"
        },
        "Topics": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the Kafka topic\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The name of the Kafka topic\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Topics"
        }
      },
      "required": ["Stream", "Topics"],
      "title": "MSKEventProperties",
      "type": "object"
    },
    "OAuth2Authorizer": {
      "additionalProperties": false,
      "properties": {
        "AuthorizationScopes": {
          "description": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of authorization scopes for this authorizer\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "IdentitySource": {
          "description": "Identity source expression for this authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Identity source expression for this authorizer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IdentitySource",
          "type": "string"
        },
        "JwtConfiguration": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "JWT configuration for this authorizer\\.  \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "JWT configuration for this authorizer\\.  \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\.  \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "JwtConfiguration"
        }
      },
      "title": "OAuth2Authorizer",
      "type": "object"
    },
    "Parameter": {
      "additionalProperties": false,
      "properties": {
        "AllowedPattern": {
          "type": "string"
        },
        "AllowedValues": {
          "type": "array"
        },
        "ConstraintDescription": {
          "type": "string"
        },
        "Default": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "MaxLength": {
          "type": "string"
        },
        "MaxValue": {
          "type": "string"
        },
        "MinLength": {
          "type": "string"
        },
        "MinValue": {
          "type": "string"
        },
        "NoEcho": {
          "type": ["string", "boolean"]
        },
        "Type": {
          "enum": [
            "String",
            "Number",
            "List<Number>",
            "CommaDelimitedList",
            "AWS::EC2::AvailabilityZone::Name",
            "AWS::EC2::Image::Id",
            "AWS::EC2::Instance::Id",
            "AWS::EC2::KeyPair::KeyName",
            "AWS::EC2::SecurityGroup::GroupName",
            "AWS::EC2::SecurityGroup::Id",
            "AWS::EC2::Subnet::Id",
            "AWS::EC2::Volume::Id",
            "AWS::EC2::VPC::Id",
            "AWS::Route53::HostedZone::Id",
            "List<AWS::EC2::AvailabilityZone::Name>",
            "List<AWS::EC2::Image::Id>",
            "List<AWS::EC2::Instance::Id>",
            "List<AWS::EC2::SecurityGroup::GroupName>",
            "List<AWS::EC2::SecurityGroup::Id>",
            "List<AWS::EC2::Subnet::Id>",
            "List<AWS::EC2::Volume::Id>",
            "List<AWS::EC2::VPC::Id>",
            "List<AWS::Route53::HostedZone::Id>",
            "List<String>",
            "AWS::SSM::Parameter::Name",
            "AWS::SSM::Parameter::Value<String>",
            "AWS::SSM::Parameter::Value<List<String>>",
            "AWS::SSM::Parameter::Value<CommaDelimitedList>",
            "AWS::SSM::Parameter::Value<AWS::EC2::AvailabilityZone::Name>",
            "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",
            "AWS::SSM::Parameter::Value<AWS::EC2::Instance::Id>",
            "AWS::SSM::Parameter::Value<AWS::EC2::SecurityGroup::GroupName>",
            "AWS::SSM::Parameter::Value<AWS::EC2::SecurityGroup::Id>",
            "AWS::SSM::Parameter::Value<AWS::EC2::Subnet::Id>",
            "AWS::SSM::Parameter::Value<AWS::EC2::Volume::Id>",
            "AWS::SSM::Parameter::Value<AWS::EC2::VPC::Id>",
            "AWS::SSM::Parameter::Value<AWS::Route53::HostedZone::Id>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::AvailabilityZone::Name>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::Image::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::Instance::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::SecurityGroup::GroupName>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::SecurityGroup::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::Subnet::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::Volume::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::EC2::VPC::Id>>",
            "AWS::SSM::Parameter::Value<List<AWS::Route53::HostedZone::Id>>"
          ],
          "type": "string"
        }
      },
      "required": ["Type"],
      "type": "object"
    },
    "PassThroughProp": {},
    "PrimaryKey": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Attribute name of the primary key\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.  \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.",
          "markdownDescription": "Attribute name of the primary key\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.  \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.",
          "title": "Name"
        },
        "Type": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The data type for the primary key\\.  \n*Valid values*: `String`, `Number`, `Binary`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.",
          "markdownDescription": "The data type for the primary key\\.  \n*Valid values*: `String`, `Number`, `Binary`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.",
          "title": "Type"
        }
      },
      "required": ["Name", "Type"],
      "title": "PrimaryKey",
      "type": "object"
    },
    "Ref": {
      "additionalProperties": false,
      "properties": {
        "Ref": {
          "title": "Ref",
          "type": "string"
        }
      },
      "required": ["Ref"],
      "title": "Ref",
      "type": "object"
    },
    "RequestModel": {
      "additionalProperties": false,
      "properties": {
        "Model": {
          "description": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Model",
          "type": "string"
        },
        "Required": {
          "description": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Required",
          "type": "boolean"
        },
        "ValidateBody": {
          "description": "Specifies whether API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies whether API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ValidateBody",
          "type": "boolean"
        },
        "ValidateParameters": {
          "description": "Specifies whether API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies whether API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ValidateParameters",
          "type": "boolean"
        }
      },
      "required": ["Model"],
      "title": "RequestModel",
      "type": "object"
    },
    "RequestParameters": {
      "additionalProperties": false,
      "properties": {
        "Caching": {
          "description": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition  \n*Type*: Boolean  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition  \n*Type*: Boolean  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Caching",
          "type": "boolean"
        },
        "Required": {
          "description": "This field specifies whether a parameter is required  \n*Type*: Boolean  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "This field specifies whether a parameter is required  \n*Type*: Boolean  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Required",
          "type": "boolean"
        }
      },
      "title": "RequestParameters",
      "type": "object"
    },
    "ResourceReference": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of a resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The ARN of a resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Arn"
        },
        "Id": {
          "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\.  \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\.  \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Id",
          "type": "string"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of a resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The name of a resource\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Name"
        },
        "Qualifier": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\.  \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\.  \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Qualifier"
        },
        "QueueUrl": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueueUrl"
        },
        "ResourceId": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ID of a resource\\. For example, the API Gateway API ID\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The ID of a resource\\. For example, the API Gateway API ID\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ResourceId"
        },
        "RoleName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The role name associated with a resource\\.  \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The role name associated with a resource\\.  \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "RoleName"
        },
        "Type": {
          "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "ResourceReference",
      "type": "object"
    },
    "S3Event": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/S3EventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["S3"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Properties", "Type"],
      "title": "S3Event",
      "type": "object"
    },
    "S3EventProperties": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "S3 bucket name\\. This bucket must exist in the same template\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template",
          "markdownDescription": "S3 bucket name\\. This bucket must exist in the same template\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template",
          "title": "Bucket"
        },
        "Events": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\.  \n*Type*: String \\| List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.",
          "markdownDescription": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\.  \n*Type*: String \\| List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.",
          "title": "Events"
        },
        "Filter": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\.  \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.",
          "markdownDescription": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\.  \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.",
          "title": "Filter"
        }
      },
      "required": ["Bucket", "Events"],
      "title": "S3EventProperties",
      "type": "object"
    },
    "SNSEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/SNSEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SNS"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Properties", "Type"],
      "title": "SNSEvent",
      "type": "object"
    },
    "SNSEventProperties": {
      "additionalProperties": false,
      "properties": {
        "FilterPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The filter policy JSON assigned to the subscription\\. For more information, see [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) in the Amazon Simple Notification Service API Reference\\.  \n*Type*: [SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) property of an `AWS::SNS::Subscription` resource\\.",
          "markdownDescription": "The filter policy JSON assigned to the subscription\\. For more information, see [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) in the Amazon Simple Notification Service API Reference\\.  \n*Type*: [SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) property of an `AWS::SNS::Subscription` resource\\.",
          "title": "FilterPolicy"
        },
        "Region": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "For cross\\-region subscriptions, the region in which the topic resides\\.  \nIf no region is specified, CloudFormation uses the region of the caller as the default\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.",
          "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\.  \nIf no region is specified, CloudFormation uses the region of the caller as the default\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.",
          "title": "Region"
        },
        "SqsSubscription": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "$ref": "#/definitions/SqsSubscription"
            }
          ],
          "description": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\.  \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\.  \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SqsSubscription"
        },
        "Topic": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the topic to subscribe to\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.",
          "markdownDescription": "The ARN of the topic to subscribe to\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.",
          "title": "Topic"
        }
      },
      "required": ["Topic"],
      "title": "SNSEventProperties",
      "type": "object"
    },
    "SQSEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/SQSEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SQS"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "SQSEvent",
      "type": "object"
    },
    "SQSEventProperties": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 10  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "markdownDescription": "The maximum number of items to retrieve in a single batch\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 10  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "title": "BatchSize"
        },
        "Enabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Enabled"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "MaximumBatchingWindowInSeconds": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum amount of time, in seconds, to gather records before invoking the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The maximum amount of time, in seconds, to gather records before invoking the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "MaximumBatchingWindowInSeconds"
        },
        "Queue": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the queue\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The ARN of the queue\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventSourceArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Queue"
        },
        "ScalingConfig": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Queue"],
      "title": "SQSEventProperties",
      "type": "object"
    },
    "ScheduleEventProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "A description of the rule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.",
          "title": "Description"
        },
        "Enabled": {
          "description": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "markdownDescription": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "title": "Enabled",
          "type": "boolean"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.",
          "title": "Name"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "Schedule": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.",
          "title": "Schedule"
        },
        "State": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "title": "State"
        },
        "Target": {
          "$ref": "#/definitions/ScheduleTarget"
        }
      },
      "title": "ScheduleEventProperties",
      "type": "object"
    },
    "ScheduleTarget": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Id"],
      "title": "ScheduleTarget",
      "type": "object"
    },
    "SelfManagedKafkaEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/SelfManagedKafkaEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SelfManagedKafka"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "SelfManagedKafkaEvent",
      "type": "object"
    },
    "SelfManagedKafkaEventProperties": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 100  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\.  \n*Minimum*: `1`  \n*Maximum*: `10000`",
          "title": "BatchSize"
        },
        "ConsumerGroupId": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A string that configures how events will be read from Kafka topics\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A string that configures how events will be read from Kafka topics\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "ConsumerGroupId"
        },
        "Enabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "Disables the event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Enabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Enabled"
        },
        "FilterCriteria": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterCriteria`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "FilterCriteria"
        },
        "KafkaBootstrapServers": {
          "description": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx`  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "KafkaBootstrapServers",
          "type": "array"
        },
        "SourceAccessConfigurations": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\.  \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\.  \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "SourceAccessConfigurations"
        },
        "Topics": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the Kafka topic\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "markdownDescription": "The name of the Kafka topic\\.  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.",
          "title": "Topics"
        }
      },
      "required": ["SourceAccessConfigurations", "Topics"],
      "title": "SelfManagedKafkaEventProperties",
      "type": "object"
    },
    "SourceReference": {
      "additionalProperties": false,
      "properties": {
        "Qualifier": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\.  \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\.  \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Qualifier"
        }
      },
      "title": "SourceReference",
      "type": "object"
    },
    "SqsSubscription": {
      "additionalProperties": false,
      "properties": {
        "BatchSize": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The maximum number of items to retrieve in a single batch for the SQS queue\\.  \n*Type*: String  \n*Required*: No  \n*Default*: 10  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The maximum number of items to retrieve in a single batch for the SQS queue\\.  \n*Type*: String  \n*Required*: No  \n*Default*: 10  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "BatchSize"
        },
        "Enabled": {
          "description": "Disables the SQS event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Disables the SQS event source mapping to pause polling and invocation\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Enabled",
          "type": "boolean"
        },
        "QueueArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specify an existing SQS queue arn\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify an existing SQS queue arn\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueueArn"
        },
        "QueuePolicyLogicalId": {
          "description": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueuePolicyLogicalId",
          "type": "string"
        },
        "QueueUrl": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specify the queue URL associated with the `QueueArn` property\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the queue URL associated with the `QueueArn` property\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueueUrl"
        }
      },
      "required": ["QueueArn", "QueueUrl"],
      "title": "SqsSubscription",
      "type": "object"
    },
    "Tag": {
      "additionalProperties": false,
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      },
      "required": ["Key", "Value"],
      "type": "object"
    },
    "UsagePlan": {
      "additionalProperties": false,
      "properties": {
        "CreateUsagePlan": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "enum": ["PER_API", "SHARED", "NONE"],
              "type": "string"
            }
          ],
          "description": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\.  \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `<api-logical-id>UsagePlan`, `<api-logical-id>ApiKey`, and `<api-logical-id>UsagePlanKey`, respectively\\.  \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\.  \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\.  \n*Valid values*: `PER_API`, `SHARED`, and `NONE`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\.  \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `<api-logical-id>UsagePlan`, `<api-logical-id>ApiKey`, and `<api-logical-id>UsagePlanKey`, respectively\\.  \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\.  \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\.  \n*Valid values*: `PER_API`, `SHARED`, and `NONE`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CreateUsagePlan"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the usage plan\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "markdownDescription": "A description of the usage plan\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "title": "Description"
        },
        "Quota": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures the number of requests that users can make within a given interval\\.  \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "markdownDescription": "Configures the number of requests that users can make within a given interval\\.  \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "title": "Quota"
        },
        "Tags": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\.  \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\.  \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "title": "Tags"
        },
        "Throttle": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\.  \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\.  \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "title": "Throttle"
        },
        "UsagePlanName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A name for the usage plan\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "markdownDescription": "A name for the usage plan\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.",
          "title": "UsagePlanName"
        }
      },
      "required": ["CreateUsagePlan"],
      "title": "UsagePlan",
      "type": "object"
    },
    "__main____Globals": {
      "additionalProperties": false,
      "properties": {
        "Api": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals"
        },
        "Function": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals"
        },
        "HttpApi": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals"
        },
        "SimpleTable": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals"
        }
      },
      "title": "Globals",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Auth": {
      "additionalProperties": false,
      "properties": {
        "AddDefaultAuthorizerToCorsPreflight": {
          "description": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AddDefaultAuthorizerToCorsPreflight",
          "type": "boolean"
        },
        "ApiKeyRequired": {
          "description": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ApiKeyRequired",
          "type": "boolean"
        },
        "Authorizers": {
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/definitions/CognitoAuthorizer"
              },
              {
                "$ref": "#/definitions/LambdaTokenAuthorizer"
              },
              {
                "$ref": "#/definitions/LambdaRequestAuthorizer"
              }
            ]
          },
          "description": "The authorizer used to control access to your API Gateway API\\.  \nFor more information, see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html)  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.",
          "markdownDescription": "The authorizer used to control access to your API Gateway API\\.  \nFor more information, see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html)  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.",
          "title": "Authorizers",
          "type": "object"
        },
        "DefaultAuthorizer": {
          "description": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\.  \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\.  \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "DefaultAuthorizer",
          "type": "string"
        },
        "InvokeRole": {
          "description": "Sets integration credentials for all resources and methods to this value\\.  \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.  \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`  \n*Type*: String  \n*Required*: No  \n*Default*: `CALLER_CREDENTIALS`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Sets integration credentials for all resources and methods to this value\\.  \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.  \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`  \n*Type*: String  \n*Required*: No  \n*Default*: `CALLER_CREDENTIALS`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "InvokeRole",
          "type": "string"
        },
        "ResourcePolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy"
            }
          ],
          "description": "Configure Resource Policy for all methods and paths on an API\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.",
          "markdownDescription": "Configure Resource Policy for all methods and paths on an API\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.",
          "title": "ResourcePolicy"
        },
        "UsagePlan": {
          "allOf": [
            {
              "$ref": "#/definitions/UsagePlan"
            }
          ],
          "description": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\.  \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\.  \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "UsagePlan"
        }
      },
      "title": "Auth",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__DefinitionUri": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "title": "Bucket"
        },
        "Key": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon S3 key of the OpenAPI file\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "markdownDescription": "The Amazon S3 key of the OpenAPI file\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "title": "Key"
        },
        "Version": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "For versioned objects, the version of the OpenAPI file\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "markdownDescription": "For versioned objects, the version of the OpenAPI file\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.",
          "title": "Version"
        }
      },
      "required": ["Bucket", "Key"],
      "title": "DefinitionUri",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Domain": {
      "additionalProperties": false,
      "properties": {
        "BasePath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\.  \n*Type*: List  \n*Required*: No  \n*Default*: /  \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.",
          "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\.  \n*Type*: List  \n*Required*: No  \n*Default*: /  \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.",
          "title": "BasePath"
        },
        "CertificateArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\.  \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\.  \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.",
          "title": "CertificateArn"
        },
        "DomainName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\.  \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\.  \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "title": "DomainName"
        },
        "EndpointConfiguration": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "enum": ["REGIONAL", "EDGE"],
              "type": "string"
            }
          ],
          "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\.  \n*Valid values*: `REGIONAL` or `EDGE`  \n*Type*: String  \n*Required*: No  \n*Default*: `REGIONAL`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\.  \n*Valid values*: `REGIONAL` or `EDGE`  \n*Type*: String  \n*Required*: No  \n*Default*: `REGIONAL`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EndpointConfiguration"
        },
        "MutualTlsAuthentication": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\.  \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "markdownDescription": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\.  \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "title": "MutualTlsAuthentication"
        },
        "NormalizeBasePath": {
          "description": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\.  \nUse `NormalizeBasePath` with the `BasePath` property\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\.  \nUse `NormalizeBasePath` with the `BasePath` property\\.  \n*Type*: Boolean  \n*Required*: No  \n*Default*: True  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "NormalizeBasePath",
          "type": "boolean"
        },
        "OwnershipVerificationCertificateArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "title": "OwnershipVerificationCertificateArn"
        },
        "Route53": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53"
            }
          ],
          "description": "Defines an Amazon Route\u00a053 configuration\\.  \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\.  \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Route53"
        },
        "SecurityPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The TLS version plus cipher suite for this domain name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "markdownDescription": "The TLS version plus cipher suite for this domain name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.",
          "title": "SecurityPolicy"
        }
      },
      "required": ["CertificateArn", "DomainName"],
      "title": "Domain",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Globals": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures Access Log Setting for a stage\\.  \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configures Access Log Setting for a stage\\.  \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "AccessLogSetting"
        },
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth"
            }
          ],
          "description": "Configure authorization to control access to your API Gateway API\\.  \nFor more information about configuring access using AWS SAM see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [ApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configure authorization to control access to your API Gateway API\\.  \nFor more information about configuring access using AWS SAM see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [ApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "BinaryMediaTypes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "List of MIME types that your API could return\\. Use this to enable binary support for APIs\\. Use \\~1 instead of / in the mime types\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BinaryMediaTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes) property of an `AWS::ApiGateway::RestApi` resource\\. The list of BinaryMediaTypes is added to both the AWS CloudFormation resource and the OpenAPI document\\.",
          "markdownDescription": "List of MIME types that your API could return\\. Use this to enable binary support for APIs\\. Use \\~1 instead of / in the mime types\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BinaryMediaTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes) property of an `AWS::ApiGateway::RestApi` resource\\. The list of BinaryMediaTypes is added to both the AWS CloudFormation resource and the OpenAPI document\\.",
          "title": "BinaryMediaTypes"
        },
        "CacheClusterEnabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CacheClusterEnabled"
        },
        "CacheClusterSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The stage's cache cluster size\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "The stage's cache cluster size\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CacheClusterSize"
        },
        "CanarySetting": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configure a canary setting to a stage of a regular deployment\\.  \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\.  \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CanarySetting"
        },
        "Cors": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/Cors"
            }
          ],
          "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\.  \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\.  \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\.  \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\.  \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Cors"
        },
        "DefinitionUri": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\.  \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\.  \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "DefinitionUri"
        },
        "Domain": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain"
            }
          ],
          "description": "Configures a custom domain for this API Gateway API\\.  \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures a custom domain for this API Gateway API\\.  \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Domain"
        },
        "EndpointConfiguration": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The endpoint type of a REST API\\.  \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.",
          "markdownDescription": "The endpoint type of a REST API\\.  \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.",
          "title": "EndpointConfiguration"
        },
        "GatewayResponses": {
          "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "GatewayResponses",
          "type": "object"
        },
        "MethodSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\.  \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\.  \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "MethodSettings"
        },
        "MinimumCompressionSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "MinimumCompressionSize"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A name for the API Gateway RestApi resource  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "A name for the API Gateway RestApi resource  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "Name"
        },
        "OpenApiVersion": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\.  \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\.  \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "OpenApiVersion"
        },
        "TracingEnabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "TracingEnabled"
        },
        "Variables": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "Variables"
        }
      },
      "title": "Globals",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Properties": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures Access Log Setting for a stage\\.  \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configures Access Log Setting for a stage\\.  \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "AccessLogSetting"
        },
        "ApiKeySourceType": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The source of the API key for metering requests according to a usage plan\\. Valid values are `HEADER` and `AUTHORIZER`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ApiKeySourceType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "The source of the API key for metering requests according to a usage plan\\. Valid values are `HEADER` and `AUTHORIZER`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ApiKeySourceType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "ApiKeySourceType"
        },
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth"
            }
          ],
          "description": "Configure authorization to control access to your API Gateway API\\.  \nFor more information about configuring access using AWS SAM see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [ApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configure authorization to control access to your API Gateway API\\.  \nFor more information about configuring access using AWS SAM see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\.  \n*Type*: [ApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "BinaryMediaTypes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "List of MIME types that your API could return\\. Use this to enable binary support for APIs\\. Use \\~1 instead of / in the mime types\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BinaryMediaTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes) property of an `AWS::ApiGateway::RestApi` resource\\. The list of BinaryMediaTypes is added to both the AWS CloudFormation resource and the OpenAPI document\\.",
          "markdownDescription": "List of MIME types that your API could return\\. Use this to enable binary support for APIs\\. Use \\~1 instead of / in the mime types\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BinaryMediaTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes) property of an `AWS::ApiGateway::RestApi` resource\\. The list of BinaryMediaTypes is added to both the AWS CloudFormation resource and the OpenAPI document\\.",
          "title": "BinaryMediaTypes"
        },
        "CacheClusterEnabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CacheClusterEnabled"
        },
        "CacheClusterSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The stage's cache cluster size\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "The stage's cache cluster size\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CacheClusterSize"
        },
        "CanarySetting": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configure a canary setting to a stage of a regular deployment\\.  \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\.  \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "CanarySetting"
        },
        "Cors": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/Cors"
            }
          ],
          "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\.  \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\.  \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\.  \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\.  \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Cors"
        },
        "DefinitionBody": {
          "description": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.",
          "markdownDescription": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.",
          "title": "DefinitionBody",
          "type": "object"
        },
        "DefinitionUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri"
            }
          ],
          "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\.  \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\.  \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "DefinitionUri"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the Api resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "A description of the Api resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "Description"
        },
        "DisableExecuteApiEndpoint": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "DisableExecuteApiEndpoint"
        },
        "Domain": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain"
            }
          ],
          "description": "Configures a custom domain for this API Gateway API\\.  \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures a custom domain for this API Gateway API\\.  \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Domain"
        },
        "EndpointConfiguration": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "$ref": "#/definitions/EndpointConfiguration"
            }
          ],
          "description": "The endpoint type of a REST API\\.  \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.",
          "markdownDescription": "The endpoint type of a REST API\\.  \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.",
          "title": "EndpointConfiguration"
        },
        "FailOnWarnings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "FailOnWarnings"
        },
        "GatewayResponses": {
          "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "GatewayResponses",
          "type": "object"
        },
        "MethodSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\.  \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\.  \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "MethodSettings"
        },
        "MinimumCompressionSize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "MinimumCompressionSize"
        },
        "Mode": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\.  \n*Valid values*: `overwrite` or `merge`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\.  \n*Valid values*: `overwrite` or `merge`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "Mode"
        },
        "Models": {
          "description": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Models",
          "type": "object"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A name for the API Gateway RestApi resource  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "markdownDescription": "A name for the API Gateway RestApi resource  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.",
          "title": "Name"
        },
        "OpenApiVersion": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\.  \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\.  \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "OpenApiVersion"
        },
        "StageName": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\.  \nTo reference the stage resource, use `<api-logical-id>.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway  \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.",
          "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\.  \nTo reference the stage resource, use `<api-logical-id>.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway  \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.",
          "title": "StageName"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.",
          "title": "Tags",
          "type": "object"
        },
        "TracingEnabled": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "TracingEnabled"
        },
        "Variables": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.",
          "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.",
          "title": "Variables"
        }
      },
      "required": ["StageName"],
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Connectors": {
          "additionalProperties": {
            "$ref": "#/definitions/EmbeddedConnector"
          },
          "title": "Connectors",
          "type": "object"
        },
        "DeletionPolicy": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "DependsOn": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Metadata": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::Api"],
          "title": "Type",
          "type": "string"
        },
        "UpdatePolicy": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "UpdateReplacePolicy": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Type", "Properties"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountBlacklist": {
          "description": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountBlacklist",
          "type": "array"
        },
        "AwsAccountWhitelist": {
          "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountWhitelist",
          "type": "array"
        },
        "CustomStatements": {
          "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CustomStatements",
          "type": "array"
        },
        "IntrinsicVpcBlacklist": {
          "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcBlacklist",
          "type": "array"
        },
        "IntrinsicVpcWhitelist": {
          "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcWhitelist",
          "type": "array"
        },
        "IntrinsicVpceBlacklist": {
          "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceBlacklist",
          "type": "array"
        },
        "IntrinsicVpceWhitelist": {
          "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceWhitelist",
          "type": "array"
        },
        "IpRangeBlacklist": {
          "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeBlacklist",
          "type": "array"
        },
        "IpRangeWhitelist": {
          "description": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeWhitelist",
          "type": "array"
        },
        "SourceVpcBlacklist": {
          "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcBlacklist",
          "type": "array"
        },
        "SourceVpcWhitelist": {
          "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcWhitelist",
          "type": "array"
        }
      },
      "title": "ResourcePolicy",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_api__Route53": {
      "additionalProperties": false,
      "properties": {
        "DistributionDomainName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures a custom distribution of the API custom domain name\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Use the API Gateway distribution\\.  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.",
          "markdownDescription": "Configures a custom distribution of the API custom domain name\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Use the API Gateway distribution\\.  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.",
          "title": "DistributionDomainName"
        },
        "EvaluateTargetHealth": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.",
          "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.",
          "title": "EvaluateTargetHealth"
        },
        "HostedZoneId": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ID of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "markdownDescription": "The ID of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "title": "HostedZoneId"
        },
        "HostedZoneName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "markdownDescription": "The name of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "title": "HostedZoneName"
        },
        "IpV6": {
          "description": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpV6",
          "type": "boolean"
        }
      },
      "title": "Route53",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_application__Properties": {
      "additionalProperties": false,
      "properties": {
        "Location": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/Location"
            }
          ],
          "description": "Template URL, file path, or location object of a nested application\\.  \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\.  \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.",
          "markdownDescription": "Template URL, file path, or location object of a nested application\\.  \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\.  \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\.  \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.",
          "title": "Location"
        },
        "NotificationARNs": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A list of existing Amazon SNS topics where notifications about stack events are sent\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.",
          "markdownDescription": "A list of existing Amazon SNS topics where notifications about stack events are sent\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.",
          "title": "NotificationARNs"
        },
        "Parameters": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Application parameter values\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.",
          "markdownDescription": "Application parameter values\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.",
          "title": "Parameters"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.",
          "title": "Tags",
          "type": "object"
        },
        "TimeoutInMinutes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The length of time, in minutes, that AWS CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When AWS CloudFormation detects that the nested stack has reached the `CREATE_COMPLETE` state, it marks the nested stack resource as `CREATE_COMPLETE` in the parent stack and resumes creating the parent stack\\. If the timeout period expires before the nested stack reaches `CREATE_COMPLETE`, AWS CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMinutes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes) property of an `AWS::CloudFormation::Stack` resource\\.",
          "markdownDescription": "The length of time, in minutes, that AWS CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When AWS CloudFormation detects that the nested stack has reached the `CREATE_COMPLETE` state, it marks the nested stack resource as `CREATE_COMPLETE` in the parent stack and resumes creating the parent stack\\. If the timeout period expires before the nested stack reaches `CREATE_COMPLETE`, AWS CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMinutes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes) property of an `AWS::CloudFormation::Stack` resource\\.",
          "title": "TimeoutInMinutes"
        }
      },
      "required": ["Location"],
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_application__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::Application"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_connector__Properties": {
      "additionalProperties": false,
      "properties": {
        "Destination": {
          "allOf": [
            {
              "$ref": "#/definitions/ResourceReference"
            }
          ],
          "description": "The destination resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The destination resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Destination"
        },
        "Permissions": {
          "description": "The permission type that the source resource is allowed to perform on the destination resource\\.  \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\.  \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\.  \n*Valid values*: `Read` or `Write`  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "enum": ["Read", "Write"],
            "type": "string"
          },
          "markdownDescription": "The permission type that the source resource is allowed to perform on the destination resource\\.  \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\.  \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\.  \n*Valid values*: `Read` or `Write`  \n*Type*: List  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Permissions",
          "type": "array"
        },
        "Source": {
          "allOf": [
            {
              "$ref": "#/definitions/ResourceReference"
            }
          ],
          "description": "The source resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The source resource\\.  \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Source"
        }
      },
      "required": ["Source", "Destination", "Permissions"],
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_connector__Resource": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::Connector"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ApiEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Api"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ApiEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ApiEventProperties": {
      "additionalProperties": false,
      "properties": {
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/ApiAuth"
            }
          ],
          "description": "Auth configuration for this specific Api\\+Path\\+Method\\.  \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\.  \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\.  \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\.  \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "Method": {
          "description": "HTTP method for which this function is invoked\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "HTTP method for which this function is invoked\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Method",
          "type": "string"
        },
        "Path": {
          "description": "Uri path for which this function is invoked\\. Must start with `/`\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Uri path for which this function is invoked\\. Must start with `/`\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Path",
          "type": "string"
        },
        "RequestModel": {
          "allOf": [
            {
              "$ref": "#/definitions/RequestModel"
            }
          ],
          "description": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\.  \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\.  \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "RequestModel"
        },
        "RequestParameters": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/RequestParameters"
            }
          ],
          "description": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\.  \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\.  \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\.  \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\.  \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "RequestParameters"
        },
        "RestApiId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/Ref"
            }
          ],
          "description": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\.  \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\.  \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\.  \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\.  \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "RestApiId"
        }
      },
      "required": ["Method", "Path"],
      "title": "ApiEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__CloudWatchEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["CloudWatchEvent"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "CloudWatchEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": {
      "additionalProperties": false,
      "properties": {
        "Enabled": {
          "description": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "markdownDescription": "Indicates whether the rule is enabled\\.  \nTo disable the rule, set this property to `false`\\.  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.",
          "title": "Enabled",
          "type": "boolean"
        },
        "EventBusName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "title": "EventBusName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "InputPath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "InputPath"
        },
        "Pattern": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "title": "Pattern"
        },
        "State": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The state of the rule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.",
          "title": "State"
        }
      },
      "title": "CloudWatchEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.",
          "title": "Arn"
        },
        "QueueLogicalId": {
          "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\.  \nIf the `Type` property is not set, this property is ignored\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\.  \nIf the `Type` property is not set, this property is ignored\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueueLogicalId",
          "type": "string"
        },
        "Type": {
          "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SQS"],
          "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "DeadLetterConfig",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["EventBridgeRule"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "EventBridgeRuleEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "EventBusName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "title": "EventBusName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "InputPath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "InputPath"
        },
        "Pattern": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "title": "Pattern"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "Target": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget"
            }
          ],
          "description": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\.  \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-target.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.",
          "markdownDescription": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\.  \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-target.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.",
          "title": "Target"
        }
      },
      "required": ["Pattern"],
      "title": "EventBridgeRuleEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The logical ID of the target\\.  \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.",
          "markdownDescription": "The logical ID of the target\\.  \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.",
          "title": "Id"
        }
      },
      "required": ["Id"],
      "title": "EventBridgeRuleTarget",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__Globals": {
      "additionalProperties": false,
      "properties": {
        "Architectures": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The instruction set architecture for the function\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: One of `x86_64` or `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The instruction set architecture for the function\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: One of `x86_64` or `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Architectures"
        },
        "AssumeRolePolicyDocument": {
          "description": "Adds an AssumeRolePolicyDocument for the default created `Role` for this function\\. If this property isn't specified, AWS SAM adds a default assume role for this function\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`AssumeRolePolicyDocument`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument) property of an `AWS::IAM::Role` resource\\. AWS SAM adds this property to the generated IAM role for this function\\. If a role's Amazon Resource Name \\(ARN\\) is provided for this function, this property does nothing\\.",
          "markdownDescription": "Adds an AssumeRolePolicyDocument for the default created `Role` for this function\\. If this property isn't specified, AWS SAM adds a default assume role for this function\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`AssumeRolePolicyDocument`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument) property of an `AWS::IAM::Role` resource\\. AWS SAM adds this property to the generated IAM role for this function\\. If a role's Amazon Resource Name \\(ARN\\) is provided for this function, this property does nothing\\.",
          "title": "AssumeRolePolicyDocument",
          "type": "object"
        },
        "AutoPublishAlias": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The name of the Lambda alias\\. For more information about Lambda aliases, see [Lambda function aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) in the *AWS Lambda Developer Guide*\\. For examples that use this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \nAWS SAM generates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html) resources when this property is set\\. For information about this scenario, see [AutoPublishAlias property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-function.html#sam-specification-generated-resources-function-autopublishalias)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The name of the Lambda alias\\. For more information about Lambda aliases, see [Lambda function aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) in the *AWS Lambda Developer Guide*\\. For examples that use this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \nAWS SAM generates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html) resources when this property is set\\. For information about this scenario, see [AutoPublishAlias property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-function.html#sam-specification-generated-resources-function-autopublishalias)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AutoPublishAlias"
        },
        "CodeUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/CodeUri"
            }
          ],
          "description": "The function code's Amazon S3 URI, path to local folder, or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \n**Notes**:  \n1\\. If the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.  \n2\\. If an Amazon S3 URI or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object is provided, the Amazon S3 object referenced must be a valid [Lambda deployment package](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)\\.  \n3\\. If the path to a local folder is provided, for the code to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`Code`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code) property of an `AWS::Lambda::Function` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "The function code's Amazon S3 URI, path to local folder, or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \n**Notes**:  \n1\\. If the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.  \n2\\. If an Amazon S3 URI or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object is provided, the Amazon S3 object referenced must be a valid [Lambda deployment package](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)\\.  \n3\\. If the path to a local folder is provided, for the code to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`Code`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code) property of an `AWS::Lambda::Function` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "CodeUri"
        },
        "DeadLetterQueue": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "$ref": "#/definitions/DeadLetterQueue"
            }
          ],
          "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.  \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.",
          "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.  \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.",
          "title": "DeadLetterQueue"
        },
        "DeploymentPreference": {
          "allOf": [
            {
              "$ref": "#/definitions/DeploymentPreference"
            }
          ],
          "description": "The settings to enable gradual Lambda deployments\\.  \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `<function-logical-id>DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\.  \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.",
          "markdownDescription": "The settings to enable gradual Lambda deployments\\.  \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `<function-logical-id>DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\.  \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.",
          "title": "DeploymentPreference"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the function\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "A description of the function\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Description"
        },
        "Environment": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The configuration for the runtime environment\\.  \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The configuration for the runtime environment\\.  \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Environment"
        },
        "EphemeralStorage": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\.  \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\.  \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.",
          "title": "EphemeralStorage"
        },
        "EventInvokeConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/EventInvokeConfig"
            }
          ],
          "description": "The object that describes event invoke configuration on a Lambda function\\.  \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The object that describes event invoke configuration on a Lambda function\\.  \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EventInvokeConfig"
        },
        "Handler": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Handler"
        },
        "KmsKeyArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.",
          "title": "KmsKeyArn"
        },
        "Layers": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Layers"
        },
        "MemorySize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The size of the memory in MB allocated per invocation of the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.",
          "title": "MemorySize"
        },
        "PermissionsBoundary": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "title": "PermissionsBoundary"
        },
        "ProvisionedConcurrencyConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The provisioned concurrency configuration of a function's alias\\.  \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.",
          "markdownDescription": "The provisioned concurrency configuration of a function's alias\\.  \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.",
          "title": "ProvisionedConcurrencyConfig"
        },
        "ReservedConcurrentExecutions": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of concurrent executions that you want to reserve for the function\\.  \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\.  \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.",
          "title": "ReservedConcurrentExecutions"
        },
        "RolePath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The path to the function's IAM execution role\\.  \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The path to the function's IAM execution role\\.  \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.",
          "title": "RolePath"
        },
        "Runtime": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Runtime"
        },
        "RuntimeManagementConfig": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "SnapStart": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\.  \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\.  \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.",
          "title": "SnapStart"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\.  \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\.  \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.",
          "title": "Tags",
          "type": "object"
        },
        "Timeout": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum time in seconds that the function can run before it is stopped\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 3  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 3  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Timeout"
        },
        "Tracing": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "enum": ["Active", "PassThrough"],
              "type": "string"
            }
          ],
          "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `Active` or `PassThrough`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.",
          "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `Active` or `PassThrough`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.",
          "title": "Tracing"
        },
        "VpcConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\.  \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\.  \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.",
          "title": "VpcConfig"
        }
      },
      "title": "Globals",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__Properties": {
      "additionalProperties": false,
      "properties": {
        "Architectures": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The instruction set architecture for the function\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: One of `x86_64` or `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The instruction set architecture for the function\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: One of `x86_64` or `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Architectures"
        },
        "AssumeRolePolicyDocument": {
          "description": "Adds an AssumeRolePolicyDocument for the default created `Role` for this function\\. If this property isn't specified, AWS SAM adds a default assume role for this function\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`AssumeRolePolicyDocument`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument) property of an `AWS::IAM::Role` resource\\. AWS SAM adds this property to the generated IAM role for this function\\. If a role's Amazon Resource Name \\(ARN\\) is provided for this function, this property does nothing\\.",
          "markdownDescription": "Adds an AssumeRolePolicyDocument for the default created `Role` for this function\\. If this property isn't specified, AWS SAM adds a default assume role for this function\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`AssumeRolePolicyDocument`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument) property of an `AWS::IAM::Role` resource\\. AWS SAM adds this property to the generated IAM role for this function\\. If a role's Amazon Resource Name \\(ARN\\) is provided for this function, this property does nothing\\.",
          "title": "AssumeRolePolicyDocument",
          "type": "object"
        },
        "AutoPublishAlias": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The name of the Lambda alias\\. For more information about Lambda aliases, see [Lambda function aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) in the *AWS Lambda Developer Guide*\\. For examples that use this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \nAWS SAM generates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html) resources when this property is set\\. For information about this scenario, see [AutoPublishAlias property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-function.html#sam-specification-generated-resources-function-autopublishalias)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The name of the Lambda alias\\. For more information about Lambda aliases, see [Lambda function aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) in the *AWS Lambda Developer Guide*\\. For examples that use this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.  \nAWS SAM generates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html) resources when this property is set\\. For information about this scenario, see [AutoPublishAlias property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-function.html#sam-specification-generated-resources-function-autopublishalias)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AutoPublishAlias"
        },
        "AutoPublishCodeSha256": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The string value that is used, along with the value in `CodeUri`, to determine whether a new Lambda version should be published\\. This property is only used when `AutoPublishAlias` is also defined\\.  \nThis property addresses a problem that occurs when an AWS SAM template has the following characteristics: the `DeploymentPreference` object is configured for gradual deployments \\(as described in [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\), the `AutoPublishAlias` property is set and doesn't change between deployments, and the `CodeUri` property is set and doesn't change between deployments\\.  \nThis scenario can occur when the deployment package stored in an Amazon Simple Storage Service \\(Amazon S3\\) location is replaced by a new deployment package that contains updated Lambda function code, but the `CodeUri` property remains unchanged \\(as opposed to the new deployment package being uploaded to a new Amazon S3 location and the `CodeUri` being changed to the new location\\)\\.  \nIn this scenario, to trigger the gradual deployment successfully, you must provide a unique value for `AutoPublishCodeSha256`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The string value that is used, along with the value in `CodeUri`, to determine whether a new Lambda version should be published\\. This property is only used when `AutoPublishAlias` is also defined\\.  \nThis property addresses a problem that occurs when an AWS SAM template has the following characteristics: the `DeploymentPreference` object is configured for gradual deployments \\(as described in [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\), the `AutoPublishAlias` property is set and doesn't change between deployments, and the `CodeUri` property is set and doesn't change between deployments\\.  \nThis scenario can occur when the deployment package stored in an Amazon Simple Storage Service \\(Amazon S3\\) location is replaced by a new deployment package that contains updated Lambda function code, but the `CodeUri` property remains unchanged \\(as opposed to the new deployment package being uploaded to a new Amazon S3 location and the `CodeUri` being changed to the new location\\)\\.  \nIn this scenario, to trigger the gradual deployment successfully, you must provide a unique value for `AutoPublishCodeSha256`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AutoPublishCodeSha256"
        },
        "CodeSigningConfigArn": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The ARN of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html) resource, used to enable code signing for this function\\. For more information about code signing, see [Configuring code signing for AWS SAM applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CodeSigningConfigArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The ARN of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html) resource, used to enable code signing for this function\\. For more information about code signing, see [Configuring code signing for AWS SAM applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html)\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CodeSigningConfigArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn) property of an `AWS::Lambda::Function` resource\\.",
          "title": "CodeSigningConfigArn"
        },
        "CodeUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/CodeUri"
            }
          ],
          "description": "The function code's Amazon S3 URI, path to local folder, or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \n**Notes**:  \n1\\. If the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.  \n2\\. If an Amazon S3 URI or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object is provided, the Amazon S3 object referenced must be a valid [Lambda deployment package](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)\\.  \n3\\. If the path to a local folder is provided, for the code to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`Code`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code) property of an `AWS::Lambda::Function` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "The function code's Amazon S3 URI, path to local folder, or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \n**Notes**:  \n1\\. If the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.  \n2\\. If an Amazon S3 URI or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object is provided, the Amazon S3 object referenced must be a valid [Lambda deployment package](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)\\.  \n3\\. If the path to a local folder is provided, for the code to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is similar to the [`Code`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code) property of an `AWS::Lambda::Function` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "CodeUri"
        },
        "DeadLetterQueue": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "$ref": "#/definitions/DeadLetterQueue"
            }
          ],
          "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.  \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.",
          "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.  \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.",
          "title": "DeadLetterQueue"
        },
        "DeploymentPreference": {
          "allOf": [
            {
              "$ref": "#/definitions/DeploymentPreference"
            }
          ],
          "description": "The settings to enable gradual Lambda deployments\\.  \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `<function-logical-id>DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\.  \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.",
          "markdownDescription": "The settings to enable gradual Lambda deployments\\.  \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `<function-logical-id>DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\.  \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.",
          "title": "DeploymentPreference"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the function\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "A description of the function\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Description"
        },
        "Environment": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The configuration for the runtime environment\\.  \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The configuration for the runtime environment\\.  \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Environment"
        },
        "EphemeralStorage": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\.  \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\.  \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.",
          "title": "EphemeralStorage"
        },
        "EventInvokeConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/EventInvokeConfig"
            }
          ],
          "description": "The object that describes event invoke configuration on a Lambda function\\.  \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The object that describes event invoke configuration on a Lambda function\\.  \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EventInvokeConfig"
        },
        "Events": {
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/definitions/S3Event"
              },
              {
                "$ref": "#/definitions/SNSEvent"
              },
              {
                "$ref": "#/definitions/KinesisEvent"
              },
              {
                "$ref": "#/definitions/DynamoDBEvent"
              },
              {
                "$ref": "#/definitions/SQSEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent"
              },
              {
                "$ref": "#/definitions/CloudWatchLogsEvent"
              },
              {
                "$ref": "#/definitions/IoTRuleEvent"
              },
              {
                "$ref": "#/definitions/AlexaSkillEvent"
              },
              {
                "$ref": "#/definitions/CognitoEvent"
              },
              {
                "$ref": "#/definitions/HttpApiEvent"
              },
              {
                "$ref": "#/definitions/MSKEvent"
              },
              {
                "$ref": "#/definitions/MQEvent"
              },
              {
                "$ref": "#/definitions/SelfManagedKafkaEvent"
              }
            ]
          },
          "description": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\.  \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\.  \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Events",
          "type": "object"
        },
        "FileSystemConfigs": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\.  \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\.  \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.",
          "title": "FileSystemConfigs"
        },
        "FunctionName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.",
          "title": "FunctionName"
        },
        "FunctionUrlConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/FunctionUrlConfig"
            }
          ],
          "description": "The object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\.  \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\.  \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "FunctionUrlConfig"
        },
        "Handler": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Handler"
        },
        "ImageConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.",
          "title": "ImageConfig"
        },
        "ImageUri": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\.  \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "markdownDescription": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\.  \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "title": "ImageUri"
        },
        "InlineCode": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "markdownDescription": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\.  \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.",
          "title": "InlineCode"
        },
        "KmsKeyArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.",
          "title": "KmsKeyArn"
        },
        "Layers": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Layers"
        },
        "MemorySize": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The size of the memory in MB allocated per invocation of the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.",
          "title": "MemorySize"
        },
        "PackageType": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\.  \n**Notes**:  \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\.  \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\.  \n*Valid values*: `Zip` or `Image`  \n*Type*: String  \n*Required*: No  \n*Default*: `Zip`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\.  \n**Notes**:  \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\.  \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\.  \n*Valid values*: `Zip` or `Image`  \n*Type*: String  \n*Required*: No  \n*Default*: `Zip`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.",
          "title": "PackageType"
        },
        "PermissionsBoundary": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "title": "PermissionsBoundary"
        },
        "Policies": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "One or more policies that this function needs\\. They will be appended to the default role for this function\\.  \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\.  \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\.  \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.",
          "markdownDescription": "One or more policies that this function needs\\. They will be appended to the default role for this function\\.  \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\.  \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\.  \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.",
          "title": "Policies"
        },
        "ProvisionedConcurrencyConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The provisioned concurrency configuration of a function's alias\\.  \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.",
          "markdownDescription": "The provisioned concurrency configuration of a function's alias\\.  \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.",
          "title": "ProvisionedConcurrencyConfig"
        },
        "ReservedConcurrentExecutions": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum number of concurrent executions that you want to reserve for the function\\.  \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\.  \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\.  \n*Type*: Integer  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.",
          "title": "ReservedConcurrentExecutions"
        },
        "Role": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The ARN of an IAM role to use as this function's execution role\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `<function-logical-id>Role`\\.",
          "markdownDescription": "The ARN of an IAM role to use as this function's execution role\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `<function-logical-id>Role`\\.",
          "title": "Role"
        },
        "RolePath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The path to the function's IAM execution role\\.  \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The path to the function's IAM execution role\\.  \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.",
          "title": "RolePath"
        },
        "Runtime": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\.  \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Runtime"
        },
        "RuntimeManagementConfig": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "SnapStart": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\.  \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\.  \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.",
          "title": "SnapStart"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\.  \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\.  \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.",
          "title": "Tags",
          "type": "object"
        },
        "Timeout": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The maximum time in seconds that the function can run before it is stopped\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 3  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\.  \n*Type*: Integer  \n*Required*: No  \n*Default*: 3  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.",
          "title": "Timeout"
        },
        "Tracing": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "enum": ["Active", "PassThrough"],
              "type": "string"
            }
          ],
          "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `Active` or `PassThrough`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.",
          "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `Active` or `PassThrough`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.",
          "title": "Tracing"
        },
        "VersionDescription": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies the `Description` field that is added on the new Lambda version resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.",
          "markdownDescription": "Specifies the `Description` field that is added on the new Lambda version resource\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.",
          "title": "VersionDescription"
        },
        "VpcConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\.  \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.",
          "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\.  \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.",
          "title": "VpcConfig"
        }
      },
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Connectors": {
          "additionalProperties": {
            "$ref": "#/definitions/EmbeddedConnector"
          },
          "title": "Connectors",
          "type": "object"
        },
        "DeletionPolicy": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "DependsOn": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Metadata": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::Function"],
          "title": "Type",
          "type": "string"
        },
        "UpdateReplacePolicy": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Type"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountBlacklist": {
          "description": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountBlacklist",
          "type": "array"
        },
        "AwsAccountWhitelist": {
          "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountWhitelist",
          "type": "array"
        },
        "CustomStatements": {
          "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CustomStatements",
          "type": "array"
        },
        "IntrinsicVpcBlacklist": {
          "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcBlacklist",
          "type": "array"
        },
        "IntrinsicVpcWhitelist": {
          "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcWhitelist",
          "type": "array"
        },
        "IntrinsicVpceBlacklist": {
          "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceBlacklist",
          "type": "array"
        },
        "IntrinsicVpceWhitelist": {
          "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceWhitelist",
          "type": "array"
        },
        "IpRangeBlacklist": {
          "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeBlacklist",
          "type": "array"
        },
        "IpRangeWhitelist": {
          "description": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeWhitelist",
          "type": "array"
        },
        "SourceVpcBlacklist": {
          "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcBlacklist",
          "type": "array"
        },
        "SourceVpcWhitelist": {
          "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcWhitelist",
          "type": "array"
        }
      },
      "title": "ResourcePolicy",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ScheduleEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/EventsScheduleProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Schedule"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ScheduleEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ScheduleV2Event": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties"
            }
          ],
          "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\.  \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["ScheduleV2"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ScheduleV2Event",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule`  `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\.  \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule`  `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the schedule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "A description of the schedule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "Description"
        },
        "EndDate": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "EndDate"
        },
        "FlexibleTimeWindow": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Allows configuration of a window within which a schedule can be invoked\\.  \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\.  \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "FlexibleTimeWindow"
        },
        "GroupName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "GroupName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.",
          "title": "Input"
        },
        "KmsKeyArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN for a KMS Key that will be used to encrypt customer data\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "KmsKeyArn"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "Name"
        },
        "PermissionsBoundary": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the policy used to set the permissions boundary for the role\\.  \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\.  \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "title": "PermissionsBoundary"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A RetryPolicy object that includes information about the retry policy settings\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "markdownDescription": "A RetryPolicy object that includes information about the retry policy settings\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "RoleArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\.  \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\.  \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "title": "RoleArn"
        },
        "ScheduleExpression": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The scheduling expression that determines when and how often the scheduler schedule event runs\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The scheduling expression that determines when and how often the scheduler schedule event runs\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "ScheduleExpression"
        },
        "ScheduleExpressionTimezone": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The timezone in which the scheduling expression is evaluated\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The timezone in which the scheduling expression is evaluated\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "ScheduleExpressionTimezone"
        },
        "StartDate": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "StartDate"
        },
        "State": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The state of the Scheduler schedule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The state of the Scheduler schedule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "State"
        }
      },
      "title": "ScheduleV2EventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Auth": {
      "additionalProperties": false,
      "properties": {
        "Authorizers": {
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/definitions/OAuth2Authorizer"
              },
              {
                "$ref": "#/definitions/LambdaAuthorizer"
              }
            ]
          },
          "description": "The authorizer used to control access to your API Gateway API\\.  \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html)  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.",
          "markdownDescription": "The authorizer used to control access to your API Gateway API\\.  \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html)  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.",
          "title": "Authorizers",
          "type": "object"
        },
        "DefaultAuthorizer": {
          "description": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\.  \n*Type*: String  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\.  \n*Type*: String  \n*Required*: No  \n*Default*: None  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "DefaultAuthorizer",
          "type": "string"
        },
        "EnableIamAuthorizer": {
          "description": "Specify whether to use IAM authorization for the API route\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specify whether to use IAM authorization for the API route\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EnableIamAuthorizer",
          "type": "boolean"
        }
      },
      "title": "Auth",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": {
      "additionalProperties": false,
      "properties": {
        "Bucket": {
          "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "title": "Bucket",
          "type": "string"
        },
        "Key": {
          "description": "The Amazon S3 key of the OpenAPI file\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "markdownDescription": "The Amazon S3 key of the OpenAPI file\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "title": "Key",
          "type": "string"
        },
        "Version": {
          "description": "For versioned objects, the version of the OpenAPI file\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "markdownDescription": "For versioned objects, the version of the OpenAPI file\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.",
          "title": "Version",
          "type": "string"
        }
      },
      "required": ["Bucket", "Key"],
      "title": "DefinitionUri",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Domain": {
      "additionalProperties": false,
      "properties": {
        "BasePath": {
          "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\.  \n*Type*: List  \n*Required*: No  \n*Default*: /  \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\.  \n*Type*: List  \n*Required*: No  \n*Default*: /  \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.",
          "title": "BasePath",
          "type": "array"
        },
        "CertificateArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.",
          "title": "CertificateArn"
        },
        "DomainName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\.  \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.",
          "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\.  \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.",
          "title": "DomainName"
        },
        "EndpointConfiguration": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "enum": ["REGIONAL"],
              "type": "string"
            }
          ],
          "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\.  \nThe only valid value for HTTP APIs is `REGIONAL`\\.  \n*Type*: String  \n*Required*: No  \n*Default*: `REGIONAL`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\.  \nThe only valid value for HTTP APIs is `REGIONAL`\\.  \n*Type*: String  \n*Required*: No  \n*Default*: `REGIONAL`  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "EndpointConfiguration"
        },
        "MutualTlsAuthentication": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\.  \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.",
          "markdownDescription": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\.  \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.",
          "title": "MutualTlsAuthentication"
        },
        "OwnershipVerificationCertificateArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.",
          "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.",
          "title": "OwnershipVerificationCertificateArn"
        },
        "Route53": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53"
            }
          ],
          "description": "Defines an Amazon Route\u00a053 configuration\\.  \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\.  \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Route53"
        },
        "SecurityPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The TLS version of the security policy for this domain name\\.  \nThe only valid value for HTTP APIs is `TLS_1_2`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.",
          "markdownDescription": "The TLS version of the security policy for this domain name\\.  \nThe only valid value for HTTP APIs is `TLS_1_2`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.",
          "title": "SecurityPolicy"
        }
      },
      "required": ["CertificateArn", "DomainName"],
      "title": "Domain",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Globals": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The settings for access logging in a stage\\.  \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The settings for access logging in a stage\\.  \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "AccessLogSettings"
        },
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth"
            }
          ],
          "description": "Configures authorization for controlling access to your API Gateway HTTP API\\.  \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\.  \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "CorsConfiguration": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\.  \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\.  \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\.  \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\.  \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CorsConfiguration"
        },
        "DefaultRouteSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "DefaultRouteSettings"
        },
        "Domain": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain"
            }
          ],
          "description": "Configures a custom domain for this API Gateway HTTP API\\.  \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\.  \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Domain"
        },
        "FailOnWarnings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "title": "FailOnWarnings"
        },
        "RouteSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "RouteSettings"
        },
        "StageVariables": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\.  \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\.  \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "StageVariables"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.",
          "title": "Tags",
          "type": "object"
        }
      },
      "title": "Globals",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Properties": {
      "additionalProperties": false,
      "properties": {
        "AccessLogSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The settings for access logging in a stage\\.  \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The settings for access logging in a stage\\.  \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "AccessLogSettings"
        },
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth"
            }
          ],
          "description": "Configures authorization for controlling access to your API Gateway HTTP API\\.  \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\.  \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "CorsConfiguration": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\.  \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\.  \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\.  \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\.  \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CorsConfiguration"
        },
        "DefaultRouteSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "DefaultRouteSettings"
        },
        "DefinitionBody": {
          "description": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.",
          "markdownDescription": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\.  \n*Type*: JSON  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.",
          "title": "DefinitionBody",
          "type": "object"
        },
        "DefinitionUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri"
            }
          ],
          "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\.  \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\.  \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\.  \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\.  \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\.  \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "DefinitionUri"
        },
        "Description": {
          "description": "The description of the HTTP API resource\\.  \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error:  \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The description of the HTTP API resource\\.  \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error:  \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Description",
          "type": "string"
        },
        "DisableExecuteApiEndpoint": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "markdownDescription": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "title": "DisableExecuteApiEndpoint"
        },
        "Domain": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain"
            }
          ],
          "description": "Configures a custom domain for this API Gateway HTTP API\\.  \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\.  \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Domain"
        },
        "FailOnWarnings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.",
          "title": "FailOnWarnings"
        },
        "Name": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "RouteSettings": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\.  \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "RouteSettings"
        },
        "StageName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\.  \n*Type*: String  \n*Required*: No  \n*Default*: $default  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\.  \n*Type*: String  \n*Required*: No  \n*Default*: $default  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "StageName"
        },
        "StageVariables": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\.  \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\.  \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.",
          "title": "StageVariables"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.",
          "title": "Tags",
          "type": "object"
        }
      },
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Connectors": {
          "additionalProperties": {
            "$ref": "#/definitions/EmbeddedConnector"
          },
          "title": "Connectors",
          "type": "object"
        },
        "Metadata": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::HttpApi"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_httpapi__Route53": {
      "additionalProperties": false,
      "properties": {
        "DistributionDomainName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Configures a custom distribution of the API custom domain name\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Use the API Gateway distribution\\.  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.",
          "markdownDescription": "Configures a custom distribution of the API custom domain name\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Use the API Gateway distribution\\.  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.",
          "title": "DistributionDomainName"
        },
        "EvaluateTargetHealth": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.",
          "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\.  \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.",
          "title": "EvaluateTargetHealth"
        },
        "HostedZoneId": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ID of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "markdownDescription": "The ID of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "title": "HostedZoneId"
        },
        "HostedZoneName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "markdownDescription": "The name of the hosted zone that you want to create records in\\.  \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.",
          "title": "HostedZoneName"
        },
        "IpV6": {
          "description": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpV6",
          "type": "boolean"
        }
      },
      "title": "Route53",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_layerversion__Properties": {
      "additionalProperties": false,
      "properties": {
        "CompatibleArchitectures": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies the supported instruction set architectures for the layer version\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `x86_64`, `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "markdownDescription": "Specifies the supported instruction set architectures for the layer version\\.  \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\.  \n*Valid values*: `x86_64`, `arm64`  \n*Type*: List  \n*Required*: No  \n*Default*: `x86_64`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "title": "CompatibleArchitectures"
        },
        "CompatibleRuntimes": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "List of runtimes compatible with this LayerVersion\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "markdownDescription": "List of runtimes compatible with this LayerVersion\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "title": "CompatibleRuntimes"
        },
        "ContentUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/ContentUri"
            }
          ],
          "description": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\.  \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\.  \nIf a path to a local folder is provided, for the content to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.",
          "markdownDescription": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\.  \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\.  \nIf a path to a local folder is provided, for the content to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\.  \n*Type*: String \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.",
          "title": "ContentUri"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Description of this layer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "markdownDescription": "Description of this layer\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "title": "Description"
        },
        "LayerName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name or Amazon Resource Name \\(ARN\\) of the layer\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Resource logical id  \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.",
          "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the layer\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Resource logical id  \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.",
          "title": "LayerName"
        },
        "LicenseInfo": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Information about the license for this LayerVersion\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "markdownDescription": "Information about the license for this LayerVersion\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.",
          "title": "LicenseInfo"
        },
        "RetentionPolicy": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\.  \n*Valid values*: `Retain` or `Delete`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.",
          "markdownDescription": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\.  \n*Valid values*: `Retain` or `Delete`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.  \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.",
          "title": "RetentionPolicy"
        }
      },
      "required": ["ContentUri"],
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_layerversion__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "DeletionPolicy": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::LayerVersion"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_simpletable__Globals": {
      "additionalProperties": false,
      "properties": {
        "SSESpecification": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies the settings to enable server\\-side encryption\\.  \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "markdownDescription": "Specifies the settings to enable server\\-side encryption\\.  \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "title": "SSESpecification"
        }
      },
      "title": "Globals",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_simpletable__Properties": {
      "additionalProperties": false,
      "properties": {
        "PrimaryKey": {
          "allOf": [
            {
              "$ref": "#/definitions/PrimaryKey"
            }
          ],
          "description": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\.  \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\.  \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "PrimaryKey"
        },
        "ProvisionedThroughput": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Read and write throughput provisioning information\\.  \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\.  \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "markdownDescription": "Read and write throughput provisioning information\\.  \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\.  \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "title": "ProvisionedThroughput"
        },
        "SSESpecification": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Specifies the settings to enable server\\-side encryption\\.  \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "markdownDescription": "Specifies the settings to enable server\\-side encryption\\.  \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.",
          "title": "SSESpecification"
        },
        "TableName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Name for the DynamoDB Table\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.",
          "markdownDescription": "Name for the DynamoDB Table\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.",
          "title": "TableName"
        },
        "Tags": {
          "description": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.",
          "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.",
          "title": "Tags",
          "type": "object"
        }
      },
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_simpletable__Resource": {
      "additionalProperties": false,
      "properties": {
        "Connectors": {
          "additionalProperties": {
            "$ref": "#/definitions/EmbeddedConnector"
          },
          "title": "Connectors",
          "type": "object"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::SimpleTable"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ApiEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties"
            }
          ],
          "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Api"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ApiEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": {
      "additionalProperties": false,
      "properties": {
        "Auth": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth"
            }
          ],
          "description": "The authorization configuration for this API, path, and method\\.  \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\.  \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The authorization configuration for this API, path, and method\\.  \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\.  \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Auth"
        },
        "Method": {
          "description": "The HTTP method for which this function is invoked\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The HTTP method for which this function is invoked\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Method",
          "type": "string"
        },
        "Path": {
          "description": "The URI path for which this function is invoked\\. The value must start with `/`\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The URI path for which this function is invoked\\. The value must start with `/`\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Path",
          "type": "string"
        },
        "RestApiId": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ],
          "description": "The identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\.  \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\.  \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\.  \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\.  \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "RestApiId"
        },
        "UnescapeMappingTemplate": {
          "title": "Unescapemappingtemplate",
          "type": "boolean"
        }
      },
      "required": ["Method", "Path"],
      "title": "ApiEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__Auth": {
      "additionalProperties": false,
      "properties": {
        "ApiKeyRequired": {
          "description": "Requires an API key for this API, path, and method\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Requires an API key for this API, path, and method\\.  \n*Type*: Boolean  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ApiKeyRequired",
          "type": "boolean"
        },
        "AuthorizationScopes": {
          "description": "The authorization scopes to apply to this API, path, and method\\.  \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The authorization scopes to apply to this API, path, and method\\.  \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AuthorizationScopes",
          "type": "array"
        },
        "Authorizer": {
          "description": "The `Authorizer` for a specific state machine\\.  \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The `Authorizer` for a specific state machine\\.  \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Authorizer",
          "type": "string"
        },
        "ResourcePolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy"
            }
          ],
          "description": "Configure the resource policy for this API and path\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Configure the resource policy for this API and path\\.  \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "ResourcePolicy"
        }
      },
      "title": "Auth",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties"
            }
          ],
          "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["CloudWatchEvent"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "CloudWatchEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": {
      "additionalProperties": false,
      "properties": {
        "EventBusName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "title": "EventBusName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "InputPath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "InputPath"
        },
        "Pattern": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "title": "Pattern"
        }
      },
      "title": "CloudWatchEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": {
      "additionalProperties": false,
      "properties": {
        "Arn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.",
          "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.",
          "title": "Arn"
        },
        "QueueLogicalId": {
          "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\.  \nIf the `Type` property is not set, this property is ignored\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\.  \nIf the `Type` property is not set, this property is ignored\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "QueueLogicalId",
          "type": "string"
        },
        "Type": {
          "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["SQS"],
          "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\.  \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "DeadLetterConfig",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties"
            }
          ],
          "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["EventBridgeRule"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "EventBridgeRuleEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "EventBusName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\.  \n*Type*: String  \n*Required*: No  \n*Default*: Default event bus  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.",
          "title": "EventBusName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "Input"
        },
        "InputPath": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.",
          "title": "InputPath"
        },
        "Pattern": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.",
          "title": "Pattern"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "Target": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget"
        }
      },
      "title": "EventBridgeRuleEventProperties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": {
      "additionalProperties": false,
      "properties": {
        "Id": {
          "$ref": "#/definitions/PassThroughProp"
        }
      },
      "required": ["Id"],
      "title": "EventBridgeRuleTarget",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__Properties": {
      "additionalProperties": false,
      "properties": {
        "Definition": {
          "description": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\.  \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\.  \nYou must provide either a `Definition` or a `DefinitionUri`\\.  \n*Type*: Map  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\.  \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\.  \nYou must provide either a `Definition` or a `DefinitionUri`\\.  \n*Type*: Map  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Definition",
          "type": "object"
        },
        "DefinitionSubstitutions": {
          "description": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.",
          "markdownDescription": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.",
          "title": "DefinitionSubstitutions",
          "type": "object"
        },
        "DefinitionUri": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\.  \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\.  \nYou must provide either a `Definition` or a `DefinitionUri`\\.  \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\.  \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\.  \nYou must provide either a `Definition` or a `DefinitionUri`\\.  \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "DefinitionUri"
        },
        "Events": {
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent"
              },
              {
                "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent"
              }
            ]
          },
          "description": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\.  \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\.  \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Events",
          "type": "object"
        },
        "Logging": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Defines which execution history events are logged and where they are logged\\.  \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "Defines which execution history events are logged and where they are logged\\.  \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "Logging"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the state machine\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "The name of the state machine\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "Name"
        },
        "PermissionsBoundary": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "title": "PermissionsBoundary"
        },
        "Policies": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "One or more policies that this state machine's execution role needs\\.  \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\.  \nIf the `Role` property is set, this property is ignored\\.  \n*Type*: String \\| List \\| Map  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "One or more policies that this state machine's execution role needs\\.  \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\.  \nIf the `Role` property is set, this property is ignored\\.  \n*Type*: String \\| List \\| Map  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Policies"
        },
        "Role": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of an IAM role to use as this state machine's execution role\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "The ARN of an IAM role to use as this state machine's execution role\\.  \n*Type*: String  \n*Required*: Conditional  \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "Role"
        },
        "RolePath": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Tags": {
          "description": "A string\\-to\\-string map that specifies the tags added to the state machine and the corresponding execution role\\. For information about valid keys and values for tags, see the [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html) resource\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an `AWS::StepFunctions::StateMachine` resource\\. AWS SAM automatically adds a `stateMachine:createdBy:SAM` tag to this resource, and to the default role that is generated for it\\.",
          "markdownDescription": "A string\\-to\\-string map that specifies the tags added to the state machine and the corresponding execution role\\. For information about valid keys and values for tags, see the [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html) resource\\.  \n*Type*: Map  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an `AWS::StepFunctions::StateMachine` resource\\. AWS SAM automatically adds a `stateMachine:createdBy:SAM` tag to this resource, and to the default role that is generated for it\\.",
          "title": "Tags",
          "type": "object"
        },
        "Tracing": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\.  \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\.  \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "Tracing"
        },
        "Type": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The type of the state machine\\.  \n*Valid values*: `STANDARD` or `EXPRESS`  \n*Type*: String  \n*Required*: No  \n*Default*: `STANDARD`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "markdownDescription": "The type of the state machine\\.  \n*Valid values*: `STANDARD` or `EXPRESS`  \n*Type*: String  \n*Required*: No  \n*Default*: `STANDARD`  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.",
          "title": "Type"
        }
      },
      "title": "Properties",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__Resource": {
      "additionalProperties": false,
      "properties": {
        "Condition": {
          "$ref": "#/definitions/PassThroughProp"
        },
        "Connectors": {
          "additionalProperties": {
            "$ref": "#/definitions/EmbeddedConnector"
          },
          "title": "Connectors",
          "type": "object"
        },
        "Properties": {
          "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties"
        },
        "Type": {
          "enum": ["AWS::Serverless::StateMachine"],
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "Resource",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": {
      "additionalProperties": false,
      "properties": {
        "AwsAccountBlacklist": {
          "description": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to block\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountBlacklist",
          "type": "array"
        },
        "AwsAccountWhitelist": {
          "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List of String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "AwsAccountWhitelist",
          "type": "array"
        },
        "CustomStatements": {
          "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "CustomStatements",
          "type": "array"
        },
        "IntrinsicVpcBlacklist": {
          "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcBlacklist",
          "type": "array"
        },
        "IntrinsicVpcWhitelist": {
          "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpcWhitelist",
          "type": "array"
        },
        "IntrinsicVpceBlacklist": {
          "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceBlacklist",
          "type": "array"
        },
        "IntrinsicVpceWhitelist": {
          "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IntrinsicVpceWhitelist",
          "type": "array"
        },
        "IpRangeBlacklist": {
          "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeBlacklist",
          "type": "array"
        },
        "IpRangeWhitelist": {
          "description": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The IP addresses or address ranges to allow\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "IpRangeWhitelist",
          "type": "array"
        },
        "SourceVpcBlacklist": {
          "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcBlacklist",
          "type": "array"
        },
        "SourceVpcWhitelist": {
          "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object"
              }
            ]
          },
          "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\.  \n*Type*: List  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "SourceVpcWhitelist",
          "type": "array"
        }
      },
      "title": "ResourcePolicy",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/ScheduleEventProperties"
            }
          ],
          "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["Schedule"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ScheduleEvent",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": {
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties"
            }
          ],
          "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\.  \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html)  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Properties"
        },
        "Type": {
          "description": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "enum": ["ScheduleV2"],
          "markdownDescription": "The event type\\.  \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule`  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.",
          "title": "Type",
          "type": "string"
        }
      },
      "required": ["Type", "Properties"],
      "title": "ScheduleV2Event",
      "type": "object"
    },
    "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": {
      "additionalProperties": false,
      "properties": {
        "DeadLetterConfig": {
          "allOf": [
            {
              "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig"
            }
          ],
          "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\.  \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.",
          "title": "DeadLetterConfig"
        },
        "Description": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A description of the schedule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "A description of the schedule\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "Description"
        },
        "EndDate": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "EndDate"
        },
        "FlexibleTimeWindow": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Allows configuration of a window within which a schedule can be invoked\\.  \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\.  \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "FlexibleTimeWindow"
        },
        "GroupName": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "GroupName"
        },
        "Input": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.",
          "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.",
          "title": "Input"
        },
        "KmsKeyArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN for a KMS Key that will be used to encrypt customer data\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "KmsKeyArn"
        },
        "Name": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "Name"
        },
        "PermissionsBoundary": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the policy used to set the permissions boundary for the role\\.  \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\.  \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.",
          "title": "PermissionsBoundary"
        },
        "RetryPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "A `RetryPolicy` object that includes information about the retry policy settings\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\.  \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "title": "RetryPolicy"
        },
        "RoleArn": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\.  \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\.  \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn)  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.",
          "title": "RoleArn"
        },
        "ScheduleExpression": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The scheduling expression that determines when and how often the schedule runs\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The scheduling expression that determines when and how often the schedule runs\\.  \n*Type*: String  \n*Required*: Yes  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "ScheduleExpression"
        },
        "ScheduleExpressionTimezone": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The timezone in which the scheduling expression is evaluated\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The timezone in which the scheduling expression is evaluated\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "ScheduleExpressionTimezone"
        },
        "StartDate": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\.  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "StartDate"
        },
        "State": {
          "allOf": [
            {
              "$ref": "#/definitions/PassThroughProp"
            }
          ],
          "description": "The state of the schedule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.",
          "markdownDescription": "The state of the schedule\\.  \n*Accepted values:* `DISABLED | ENABLED`  \n*Type*: String  \n*Required*: No  \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.",
          "title": "State"
        }
      },
      "title": "ScheduleV2EventProperties",
      "type": "object"
    }
  },
  "properties": {
    "AWSTemplateFormatVersion": {
      "enum": ["2010-09-09"],
      "type": "string"
    },
    "Conditions": {
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9]+$": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "Description": {
      "description": "Template description",
      "maxLength": 1024,
      "type": "string"
    },
    "Globals": {
      "$ref": "#/definitions/__main____Globals"
    },
    "Mappings": {
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9]+$": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "Metadata": {
      "type": "object"
    },
    "Outputs": {
      "additionalProperties": false,
      "maxProperties": 60,
      "minProperties": 1,
      "patternProperties": {
        "^[a-zA-Z0-9]+$": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "Parameters": {
      "additionalProperties": false,
      "maxProperties": 50,
      "patternProperties": {
        "^[a-zA-Z0-9]+$": {
          "$ref": "#/definitions/Parameter"
        }
      },
      "type": "object"
    },
    "Resources": {
      "additionalProperties": {
        "anyOf": [
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource"
          },
          {
            "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource"
          },
          {
            "$ref": "#/definitions/AWS::ACMPCA::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority"
          },
          {
            "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation"
          },
          {
            "$ref": "#/definitions/AWS::ACMPCA::Permission"
          },
          {
            "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace"
          },
          {
            "$ref": "#/definitions/AWS::APS::Workspace"
          },
          {
            "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer"
          },
          {
            "$ref": "#/definitions/AWS::AmazonMQ::Broker"
          },
          {
            "$ref": "#/definitions/AWS::AmazonMQ::Configuration"
          },
          {
            "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Amplify::App"
          },
          {
            "$ref": "#/definitions/AWS::Amplify::Branch"
          },
          {
            "$ref": "#/definitions/AWS::Amplify::Domain"
          },
          {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component"
          },
          {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form"
          },
          {
            "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Account"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::ApiKey"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Authorizer"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::BasePathMapping"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::ClientCertificate"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Deployment"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::DocumentationVersion"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::DomainName"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::GatewayResponse"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Method"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Model"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::RequestValidator"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Resource"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::RestApi"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::Stage"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::UsagePlan"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::UsagePlanKey"
          },
          {
            "$ref": "#/definitions/AWS::ApiGateway::VpcLink"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Api"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::ApiMapping"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Integration"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Model"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Route"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::Stage"
          },
          {
            "$ref": "#/definitions/AWS::ApiGatewayV2::VpcLink"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::Application"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::Deployment"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::Environment"
          },
          {
            "$ref": "#/definitions/AWS::AppConfig::HostedConfigurationVersion"
          },
          {
            "$ref": "#/definitions/AWS::AppFlow::Connector"
          },
          {
            "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile"
          },
          {
            "$ref": "#/definitions/AWS::AppFlow::Flow"
          },
          {
            "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration"
          },
          {
            "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::GatewayRoute"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::Mesh"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::Route"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::VirtualGateway"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::VirtualNode"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::VirtualRouter"
          },
          {
            "$ref": "#/definitions/AWS::AppMesh::VirtualService"
          },
          {
            "$ref": "#/definitions/AWS::AppRunner::ObservabilityConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::AppRunner::Service"
          },
          {
            "$ref": "#/definitions/AWS::AppRunner::VpcConnector"
          },
          {
            "$ref": "#/definitions/AWS::AppRunner::VpcIngressConnection"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::AppBlock"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::Application"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::ApplicationEntitlementAssociation"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::ApplicationFleetAssociation"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::DirectoryConfig"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::Entitlement"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::Fleet"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::ImageBuilder"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::Stack"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::StackFleetAssociation"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::StackUserAssociation"
          },
          {
            "$ref": "#/definitions/AWS::AppStream::User"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::ApiCache"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::ApiKey"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::DataSource"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::DomainName"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::DomainNameApiAssociation"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::GraphQLApi"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::GraphQLSchema"
          },
          {
            "$ref": "#/definitions/AWS::AppSync::Resolver"
          },
          {
            "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget"
          },
          {
            "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy"
          },
          {
            "$ref": "#/definitions/AWS::ApplicationInsights::Application"
          },
          {
            "$ref": "#/definitions/AWS::Athena::DataCatalog"
          },
          {
            "$ref": "#/definitions/AWS::Athena::NamedQuery"
          },
          {
            "$ref": "#/definitions/AWS::Athena::PreparedStatement"
          },
          {
            "$ref": "#/definitions/AWS::Athena::WorkGroup"
          },
          {
            "$ref": "#/definitions/AWS::AuditManager::Assessment"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::LifecycleHook"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::ScheduledAction"
          },
          {
            "$ref": "#/definitions/AWS::AutoScaling::WarmPool"
          },
          {
            "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan"
          },
          {
            "$ref": "#/definitions/AWS::Backup::BackupPlan"
          },
          {
            "$ref": "#/definitions/AWS::Backup::BackupSelection"
          },
          {
            "$ref": "#/definitions/AWS::Backup::BackupVault"
          },
          {
            "$ref": "#/definitions/AWS::Backup::Framework"
          },
          {
            "$ref": "#/definitions/AWS::Backup::ReportPlan"
          },
          {
            "$ref": "#/definitions/AWS::Batch::ComputeEnvironment"
          },
          {
            "$ref": "#/definitions/AWS::Batch::JobDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Batch::JobQueue"
          },
          {
            "$ref": "#/definitions/AWS::Batch::SchedulingPolicy"
          },
          {
            "$ref": "#/definitions/AWS::BillingConductor::BillingGroup"
          },
          {
            "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem"
          },
          {
            "$ref": "#/definitions/AWS::BillingConductor::PricingPlan"
          },
          {
            "$ref": "#/definitions/AWS::BillingConductor::PricingRule"
          },
          {
            "$ref": "#/definitions/AWS::Budgets::Budget"
          },
          {
            "$ref": "#/definitions/AWS::Budgets::BudgetsAction"
          },
          {
            "$ref": "#/definitions/AWS::CE::AnomalyMonitor"
          },
          {
            "$ref": "#/definitions/AWS::CE::AnomalySubscription"
          },
          {
            "$ref": "#/definitions/AWS::CE::CostCategory"
          },
          {
            "$ref": "#/definitions/AWS::CUR::ReportDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Cassandra::Keyspace"
          },
          {
            "$ref": "#/definitions/AWS::Cassandra::Table"
          },
          {
            "$ref": "#/definitions/AWS::CertificateManager::Account"
          },
          {
            "$ref": "#/definitions/AWS::CertificateManager::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::Chatbot::SlackChannelConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::CustomResource"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::HookVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::Macro"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::ModuleDefaultVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::Publisher"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::Stack"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::StackSet"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::TypeActivation"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::WaitCondition"
          },
          {
            "$ref": "#/definitions/AWS::CloudFormation::WaitConditionHandle"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::CachePolicy"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::Distribution"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::Function"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::KeyGroup"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::OriginAccessControl"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::PublicKey"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy"
          },
          {
            "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution"
          },
          {
            "$ref": "#/definitions/AWS::CloudTrail::EventDataStore"
          },
          {
            "$ref": "#/definitions/AWS::CloudTrail::Trail"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::Alarm"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::CompositeAlarm"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::Dashboard"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::InsightRule"
          },
          {
            "$ref": "#/definitions/AWS::CloudWatch::MetricStream"
          },
          {
            "$ref": "#/definitions/AWS::CodeArtifact::Domain"
          },
          {
            "$ref": "#/definitions/AWS::CodeArtifact::Repository"
          },
          {
            "$ref": "#/definitions/AWS::CodeBuild::Project"
          },
          {
            "$ref": "#/definitions/AWS::CodeBuild::ReportGroup"
          },
          {
            "$ref": "#/definitions/AWS::CodeBuild::SourceCredential"
          },
          {
            "$ref": "#/definitions/AWS::CodeCommit::Repository"
          },
          {
            "$ref": "#/definitions/AWS::CodeDeploy::Application"
          },
          {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig"
          },
          {
            "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup"
          },
          {
            "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup"
          },
          {
            "$ref": "#/definitions/AWS::CodeGuruReviewer::RepositoryAssociation"
          },
          {
            "$ref": "#/definitions/AWS::CodePipeline::CustomActionType"
          },
          {
            "$ref": "#/definitions/AWS::CodePipeline::Pipeline"
          },
          {
            "$ref": "#/definitions/AWS::CodePipeline::Webhook"
          },
          {
            "$ref": "#/definitions/AWS::CodeStar::GitHubRepository"
          },
          {
            "$ref": "#/definitions/AWS::CodeStarConnections::Connection"
          },
          {
            "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::IdentityPool"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPool"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolClient"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolDomain"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolGroup"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolIdentityProvider"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolUICustomizationAttachment"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolUser"
          },
          {
            "$ref": "#/definitions/AWS::Cognito::UserPoolUserToGroupAttachment"
          },
          {
            "$ref": "#/definitions/AWS::Config::AggregationAuthorization"
          },
          {
            "$ref": "#/definitions/AWS::Config::ConfigRule"
          },
          {
            "$ref": "#/definitions/AWS::Config::ConfigurationAggregator"
          },
          {
            "$ref": "#/definitions/AWS::Config::ConfigurationRecorder"
          },
          {
            "$ref": "#/definitions/AWS::Config::ConformancePack"
          },
          {
            "$ref": "#/definitions/AWS::Config::DeliveryChannel"
          },
          {
            "$ref": "#/definitions/AWS::Config::OrganizationConfigRule"
          },
          {
            "$ref": "#/definitions/AWS::Config::OrganizationConformancePack"
          },
          {
            "$ref": "#/definitions/AWS::Config::RemediationConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::Config::StoredQuery"
          },
          {
            "$ref": "#/definitions/AWS::Connect::ContactFlow"
          },
          {
            "$ref": "#/definitions/AWS::Connect::ContactFlowModule"
          },
          {
            "$ref": "#/definitions/AWS::Connect::HoursOfOperation"
          },
          {
            "$ref": "#/definitions/AWS::Connect::Instance"
          },
          {
            "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig"
          },
          {
            "$ref": "#/definitions/AWS::Connect::PhoneNumber"
          },
          {
            "$ref": "#/definitions/AWS::Connect::QuickConnect"
          },
          {
            "$ref": "#/definitions/AWS::Connect::Rule"
          },
          {
            "$ref": "#/definitions/AWS::Connect::TaskTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Connect::User"
          },
          {
            "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup"
          },
          {
            "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign"
          },
          {
            "$ref": "#/definitions/AWS::ControlTower::EnabledControl"
          },
          {
            "$ref": "#/definitions/AWS::CustomerProfiles::Domain"
          },
          {
            "$ref": "#/definitions/AWS::CustomerProfiles::Integration"
          },
          {
            "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType"
          },
          {
            "$ref": "#/definitions/AWS::DAX::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::DAX::ParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::DAX::SubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::DLM::LifecyclePolicy"
          },
          {
            "$ref": "#/definitions/AWS::DMS::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::DMS::Endpoint"
          },
          {
            "$ref": "#/definitions/AWS::DMS::EventSubscription"
          },
          {
            "$ref": "#/definitions/AWS::DMS::ReplicationInstance"
          },
          {
            "$ref": "#/definitions/AWS::DMS::ReplicationSubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::DMS::ReplicationTask"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Dataset"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Job"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Project"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Recipe"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Ruleset"
          },
          {
            "$ref": "#/definitions/AWS::DataBrew::Schedule"
          },
          {
            "$ref": "#/definitions/AWS::DataPipeline::Pipeline"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::Agent"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationEFS"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationFSxLustre"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationHDFS"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationNFS"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationObjectStorage"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationS3"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::LocationSMB"
          },
          {
            "$ref": "#/definitions/AWS::DataSync::Task"
          },
          {
            "$ref": "#/definitions/AWS::Detective::Graph"
          },
          {
            "$ref": "#/definitions/AWS::Detective::MemberInvitation"
          },
          {
            "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel"
          },
          {
            "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection"
          },
          {
            "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD"
          },
          {
            "$ref": "#/definitions/AWS::DirectoryService::SimpleAD"
          },
          {
            "$ref": "#/definitions/AWS::DocDB::DBCluster"
          },
          {
            "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::DocDB::DBInstance"
          },
          {
            "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::DocDBElastic::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::DynamoDB::GlobalTable"
          },
          {
            "$ref": "#/definitions/AWS::DynamoDB::Table"
          },
          {
            "$ref": "#/definitions/AWS::EC2::CapacityReservation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet"
          },
          {
            "$ref": "#/definitions/AWS::EC2::CarrierGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::ClientVpnAuthorizationRule"
          },
          {
            "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::EC2::ClientVpnRoute"
          },
          {
            "$ref": "#/definitions/AWS::EC2::ClientVpnTargetNetworkAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::CustomerGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::DHCPOptions"
          },
          {
            "$ref": "#/definitions/AWS::EC2::EC2Fleet"
          },
          {
            "$ref": "#/definitions/AWS::EC2::EIP"
          },
          {
            "$ref": "#/definitions/AWS::EC2::EIPAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::EgressOnlyInternetGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::EnclaveCertificateIamRoleAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::FlowLog"
          },
          {
            "$ref": "#/definitions/AWS::EC2::GatewayRouteTableAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::Host"
          },
          {
            "$ref": "#/definitions/AWS::EC2::IPAM"
          },
          {
            "$ref": "#/definitions/AWS::EC2::IPAMAllocation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::IPAMPool"
          },
          {
            "$ref": "#/definitions/AWS::EC2::IPAMScope"
          },
          {
            "$ref": "#/definitions/AWS::EC2::Instance"
          },
          {
            "$ref": "#/definitions/AWS::EC2::InternetGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::KeyPair"
          },
          {
            "$ref": "#/definitions/AWS::EC2::LaunchTemplate"
          },
          {
            "$ref": "#/definitions/AWS::EC2::LocalGatewayRoute"
          },
          {
            "$ref": "#/definitions/AWS::EC2::LocalGatewayRouteTableVPCAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NatGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkAcl"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkAclEntry"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScopeAnalysis"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInsightsPath"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInterface"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInterfaceAttachment"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkInterfacePermission"
          },
          {
            "$ref": "#/definitions/AWS::EC2::NetworkPerformanceMetricSubscription"
          },
          {
            "$ref": "#/definitions/AWS::EC2::PlacementGroup"
          },
          {
            "$ref": "#/definitions/AWS::EC2::PrefixList"
          },
          {
            "$ref": "#/definitions/AWS::EC2::Route"
          },
          {
            "$ref": "#/definitions/AWS::EC2::RouteTable"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SecurityGroup"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SecurityGroupEgress"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SecurityGroupIngress"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SpotFleet"
          },
          {
            "$ref": "#/definitions/AWS::EC2::Subnet"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SubnetCidrBlock"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SubnetNetworkAclAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::SubnetRouteTableAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilter"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TrafficMirrorSession"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TrafficMirrorTarget"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomainAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastGroupMember"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastGroupSource"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayRoute"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTable"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTableAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPC"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCCidrBlock"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCDHCPOptionsAssociation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCEndpointConnectionNotification"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCEndpointService"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCEndpointServicePermissions"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCGatewayAttachment"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPCPeeringConnection"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPNConnection"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPNConnectionRoute"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPNGateway"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation"
          },
          {
            "$ref": "#/definitions/AWS::EC2::Volume"
          },
          {
            "$ref": "#/definitions/AWS::EC2::VolumeAttachment"
          },
          {
            "$ref": "#/definitions/AWS::ECR::PublicRepository"
          },
          {
            "$ref": "#/definitions/AWS::ECR::PullThroughCacheRule"
          },
          {
            "$ref": "#/definitions/AWS::ECR::RegistryPolicy"
          },
          {
            "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::ECR::Repository"
          },
          {
            "$ref": "#/definitions/AWS::ECS::CapacityProvider"
          },
          {
            "$ref": "#/definitions/AWS::ECS::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations"
          },
          {
            "$ref": "#/definitions/AWS::ECS::PrimaryTaskSet"
          },
          {
            "$ref": "#/definitions/AWS::ECS::Service"
          },
          {
            "$ref": "#/definitions/AWS::ECS::TaskDefinition"
          },
          {
            "$ref": "#/definitions/AWS::ECS::TaskSet"
          },
          {
            "$ref": "#/definitions/AWS::EFS::AccessPoint"
          },
          {
            "$ref": "#/definitions/AWS::EFS::FileSystem"
          },
          {
            "$ref": "#/definitions/AWS::EFS::MountTarget"
          },
          {
            "$ref": "#/definitions/AWS::EKS::Addon"
          },
          {
            "$ref": "#/definitions/AWS::EKS::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::EKS::FargateProfile"
          },
          {
            "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig"
          },
          {
            "$ref": "#/definitions/AWS::EKS::Nodegroup"
          },
          {
            "$ref": "#/definitions/AWS::EMR::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig"
          },
          {
            "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig"
          },
          {
            "$ref": "#/definitions/AWS::EMR::SecurityConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::EMR::Step"
          },
          {
            "$ref": "#/definitions/AWS::EMR::Studio"
          },
          {
            "$ref": "#/definitions/AWS::EMR::StudioSessionMapping"
          },
          {
            "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster"
          },
          {
            "$ref": "#/definitions/AWS::EMRServerless::Application"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::CacheCluster"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::ParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::SecurityGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::SecurityGroupIngress"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::SubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::User"
          },
          {
            "$ref": "#/definitions/AWS::ElastiCache::UserGroup"
          },
          {
            "$ref": "#/definitions/AWS::ElasticBeanstalk::Application"
          },
          {
            "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion"
          },
          {
            "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate"
          },
          {
            "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer"
          },
          {
            "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup"
          },
          {
            "$ref": "#/definitions/AWS::Elasticsearch::Domain"
          },
          {
            "$ref": "#/definitions/AWS::EventSchemas::Discoverer"
          },
          {
            "$ref": "#/definitions/AWS::EventSchemas::Registry"
          },
          {
            "$ref": "#/definitions/AWS::EventSchemas::RegistryPolicy"
          },
          {
            "$ref": "#/definitions/AWS::EventSchemas::Schema"
          },
          {
            "$ref": "#/definitions/AWS::Events::ApiDestination"
          },
          {
            "$ref": "#/definitions/AWS::Events::Archive"
          },
          {
            "$ref": "#/definitions/AWS::Events::Connection"
          },
          {
            "$ref": "#/definitions/AWS::Events::Endpoint"
          },
          {
            "$ref": "#/definitions/AWS::Events::EventBus"
          },
          {
            "$ref": "#/definitions/AWS::Events::EventBusPolicy"
          },
          {
            "$ref": "#/definitions/AWS::Events::Rule"
          },
          {
            "$ref": "#/definitions/AWS::Evidently::Experiment"
          },
          {
            "$ref": "#/definitions/AWS::Evidently::Feature"
          },
          {
            "$ref": "#/definitions/AWS::Evidently::Launch"
          },
          {
            "$ref": "#/definitions/AWS::Evidently::Project"
          },
          {
            "$ref": "#/definitions/AWS::Evidently::Segment"
          },
          {
            "$ref": "#/definitions/AWS::FIS::ExperimentTemplate"
          },
          {
            "$ref": "#/definitions/AWS::FMS::NotificationChannel"
          },
          {
            "$ref": "#/definitions/AWS::FMS::Policy"
          },
          {
            "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation"
          },
          {
            "$ref": "#/definitions/AWS::FSx::FileSystem"
          },
          {
            "$ref": "#/definitions/AWS::FSx::Snapshot"
          },
          {
            "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine"
          },
          {
            "$ref": "#/definitions/AWS::FSx::Volume"
          },
          {
            "$ref": "#/definitions/AWS::FinSpace::Environment"
          },
          {
            "$ref": "#/definitions/AWS::Forecast::Dataset"
          },
          {
            "$ref": "#/definitions/AWS::Forecast::DatasetGroup"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::Detector"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::EntityType"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::EventType"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::Label"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::Outcome"
          },
          {
            "$ref": "#/definitions/AWS::FraudDetector::Variable"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::Alias"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::Build"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::Fleet"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::GameServerGroup"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::GameSessionQueue"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::Location"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::MatchmakingRuleSet"
          },
          {
            "$ref": "#/definitions/AWS::GameLift::Script"
          },
          {
            "$ref": "#/definitions/AWS::GlobalAccelerator::Accelerator"
          },
          {
            "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup"
          },
          {
            "$ref": "#/definitions/AWS::GlobalAccelerator::Listener"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Classifier"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Connection"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Crawler"
          },
          {
            "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Database"
          },
          {
            "$ref": "#/definitions/AWS::Glue::DevEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Job"
          },
          {
            "$ref": "#/definitions/AWS::Glue::MLTransform"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Partition"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Registry"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Schema"
          },
          {
            "$ref": "#/definitions/AWS::Glue::SchemaVersion"
          },
          {
            "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata"
          },
          {
            "$ref": "#/definitions/AWS::Glue::SecurityConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Table"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Trigger"
          },
          {
            "$ref": "#/definitions/AWS::Glue::Workflow"
          },
          {
            "$ref": "#/definitions/AWS::Grafana::Workspace"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::CoreDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::Group"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::GroupVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion"
          },
          {
            "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion"
          },
          {
            "$ref": "#/definitions/AWS::GreengrassV2::Deployment"
          },
          {
            "$ref": "#/definitions/AWS::GroundStation::Config"
          },
          {
            "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup"
          },
          {
            "$ref": "#/definitions/AWS::GroundStation::MissionProfile"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::Detector"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::Filter"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::IPSet"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::Master"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::Member"
          },
          {
            "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet"
          },
          {
            "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore"
          },
          {
            "$ref": "#/definitions/AWS::IAM::AccessKey"
          },
          {
            "$ref": "#/definitions/AWS::IAM::Group"
          },
          {
            "$ref": "#/definitions/AWS::IAM::InstanceProfile"
          },
          {
            "$ref": "#/definitions/AWS::IAM::ManagedPolicy"
          },
          {
            "$ref": "#/definitions/AWS::IAM::OIDCProvider"
          },
          {
            "$ref": "#/definitions/AWS::IAM::Policy"
          },
          {
            "$ref": "#/definitions/AWS::IAM::Role"
          },
          {
            "$ref": "#/definitions/AWS::IAM::SAMLProvider"
          },
          {
            "$ref": "#/definitions/AWS::IAM::ServerCertificate"
          },
          {
            "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole"
          },
          {
            "$ref": "#/definitions/AWS::IAM::User"
          },
          {
            "$ref": "#/definitions/AWS::IAM::UserToGroupAddition"
          },
          {
            "$ref": "#/definitions/AWS::IAM::VirtualMFADevice"
          },
          {
            "$ref": "#/definitions/AWS::IVS::Channel"
          },
          {
            "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair"
          },
          {
            "$ref": "#/definitions/AWS::IVS::RecordingConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::IVS::StreamKey"
          },
          {
            "$ref": "#/definitions/AWS::IdentityStore::Group"
          },
          {
            "$ref": "#/definitions/AWS::IdentityStore::GroupMembership"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::Component"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::Image"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe"
          },
          {
            "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::Inspector::AssessmentTarget"
          },
          {
            "$ref": "#/definitions/AWS::Inspector::AssessmentTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Inspector::ResourceGroup"
          },
          {
            "$ref": "#/definitions/AWS::InspectorV2::Filter"
          },
          {
            "$ref": "#/definitions/AWS::IoT1Click::Device"
          },
          {
            "$ref": "#/definitions/AWS::IoT1Click::Placement"
          },
          {
            "$ref": "#/definitions/AWS::IoT1Click::Project"
          },
          {
            "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Authorizer"
          },
          {
            "$ref": "#/definitions/AWS::IoT::CACertificate"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::IoT::CustomMetric"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Dimension"
          },
          {
            "$ref": "#/definitions/AWS::IoT::DomainConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::IoT::FleetMetric"
          },
          {
            "$ref": "#/definitions/AWS::IoT::JobTemplate"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Logging"
          },
          {
            "$ref": "#/definitions/AWS::IoT::MitigationAction"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Policy"
          },
          {
            "$ref": "#/definitions/AWS::IoT::PolicyPrincipalAttachment"
          },
          {
            "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate"
          },
          {
            "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging"
          },
          {
            "$ref": "#/definitions/AWS::IoT::RoleAlias"
          },
          {
            "$ref": "#/definitions/AWS::IoT::ScheduledAudit"
          },
          {
            "$ref": "#/definitions/AWS::IoT::SecurityProfile"
          },
          {
            "$ref": "#/definitions/AWS::IoT::Thing"
          },
          {
            "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment"
          },
          {
            "$ref": "#/definitions/AWS::IoT::TopicRule"
          },
          {
            "$ref": "#/definitions/AWS::IoT::TopicRuleDestination"
          },
          {
            "$ref": "#/definitions/AWS::IoTAnalytics::Channel"
          },
          {
            "$ref": "#/definitions/AWS::IoTAnalytics::Dataset"
          },
          {
            "$ref": "#/definitions/AWS::IoTAnalytics::Datastore"
          },
          {
            "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline"
          },
          {
            "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition"
          },
          {
            "$ref": "#/definitions/AWS::IoTEvents::AlarmModel"
          },
          {
            "$ref": "#/definitions/AWS::IoTEvents::DetectorModel"
          },
          {
            "$ref": "#/definitions/AWS::IoTEvents::Input"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetHub::Application"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::Campaign"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::Fleet"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::ModelManifest"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog"
          },
          {
            "$ref": "#/definitions/AWS::IoTFleetWise::Vehicle"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::Asset"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::Dashboard"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::Gateway"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::Portal"
          },
          {
            "$ref": "#/definitions/AWS::IoTSiteWise::Project"
          },
          {
            "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate"
          },
          {
            "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType"
          },
          {
            "$ref": "#/definitions/AWS::IoTTwinMaker::Entity"
          },
          {
            "$ref": "#/definitions/AWS::IoTTwinMaker::Scene"
          },
          {
            "$ref": "#/definitions/AWS::IoTTwinMaker::SyncJob"
          },
          {
            "$ref": "#/definitions/AWS::IoTTwinMaker::Workspace"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::Destination"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::FuotaTask"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::NetworkAnalyzerConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice"
          },
          {
            "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway"
          },
          {
            "$ref": "#/definitions/AWS::KMS::Alias"
          },
          {
            "$ref": "#/definitions/AWS::KMS::Key"
          },
          {
            "$ref": "#/definitions/AWS::KMS::ReplicaKey"
          },
          {
            "$ref": "#/definitions/AWS::KafkaConnect::Connector"
          },
          {
            "$ref": "#/definitions/AWS::Kendra::DataSource"
          },
          {
            "$ref": "#/definitions/AWS::Kendra::Faq"
          },
          {
            "$ref": "#/definitions/AWS::Kendra::Index"
          },
          {
            "$ref": "#/definitions/AWS::Kinesis::Stream"
          },
          {
            "$ref": "#/definitions/AWS::Kinesis::StreamConsumer"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalytics::Application"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput"
          },
          {
            "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource"
          },
          {
            "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream"
          },
          {
            "$ref": "#/definitions/AWS::KinesisVideo::SignalingChannel"
          },
          {
            "$ref": "#/definitions/AWS::KinesisVideo::Stream"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::Permissions"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::Resource"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::Tag"
          },
          {
            "$ref": "#/definitions/AWS::LakeFormation::TagAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::Alias"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::EventSourceMapping"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::Function"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::LayerVersion"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::Permission"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::Url"
          },
          {
            "$ref": "#/definitions/AWS::Lambda::Version"
          },
          {
            "$ref": "#/definitions/AWS::Lex::Bot"
          },
          {
            "$ref": "#/definitions/AWS::Lex::BotAlias"
          },
          {
            "$ref": "#/definitions/AWS::Lex::BotVersion"
          },
          {
            "$ref": "#/definitions/AWS::Lex::ResourcePolicy"
          },
          {
            "$ref": "#/definitions/AWS::LicenseManager::Grant"
          },
          {
            "$ref": "#/definitions/AWS::LicenseManager::License"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Alarm"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Bucket"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Container"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Database"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Disk"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Distribution"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::Instance"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::LoadBalancer"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::LoadBalancerTlsCertificate"
          },
          {
            "$ref": "#/definitions/AWS::Lightsail::StaticIp"
          },
          {
            "$ref": "#/definitions/AWS::Location::GeofenceCollection"
          },
          {
            "$ref": "#/definitions/AWS::Location::Map"
          },
          {
            "$ref": "#/definitions/AWS::Location::PlaceIndex"
          },
          {
            "$ref": "#/definitions/AWS::Location::RouteCalculator"
          },
          {
            "$ref": "#/definitions/AWS::Location::Tracker"
          },
          {
            "$ref": "#/definitions/AWS::Location::TrackerConsumer"
          },
          {
            "$ref": "#/definitions/AWS::Logs::Destination"
          },
          {
            "$ref": "#/definitions/AWS::Logs::LogGroup"
          },
          {
            "$ref": "#/definitions/AWS::Logs::LogStream"
          },
          {
            "$ref": "#/definitions/AWS::Logs::MetricFilter"
          },
          {
            "$ref": "#/definitions/AWS::Logs::QueryDefinition"
          },
          {
            "$ref": "#/definitions/AWS::Logs::ResourcePolicy"
          },
          {
            "$ref": "#/definitions/AWS::Logs::SubscriptionFilter"
          },
          {
            "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler"
          },
          {
            "$ref": "#/definitions/AWS::LookoutMetrics::Alert"
          },
          {
            "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector"
          },
          {
            "$ref": "#/definitions/AWS::LookoutVision::Project"
          },
          {
            "$ref": "#/definitions/AWS::M2::Application"
          },
          {
            "$ref": "#/definitions/AWS::M2::Environment"
          },
          {
            "$ref": "#/definitions/AWS::MSK::BatchScramSecret"
          },
          {
            "$ref": "#/definitions/AWS::MSK::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::MSK::Configuration"
          },
          {
            "$ref": "#/definitions/AWS::MSK::ServerlessCluster"
          },
          {
            "$ref": "#/definitions/AWS::MWAA::Environment"
          },
          {
            "$ref": "#/definitions/AWS::Macie::AllowList"
          },
          {
            "$ref": "#/definitions/AWS::Macie::CustomDataIdentifier"
          },
          {
            "$ref": "#/definitions/AWS::Macie::FindingsFilter"
          },
          {
            "$ref": "#/definitions/AWS::Macie::Session"
          },
          {
            "$ref": "#/definitions/AWS::ManagedBlockchain::Member"
          },
          {
            "$ref": "#/definitions/AWS::ManagedBlockchain::Node"
          },
          {
            "$ref": "#/definitions/AWS::MediaConnect::Flow"
          },
          {
            "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement"
          },
          {
            "$ref": "#/definitions/AWS::MediaConnect::FlowOutput"
          },
          {
            "$ref": "#/definitions/AWS::MediaConnect::FlowSource"
          },
          {
            "$ref": "#/definitions/AWS::MediaConnect::FlowVpcInterface"
          },
          {
            "$ref": "#/definitions/AWS::MediaConvert::JobTemplate"
          },
          {
            "$ref": "#/definitions/AWS::MediaConvert::Preset"
          },
          {
            "$ref": "#/definitions/AWS::MediaConvert::Queue"
          },
          {
            "$ref": "#/definitions/AWS::MediaLive::Channel"
          },
          {
            "$ref": "#/definitions/AWS::MediaLive::Input"
          },
          {
            "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup"
          },
          {
            "$ref": "#/definitions/AWS::MediaPackage::Asset"
          },
          {
            "$ref": "#/definitions/AWS::MediaPackage::Channel"
          },
          {
            "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup"
          },
          {
            "$ref": "#/definitions/AWS::MediaStore::Container"
          },
          {
            "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::MemoryDB::ACL"
          },
          {
            "$ref": "#/definitions/AWS::MemoryDB::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::MemoryDB::User"
          },
          {
            "$ref": "#/definitions/AWS::Neptune::DBCluster"
          },
          {
            "$ref": "#/definitions/AWS::Neptune::DBClusterParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::Neptune::DBInstance"
          },
          {
            "$ref": "#/definitions/AWS::Neptune::DBParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::NetworkFirewall::Firewall"
          },
          {
            "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy"
          },
          {
            "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::ConnectAttachment"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::CoreNetwork"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::Device"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::GlobalNetwork"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::Link"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::LinkAssociation"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::Site"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::SiteToSiteVpnAttachment"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRegistration"
          },
          {
            "$ref": "#/definitions/AWS::NetworkManager::VpcAttachment"
          },
          {
            "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile"
          },
          {
            "$ref": "#/definitions/AWS::NimbleStudio::StreamingImage"
          },
          {
            "$ref": "#/definitions/AWS::NimbleStudio::Studio"
          },
          {
            "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent"
          },
          {
            "$ref": "#/definitions/AWS::Oam::Link"
          },
          {
            "$ref": "#/definitions/AWS::Oam::Sink"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchServerless::AccessPolicy"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchServerless::Collection"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityConfig"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityPolicy"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchServerless::VpcEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::OpenSearchService::Domain"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::App"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::ElasticLoadBalancerAttachment"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::Instance"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::Layer"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::Stack"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::UserProfile"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorks::Volume"
          },
          {
            "$ref": "#/definitions/AWS::OpsWorksCM::Server"
          },
          {
            "$ref": "#/definitions/AWS::Organizations::Account"
          },
          {
            "$ref": "#/definitions/AWS::Organizations::OrganizationalUnit"
          },
          {
            "$ref": "#/definitions/AWS::Organizations::Policy"
          },
          {
            "$ref": "#/definitions/AWS::Panorama::ApplicationInstance"
          },
          {
            "$ref": "#/definitions/AWS::Panorama::Package"
          },
          {
            "$ref": "#/definitions/AWS::Panorama::PackageVersion"
          },
          {
            "$ref": "#/definitions/AWS::Personalize::Dataset"
          },
          {
            "$ref": "#/definitions/AWS::Personalize::DatasetGroup"
          },
          {
            "$ref": "#/definitions/AWS::Personalize::Schema"
          },
          {
            "$ref": "#/definitions/AWS::Personalize::Solution"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::ADMChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::APNSChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::APNSSandboxChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::APNSVoipChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::APNSVoipSandboxChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::App"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::BaiduChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::Campaign"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::EmailChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::EmailTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::EventStream"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::GCMChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::PushTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::SMSChannel"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::Segment"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::SmsTemplate"
          },
          {
            "$ref": "#/definitions/AWS::Pinpoint::VoiceChannel"
          },
          {
            "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet"
          },
          {
            "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination"
          },
          {
            "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool"
          },
          {
            "$ref": "#/definitions/AWS::PinpointEmail::Identity"
          },
          {
            "$ref": "#/definitions/AWS::Pipes::Pipe"
          },
          {
            "$ref": "#/definitions/AWS::QLDB::Ledger"
          },
          {
            "$ref": "#/definitions/AWS::QLDB::Stream"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::Analysis"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::Dashboard"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::DataSet"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::DataSource"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::Template"
          },
          {
            "$ref": "#/definitions/AWS::QuickSight::Theme"
          },
          {
            "$ref": "#/definitions/AWS::RAM::ResourceShare"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBCluster"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBClusterParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBInstance"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBProxy"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBSecurityGroup"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBSecurityGroupIngress"
          },
          {
            "$ref": "#/definitions/AWS::RDS::DBSubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::RDS::EventSubscription"
          },
          {
            "$ref": "#/definitions/AWS::RDS::GlobalCluster"
          },
          {
            "$ref": "#/definitions/AWS::RDS::OptionGroup"
          },
          {
            "$ref": "#/definitions/AWS::RUM::AppMonitor"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::ClusterSecurityGroup"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::ClusterSecurityGroupIngress"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::EndpointAccess"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::EventSubscription"
          },
          {
            "$ref": "#/definitions/AWS::Redshift::ScheduledAction"
          },
          {
            "$ref": "#/definitions/AWS::RedshiftServerless::Namespace"
          },
          {
            "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup"
          },
          {
            "$ref": "#/definitions/AWS::RefactorSpaces::Application"
          },
          {
            "$ref": "#/definitions/AWS::RefactorSpaces::Environment"
          },
          {
            "$ref": "#/definitions/AWS::RefactorSpaces::Route"
          },
          {
            "$ref": "#/definitions/AWS::RefactorSpaces::Service"
          },
          {
            "$ref": "#/definitions/AWS::Rekognition::Collection"
          },
          {
            "$ref": "#/definitions/AWS::Rekognition::Project"
          },
          {
            "$ref": "#/definitions/AWS::Rekognition::StreamProcessor"
          },
          {
            "$ref": "#/definitions/AWS::ResilienceHub::App"
          },
          {
            "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy"
          },
          {
            "$ref": "#/definitions/AWS::ResourceExplorer2::DefaultViewAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ResourceExplorer2::Index"
          },
          {
            "$ref": "#/definitions/AWS::ResourceExplorer2::View"
          },
          {
            "$ref": "#/definitions/AWS::ResourceGroups::Group"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::Fleet"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::Robot"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::RobotApplication"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication"
          },
          {
            "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion"
          },
          {
            "$ref": "#/definitions/AWS::RolesAnywhere::CRL"
          },
          {
            "$ref": "#/definitions/AWS::RolesAnywhere::Profile"
          },
          {
            "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor"
          },
          {
            "$ref": "#/definitions/AWS::Route53::CidrCollection"
          },
          {
            "$ref": "#/definitions/AWS::Route53::DNSSEC"
          },
          {
            "$ref": "#/definitions/AWS::Route53::HealthCheck"
          },
          {
            "$ref": "#/definitions/AWS::Route53::HostedZone"
          },
          {
            "$ref": "#/definitions/AWS::Route53::KeySigningKey"
          },
          {
            "$ref": "#/definitions/AWS::Route53::RecordSet"
          },
          {
            "$ref": "#/definitions/AWS::Route53::RecordSetGroup"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryControl::Cluster"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryControl::ControlPanel"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryControl::RoutingControl"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryReadiness::Cell"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ReadinessCheck"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryReadiness::RecoveryGroup"
          },
          {
            "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::FirewallDomainList"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroup"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverQueryLoggingConfig"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule"
          },
          {
            "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation"
          },
          {
            "$ref": "#/definitions/AWS::S3::AccessPoint"
          },
          {
            "$ref": "#/definitions/AWS::S3::Bucket"
          },
          {
            "$ref": "#/definitions/AWS::S3::BucketPolicy"
          },
          {
            "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint"
          },
          {
            "$ref": "#/definitions/AWS::S3::MultiRegionAccessPointPolicy"
          },
          {
            "$ref": "#/definitions/AWS::S3::StorageLens"
          },
          {
            "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint"
          },
          {
            "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPointPolicy"
          },
          {
            "$ref": "#/definitions/AWS::S3Outposts::AccessPoint"
          },
          {
            "$ref": "#/definitions/AWS::S3Outposts::Bucket"
          },
          {
            "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy"
          },
          {
            "$ref": "#/definitions/AWS::S3Outposts::Endpoint"
          },
          {
            "$ref": "#/definitions/AWS::SDB::Domain"
          },
          {
            "$ref": "#/definitions/AWS::SES::ConfigurationSet"
          },
          {
            "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination"
          },
          {
            "$ref": "#/definitions/AWS::SES::ContactList"
          },
          {
            "$ref": "#/definitions/AWS::SES::DedicatedIpPool"
          },
          {
            "$ref": "#/definitions/AWS::SES::EmailIdentity"
          },
          {
            "$ref": "#/definitions/AWS::SES::ReceiptFilter"
          },
          {
            "$ref": "#/definitions/AWS::SES::ReceiptRule"
          },
          {
            "$ref": "#/definitions/AWS::SES::ReceiptRuleSet"
          },
          {
            "$ref": "#/definitions/AWS::SES::Template"
          },
          {
            "$ref": "#/definitions/AWS::SES::VdmAttributes"
          },
          {
            "$ref": "#/definitions/AWS::SNS::Subscription"
          },
          {
            "$ref": "#/definitions/AWS::SNS::Topic"
          },
          {
            "$ref": "#/definitions/AWS::SNS::TopicPolicy"
          },
          {
            "$ref": "#/definitions/AWS::SQS::Queue"
          },
          {
            "$ref": "#/definitions/AWS::SQS::QueuePolicy"
          },
          {
            "$ref": "#/definitions/AWS::SSM::Association"
          },
          {
            "$ref": "#/definitions/AWS::SSM::Document"
          },
          {
            "$ref": "#/definitions/AWS::SSM::MaintenanceWindow"
          },
          {
            "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget"
          },
          {
            "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask"
          },
          {
            "$ref": "#/definitions/AWS::SSM::Parameter"
          },
          {
            "$ref": "#/definitions/AWS::SSM::PatchBaseline"
          },
          {
            "$ref": "#/definitions/AWS::SSM::ResourceDataSync"
          },
          {
            "$ref": "#/definitions/AWS::SSM::ResourcePolicy"
          },
          {
            "$ref": "#/definitions/AWS::SSMContacts::Contact"
          },
          {
            "$ref": "#/definitions/AWS::SSMContacts::ContactChannel"
          },
          {
            "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet"
          },
          {
            "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan"
          },
          {
            "$ref": "#/definitions/AWS::SSO::Assignment"
          },
          {
            "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::SSO::PermissionSet"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::App"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::AppImageConfig"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::CodeRepository"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Device"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::DeviceFleet"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Domain"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Endpoint"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::EndpointConfig"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::FeatureGroup"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Image"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ImageVersion"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Model"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackage"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ModelPackageGroup"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::NotebookInstance"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Pipeline"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Project"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::UserProfile"
          },
          {
            "$ref": "#/definitions/AWS::SageMaker::Workteam"
          },
          {
            "$ref": "#/definitions/AWS::Scheduler::Schedule"
          },
          {
            "$ref": "#/definitions/AWS::Scheduler::ScheduleGroup"
          },
          {
            "$ref": "#/definitions/AWS::SecretsManager::ResourcePolicy"
          },
          {
            "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule"
          },
          {
            "$ref": "#/definitions/AWS::SecretsManager::Secret"
          },
          {
            "$ref": "#/definitions/AWS::SecretsManager::SecretTargetAttachment"
          },
          {
            "$ref": "#/definitions/AWS::SecurityHub::Hub"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::AcceptedPortfolioShare"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::LaunchNotificationConstraint"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::LaunchRoleConstraint"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::LaunchTemplateConstraint"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::Portfolio"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioPrincipalAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioProductAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioShare"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::ResourceUpdateConstraint"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::ServiceActionAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::StackSetConstraint"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::TagOption"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalog::TagOptionAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::Application"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::AttributeGroup"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::ResourceAssociation"
          },
          {
            "$ref": "#/definitions/AWS::ServiceDiscovery::HttpNamespace"
          },
          {
            "$ref": "#/definitions/AWS::ServiceDiscovery::Instance"
          },
          {
            "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace"
          },
          {
            "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace"
          },
          {
            "$ref": "#/definitions/AWS::ServiceDiscovery::Service"
          },
          {
            "$ref": "#/definitions/AWS::Signer::ProfilePermission"
          },
          {
            "$ref": "#/definitions/AWS::Signer::SigningProfile"
          },
          {
            "$ref": "#/definitions/AWS::StepFunctions::Activity"
          },
          {
            "$ref": "#/definitions/AWS::StepFunctions::StateMachine"
          },
          {
            "$ref": "#/definitions/AWS::SupportApp::AccountAlias"
          },
          {
            "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::SupportApp::SlackWorkspaceConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::Synthetics::Canary"
          },
          {
            "$ref": "#/definitions/AWS::Synthetics::Group"
          },
          {
            "$ref": "#/definitions/AWS::Timestream::Database"
          },
          {
            "$ref": "#/definitions/AWS::Timestream::ScheduledQuery"
          },
          {
            "$ref": "#/definitions/AWS::Timestream::Table"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Agreement"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Certificate"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Connector"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Profile"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Server"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::User"
          },
          {
            "$ref": "#/definitions/AWS::Transfer::Workflow"
          },
          {
            "$ref": "#/definitions/AWS::VoiceID::Domain"
          },
          {
            "$ref": "#/definitions/AWS::WAF::ByteMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAF::IPSet"
          },
          {
            "$ref": "#/definitions/AWS::WAF::Rule"
          },
          {
            "$ref": "#/definitions/AWS::WAF::SizeConstraintSet"
          },
          {
            "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAF::WebACL"
          },
          {
            "$ref": "#/definitions/AWS::WAF::XssMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::GeoMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::IPSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::RateBasedRule"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::RegexPatternSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::Rule"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::WebACL"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::WebACLAssociation"
          },
          {
            "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::IPSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::RegexPatternSet"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::RuleGroup"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::WebACL"
          },
          {
            "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Wisdom::Assistant"
          },
          {
            "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation"
          },
          {
            "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase"
          },
          {
            "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias"
          },
          {
            "$ref": "#/definitions/AWS::WorkSpaces::Workspace"
          },
          {
            "$ref": "#/definitions/AWS::XRay::Group"
          },
          {
            "$ref": "#/definitions/AWS::XRay::ResourcePolicy"
          },
          {
            "$ref": "#/definitions/AWS::XRay::SamplingRule"
          },
          {
            "$ref": "#/definitions/Alexa::ASK::Skill"
          },
          {
            "$ref": "#/definitions/CustomResource"
          }
        ]
      },
      "title": "Resources",
      "type": "object"
    },
    "Transform": {
      "oneOf": [
        {
          "type": ["string"]
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      ]
    }
  },
  "required": ["Resources"],
  "title": "Model",
  "type": "object"
}
