{
    "ResourceSpecificationVersion": "2016-10-31",
    "ResourceSpecificationTransform": "AWS::Serverless-2016-10-31",
    "Globals": {
        "Documentation": "https://github.com/aws/serverless-application-model/blob/master/docs/globals.rst",
        "Children": {
            "Function": {
                "Reference": "AWS::Serverless::Function",
                "Exclude": [
                    "Role",
                    "Policies",
                    "FunctionName",
                    "Events",
                    "FileSystemConfigs",
                    "ProvisionedConcurrencyConfig"
                ]
            },
            "Api": {
                "Reference": "AWS::Serverless::Api",
                "Exclude": [
                    "StageName",
                    "DefinitionBody"
                ]
            },
            "HttpApi": {
                "Reference": "AWS::Serverless::HttpApi",
                "Exclude": [
                    "StageName",
                    "DefinitionBody",
                    "DefinitionUri"
                ]
            },
            "SimpleTable": {
                "Reference": "AWS::Serverless::SimpleTable",
                "Exclude": [
                    "PrimaryKey",
                    "ProvisionedThroughput",
                    "Tags",
                    "TableName"
                ]
            }
        }
    },
    "ResourceTypes": {
        "AWS::Serverless::Function": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
            "Properties": {
                "Handler": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Runtime": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "CodeUri": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "S3Location"
                    ],
                    "UpdateType": "Immutable"
                },
                "InlineCode": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "FunctionName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "FileSystemConfigs": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html",
                    "Required": false,
                    "Type": "List",
                    "ItemType": "FileSystemConfig",
                    "UpdateType": "Immutable"
                },
                "Description": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "MemorySize": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Timeout": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Role": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Policies": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "IAMPolicyDocument"
                    ],
                    "InclusivePrimitiveItemTypes": [
                        "String"
                    ],
                    "InclusiveItemTypes": [
                        "IAMPolicyDocument",
                        "SAMPolicyTemplate"
                    ],
                    "UpdateType": "Immutable"
                },
                "PermissionsBoundary": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Environment": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "FunctionEnvironment",
                    "UpdateType": "Immutable"
                },
                "VpcConfig": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "VpcConfig",
                    "UpdateType": "Immutable"
                },
                "Events": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "Map",
                    "ItemType": "EventSource",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Tracing": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "KmsKeyArn": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "DeadLetterQueue": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "DeadLetterQueue",
                    "UpdateType": "Immutable"
                },
                "DeploymentPreference": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "DeploymentPreference",
                    "UpdateType": "Immutable"
                },
                "Layers": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "AutoPublishAlias": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AutoPublishCodeSha256": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-autopublishcodesha256",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "VersionDescription": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ReservedConcurrentExecutions": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "ProvisionedConcurrencyConfig": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "ProvisionedConcurrencyConfig",
                    "UpdateType": "Immutable"
                },
                "EventInvokeConfig": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "Type": "EventInvokeConfig",
                    "UpdateType": "Immutable"
                },
                "AssumeRolePolicyDocument": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-assumerolepolicydocument",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "CodeSigningConfigArn": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-codesigningconfigarn",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ImageConfig": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-imageconfig",
                    "Required": false,
                    "Type": "ImageConfig",
                    "UpdateType": "Immutable"
                },
                "ImageUri": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-imageuri",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "PackageType": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-packagetype",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Architectures": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-architectures",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "FunctionUrlConfig": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html",
                    "Required": false,
                    "Type": "FunctionUrlConfig",
                    "UpdateType": "Immutable"
                },
                "EphemeralStorage": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-ephemeralstorage",
                    "Required": false,
                    "Type": "EphemeralStorage",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
            "Properties": {
                "Name": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "StageName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "DefinitionUri": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "S3Location"
                    ],
                    "UpdateType": "Immutable"
                },
                "DefinitionBody": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "CacheClusterEnabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "CacheClusterSize": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Variables": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "MethodSettings": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveItemType": "Json",
                    "Type": "List",
                    "UpdateType": "Immutable"
                },
                "EndpointConfiguration": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "Type": "EndpointConfiguration",
                    "UpdateType": "Immutable"
                },
                "BinaryMediaTypes": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Cors": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "CorsConfiguration"
                    ],
                    "UpdateType": "Immutable"
                },
                "Auth": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "Type": "Auth",
                    "UpdateType": "Immutable"
                },
                "TracingEnabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "AccessLogSetting": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "Type": "AccessLogSetting",
                    "UpdateType": "Immutable"
                },
                "OpenApiVersion": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "CanarySetting": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-canarysetting",
                    "Required": false,
                    "Type": "CanarySetting",
                    "UpdateType": "Immutable"
                },
                "Description": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-description",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "GatewayResponses": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-gatewayresponses",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "MinimumCompressionSize": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-minimumcompressionsize",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Models": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-models",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "Map",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Domain": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-domain",
                    "Required": false,
                    "Type": "DomainConfiguration",
                    "UpdateType": "Immutable"
                },
                "DisableExecuteApiEndpoint": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-disableexecuteapiendpoint",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "AlwaysDeploy": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-alwaysdeploy",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
            "Properties": {
                "StageName": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "DefinitionUri": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "S3Location"
                    ],
                    "UpdateType": "Immutable"
                },
                "DefinitionBody": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "Auth": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "HttpApiAuth",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "AccessLogSetting": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "AccessLogSetting",
                    "UpdateType": "Immutable"
                },
                "CorsConfiguration": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveTypes": [
                        "Boolean"
                    ],
                    "Types": [
                        "CorsConfigurationObject"
                    ],
                    "UpdateType": "Immutable"
                },
                "DefaultRouteSettings": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "RouteSettings",
                    "UpdateType": "Immutable"
                },
                "RouteSettings": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "RouteSettings",
                    "UpdateType": "Immutable"
                },
                "Domain": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "HttpApiDomainConfiguration",
                    "UpdateType": "Immutable"
                },
                "StageVariables": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "FailOnWarnings": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "Description": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesshttpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "DisableExecuteApiEndpoint": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html#sam-httpapi-disableexecuteapiendpoint",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Application": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
            "Properties": {
                "Location": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "Required": true,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "ApplicationLocation"
                    ],
                    "UpdateType": "Immutable"
                },
                "Parameters": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "NotificationArns": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "TimeoutInMinutes": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::SimpleTable": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
            "Properties": {
                "PrimaryKey": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
                    "Required": false,
                    "Type": "PrimaryKey",
                    "UpdateType": "Immutable"
                },
                "ProvisionedThroughput": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
                    "Required": false,
                    "Type": "ProvisionedThroughput",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "TableName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "SSESpecification": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
                    "Required": false,
                    "Type": "SSESpecification",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::LayerVersion": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
            "Properties": {
                "LayerName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Description": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ContentUri": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "S3Location"
                    ],
                    "UpdateType": "Immutable"
                },
                "CompatibleRuntimes": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "LicenseInfo": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "RetentionPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
            "Properties": {
                "Definition": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "DefinitionSubstitutions": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "DefinitionUri": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "S3Location"
                    ],
                    "UpdateType": "Immutable"
                },
                "Events": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "Type": "Map",
                    "ItemType": "EventSource",
                    "UpdateType": "Immutable"
                },
                "Logging": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "Type": "LoggingConfiguration",
                    "UpdateType": "Immutable"
                },
                "Name": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "PermissionsBoundaries": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-permissionsboundary",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Policies": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "IAMPolicyDocument"
                    ],
                    "InclusivePrimitiveItemTypes": [
                        "String"
                    ],
                    "InclusiveItemTypes": [
                        "IAMPolicyDocument",
                        "SAMPolicyTemplate"
                    ],
                    "UpdateType": "Immutable"
                },
                "Role": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Tags": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Tracing": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-tracing",
                    "Required": false,
                    "Type": "TracingConfiguration",
                    "UpdateType": "Immutable"
                },
                "Type": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        }
    },
    "PropertyTypes": {
        "AWS::Serverless::Application.ApplicationLocation": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
            "Properties": {
                "ApplicationId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "PrimitiveType": "String",
                    "Required": true,
                    "UpdateType": "Immutable"
                },
                "SemanticVersion": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
                    "PrimitiveType": "String",
                    "Required": true,
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.S3Location": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Key": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::LayerVersion.S3Location": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Key": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.FileSystemConfig": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath",
            "Properties": {
                "Arn": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "LocalMountPath": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.EventSource": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
            "Properties": {
                "Type": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Properties": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types",
                    "Required": true,
                    "Types": [
                        "S3Event",
                        "SNSEvent",
                        "SQSEvent",
                        "KinesisEvent",
                        "DynamoDBEvent",
                        "ApiEvent",
                        "ScheduleEvent",
                        "CloudWatchEventEvent",
                        "CloudWatchLogsEvent",
                        "IoTRuleEvent",
                        "AlexaSkillEvent",
                        "EventBridgeRuleEvent",
                        "HttpApiEvent",
                        "CognitoEvent"
                    ],
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.S3Event": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Events": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
                    "Required": true,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "PrimitiveItemTypes": [
                        "String"
                    ]
                },
                "Filter": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
                    "Required": false,
                    "Type": "S3NotificationFilter",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.S3NotificationFilter": {
            "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
            "Properties": {
                "S3Key": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
                    "Required": true,
                    "Type": "S3KeyFilter",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.SNSEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns",
            "Properties": {
                "Topic": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.KinesisEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
            "Properties": {
                "Stream": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "StartingPosition": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "BatchSize": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Enabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "FunctionResponseTypes": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.DynamoDBEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
            "Properties": {
                "Stream": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "StartingPosition": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "BatchSize": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Enabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
            "MaximumBatchingWindowInSeconds": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "PrimitiveType": "Integer",
                        "UpdateType": "Immutable"
            },
            "MaximumRetryAttempts": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "PrimitiveType": "Integer",
                        "UpdateType": "Immutable"
            },
            "BisectBatchOnFunctionError": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "PrimitiveType": "Boolean",
                        "UpdateType": "Immutable"
            },
            "MaximumRecordAgeInSeconds": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "PrimitiveType": "Integer",
                        "UpdateType": "Immutable"
            },
            "DestinationConfig": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "Type": "DestinationConfig",
                        "UpdateType": "Immutable"
            },
            "ParallelizationFactor": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
                        "Required": false,
                        "PrimitiveType": "Integer",
                        "UpdateType": "Immutable"
            }
            }
        },
        "AWS::Serverless::Function.SQSEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
            "Properties": {
                "Queue": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "BatchSize": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "Enabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.ApiEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
            "Properties": {
                "Path": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Method": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "RestApiId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Auth": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": false,
                    "Type": "Auth",
                    "UpdateType": "Immutable"
                },
                "RequestModel": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": false,
                    "Type": "RequestModel",
                    "UpdateType": "Immutable"
                },
                "RequestParameters": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": false,
                    "Type": "List",
                    "InclusivePrimitiveItemTypes": [
                        "String"
                    ],
                    "InclusiveItemTypes": [
                        "RequestParameter"
                    ],
                    "InclusiveItemPattern": true,
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.HttpApiFunctionAuth": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html",
            "Properties": {
                "AuthorizationScopes": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Authorizer": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.HttpApiEvent": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
            "Properties": {
                "Path": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Method": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ApiId": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Auth": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html",
                    "Required": false,
                    "Type": "HttpApiFunctionAuth",
                    "UpdateType": "Immutable"
                },
                "TimeoutInMillis": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "PayloadFormatVersion": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#httpapi",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "RouteSettings": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings",
                    "Required": false,
                    "Type": "RouteSettings",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.CognitoEvent": {
             "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cognito",
             "Properties": {
                 "UserPool": {
                     "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cognito",
                     "Required": true,
                     "PrimitiveType": "String",
                     "UpdateType": "Immutable"
                 },
                 "Trigger": {
                     "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cognito",
                     "Required": true,
                     "PrimitiveTypes": [
                         "String"
                     ],
                     "PrimitiveItemTypes": [
                         "String"
                     ]
                 }
             }
         },
        "AWS::Serverless::Function.RouteSettings": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html",
            "Properties": {
                "DataTraceEnabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-datatraceenabled",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "DetailedMetricsEnabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "LoggingLevel": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-logginglevel",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ThrottlingBurstLimit": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "ThrottlingRateLimit": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingratelimit",
                    "Required": false,
                    "PrimitiveType": "Double",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.RequestModel": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html",
            "Properties": {
                "Model": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html#sam-function-requestmodel-model",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Required": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html#sam-function-requestmodel-required",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "ValidateBody": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html#sam-function-requestmodel-validatebody",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "ValidateParameters": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html#sam-function-requestmodel-validateparameters",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.RequestParameter": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html",
            "Properties": {
                "Caching": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html#sam-function-requestparameter-caching",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "Required": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html#sam-function-requestparameter-required",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.Auth": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
            "Properties": {
                "Authorizer": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AuthorizationScopes": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "ApiKeyRequired": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "ResourcePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "AuthResourcePolicy",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.AuthResourcePolicy": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
            "Properties": {
                "CustomStatements": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "Map",
                    "UpdateType": "Immutable"
                },
                "AwsAccountBlacklist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "AwsAccountWhitelist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IntrinsicVpcBlacklist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IntrinsicVpcWhitelist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IntrinsicVpceBlacklist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IntrinsicVpceWhitelist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IpRangeBlacklist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "IpRangeWhitelist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "SourceVpcBlacklist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "SourceVpcWhitelist": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#function-auth-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.ScheduleEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
            "Properties": {
                "Schedule": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Name": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Description": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Enabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.CloudWatchEventEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
            "Properties": {
                "Pattern": {
                    "Documentation": "http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html",
                    "Required": true,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "InputPath": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.CloudWatchLogsEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
            "Properties": {
                "LogGroupName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchlogs",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
               "FilterPattern": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchlogs",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.IoTRuleEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
            "Properties": {
                "Sql": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AwsIotSqlVersion": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.AlexaSkillEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill",
            "Properties": {
                "SkillId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.DestinationConfig": {
                "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object",
                "Properties": {
                    "OnFailure": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object",
                        "Required": true,
                        "Type": "Destination",
                        "UpdateType": "Immutable"
                    }
                }
        },
	"AWS::Serverless::Function.EventInvokeDestinationConfig": {
                "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-destination-config-object",
                "Properties": {
                    "OnFailure": {
                        "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-destination-config-object",
                        "Required": true,
                        "Type": "Destination",
                        "UpdateType": "Immutable"
                    },
                    "OnSuccess": {
                        "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-destination-config-object",
                        "Required": true,
                        "Type": "Destination",
                        "UpdateType": "Immutable"
                    }
                }
        },

        "AWS::Serverless::Function.Destination": {
                "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object",
                "Properties": {
                    "Type": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object",
                        "Required": false,
                        "PrimitiveType": "String",
                        "UpdateType": "Immutable"
                    },
                    "Destination": {
                        "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object",
                        "Required": true,
                        "PrimitiveType": "String",
                        "UpdateType": "Immutable"
                    }
                }
        },
        "AWS::Serverless::Function.EventBridgeRuleEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule",
            "Properties": {
                "Pattern": {
                    "Documentation": "https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html",
                    "Required": true,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "EventBusName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "InputPath": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.VpcConfig": {
            "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
            "Properties": {
                "SecurityGroupIds": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
                    "Required": true,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "SubnetIds": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
                    "Required": true,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.IAMPolicyDocument": {
            "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
            "Properties": {
                "Statement": {
                    "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
                    "Required": true,
                    "Type": "List",
                    "ItemType": "Json",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
                    "PrimitiveType": "String",
                    "Required": false,
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.SAMPolicyTemplate": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "CloudWatchPutMetricPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "EC2DescribePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "AMIDescribePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "CloudFormationDescribeStacksPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "RekognitionDetectOnlyPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "RekognitionLabelsPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "VPCAccessPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "SESEmailTemplateCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "EmptySAMPT",
                    "UpdateType": "Immutable"
                },
                "SQSPollerPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "QueueSAMPT",
                    "UpdateType": "Immutable"
                },
                "SQSSendMessagePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "QueueSAMPT",
                    "UpdateType": "Immutable"
                },
                "LambdaInvokePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "FunctionSAMPT",
                    "UpdateType": "Immutable"
                },
                "DynamoDBCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TableSAMPT",
                    "UpdateType": "Immutable"
                },
                "DynamoDBReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TableSAMPT",
                    "UpdateType": "Immutable"
                },
                "DynamoDBStreamReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TableStreamSAMPT",
                    "UpdateType": "Immutable"
                },
                "DynamoDBWritePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TableSAMPT",
                    "UpdateType": "Immutable"
                },
                "SESSendBouncePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "IdentitySAMPT",
                    "UpdateType": "Immutable"
                },
                "SESCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "IdentitySAMPT",
                    "UpdateType": "Immutable"
                },
                "SESBulkTemplatedCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "IdentitySAMPT",
                    "UpdateType": "Immutable"
                },
                "ElasticsearchHttpPostPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "DomainSAMPT",
                    "UpdateType": "Immutable"
                },
                "S3ReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "BucketSAMPT",
                    "UpdateType": "Immutable"
                },
                "S3WritePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "BucketSAMPT",
                    "UpdateType": "Immutable"
                },
                "S3CrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "BucketSAMPT",
                    "UpdateType": "Immutable"
                },
                "RekognitionNoDataAccessPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "CollectionSAMPT",
                    "UpdateType": "Immutable"
                },
                "RekognitionReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "CollectionSAMPT",
                    "UpdateType": "Immutable"
                },
                "RekognitionWriteOnlyAccessPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "CollectionSAMPT",
                    "UpdateType": "Immutable"
                },
                "SNSCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TopicSAMPT",
                    "UpdateType": "Immutable"
                },
                "SNSPublishMessagePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "TopicSAMPT",
                    "UpdateType": "Immutable"
                },
                "KinesisStreamReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "StreamSAMPT",
                    "UpdateType": "Immutable"
                },
                "KinesisCrudPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "StreamSAMPT",
                    "UpdateType": "Immutable"
                },
                "KMSDecryptPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "KeySAMPT",
                    "UpdateType": "Immutable"
                },
                "FilterLogEventsPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "LogGroupSAMPT",
                    "UpdateType": "Immutable"
                },
                "StepFunctionsExecutionPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "StateMachineSAMPT",
                    "UpdateType": "Immutable"
                },
                "SSMParameterReadPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "ParameterNameSAMPT",
                    "UpdateType": "Immutable"
                },
                "AWSSecretsManagerGetSecretValuePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "SecretArnSAMPT",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.EmptySAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {}
        },
        "AWS::Serverless::Function.QueueSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "QueueName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.FunctionSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "FunctionName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.TableStreamSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "TableName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "StreamName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.TableSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "TableName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.IdentitySAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "IdentityName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.DomainSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "DomainName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.BucketSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "BucketName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.CollectionSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "CollectionId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.TopicSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "TopicName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.StreamSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "StreamName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.KeySAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "KeyId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.LogGroupSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "LogGroupName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.StateMachineSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "StateMachineName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.ParameterNameSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "ParameterName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.SecretArnSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "SecretArn": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.FunctionEnvironment": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object",
            "Properties": {
                "Variables": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object",
                    "Required": true,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.DeadLetterQueue": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deadletterqueue-object",
            "Properties": {
                "Type": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "TargetArn": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.DeploymentPreference": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
            "Properties": {
                "Type": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Alarms": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Hooks": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "Role": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Enabled": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.S3KeyFilter": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
            "Properties": {
                "Rules": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
                    "Required": true,
                    "Type": "List",
                    "ItemType": "S3KeyFilterRule",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.S3KeyFilterRule": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
            "Properties": {
                "Name": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Value": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.ProvisionedConcurrencyConfig": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#provisioned-concurrency-config-object",
            "Properties": {
                "ProvisionedConcurrentExecutions": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#provisioned-concurrency-config-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.EventInvokeConfig": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-config-object",
            "Properties": {
                "MaximumEventAgeInSeconds": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-config-object",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "MaximumRetryAttempts": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-config-object",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "DestinationConfig": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#event-invoke-config-object",
                    "Required": false,
                    "Type": "EventInvokeDestinationConfig",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.ImageConfig": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html",
            "Properties": {
                "Command": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-command",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "EntryPoint": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-entrypoint",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "WorkingDirectory": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-workingdirectory",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.FunctionUrlConfig": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html",
            "Properties": {
                "AuthType": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html#sam-function-functionurlconfig-authtype",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Cors": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html#sam-function-functionurlconfig-cors",
                    "Required": false,
                    "PrimitiveTypes": [
                        "String"
                    ],
                    "Types": [
                        "CorsConfiguration"
                    ],
                    "UpdateType": "Immutable"
                },
                "InvokeMode": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html#sam-function-functionurlconfig-invokemode",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.CorsConfiguration": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
            "Properties": {
                "AllowMethods": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowHeaders": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowOrigin": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "MaxAge": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowCredentials": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Function.EphemeralStorage": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-ephemeralstorage",
            "Properties": {
                "Size": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-ephemeralstorage.html#cfn-lambda-function-ephemeralstorage-size",
                    "Required": true,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.LoggingConfiguration": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html",
            "Properties": {
                "Destinations": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html",
                    "Required": true,
                    "Type": "List",
                    "ItemType": "LogDestination",
                    "UpdateType": "Immutable"
                },
                "IncludeExecutionData": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html",
                    "Required": true,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "Level": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.LogDestination": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html#cfn-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup",
            "Properties": {
                "CloudWatchLogsLogGroup": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html#cfn-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup",
                    "Required": true,
                    "Type": "CloudWatchLogsLogGroup",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.CloudWatchLogsLogGroup": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup.html",
            "Properties": {
                "LogGroupArn": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup.html",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.S3Location": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Key": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.Auth": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
            "Properties": {
                "DefaultAuthorizer": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Authorizers": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "AddDefaultAuthorizerToCorsPreflight": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.AccessLogSetting": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html",
            "Properties": {
                "DestinationArn": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Format": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.CorsConfiguration": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
            "Properties": {
                "AllowMethods": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowHeaders": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowOrigin": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "MaxAge": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowCredentials": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.CanarySetting": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html",
            "Properties": {
                "DeploymentId": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-deploymentid",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "PercentTraffic": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-percenttraffic",
                    "Required": false,
                    "PrimitiveType": "Double",
                    "UpdateType": "Immutable"
                },
                "StageVariableOverrides": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-stagevariableoverrides",
                    "Required": false,
                    "Type": "Map",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "UseStageCache": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-usestagecache",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.Route53Configuration": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html",
            "Properties": {
                "DistributedDomainName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-distributiondomainname",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "EvaluateTargetHealth": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-evaluatetargethealth",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "HostedZoneId": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzoneid",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "HostedZoneName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzonename",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "IpV6": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-ipv6",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.MutualTlsAuthentication": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html",
            "Properties": {
                "TruststoreUri": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreuri",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "TruststoreVersion": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreversion",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.DomainConfiguration": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html",
            "Properties": {
                "BasePath": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-basepath",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "CertificateArn": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-certificatearn",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "DomainName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-domainname",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "EndpointConfiguration": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-endpointconfiguration",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "MutualTlsAuthentication": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-mutualtlsauthentication",
                    "Required": false,
                    "Type": "MutualTlsAuthentication",
                    "UpdateType": "Immutable"
                },
                "OwnershipVerificationCertificateArn": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-ownershipverificationcertificatearn",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Route53": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-route53",
                    "Required": false,
                    "Type": "Route53Configuration",
                    "UpdateType": "Immutable"
                },
                "SecurityPolicy": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-securitypolicy",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::Api.EndpointConfiguration": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html",
            "Properties": {
                "Type": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html#sam-api-endpointconfiguration-type",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "VpcEndpointIds": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html#sam-api-endpointconfiguration-vpcendpointids",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.S3Location": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Key": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
                    "Required": true,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.HttpApiAuth": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html",
            "Properties": {
                "DefaultAuthorizer": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html#sam-httpapi-httpapiauth-authorizers",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Authorizers": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html#sam-httpapi-httpapiauth-defaultauthorizer",
                    "Required": false,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.AccessLogSetting": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html",
            "Properties": {
                "DestinationArn": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Format": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.CorsConfigurationObject": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
            "Properties": {
                "AllowMethods": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowHeaders": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "AllowOrigins": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                },
                "MaxAge": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "AllowCredentials": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "ExposeHeaders": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration-object",
                    "Required": false,
                    "Type": "List",
                    "PrimitiveItemType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.RouteSettings": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html",
            "Properties": {
                "DataTraceEnabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-datatraceenabled",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "DetailedMetricsEnabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "LoggingLevel": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-logginglevel",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "ThrottlingBurstLimit": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "ThrottlingRateLimit": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingratelimit",
                    "Required": false,
                    "PrimitiveType": "Double",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.HttpApiDomainConfiguration": {
            "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
            "Properties": {
                "DomainName": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "CertificateArn": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "EndpointConfiguration": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "BasePath": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Route53": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": false,
                    "Type": "Route53Configuration",
                    "UpdateType": "Immutable"
                },
                "SecurityPolicy": {
                    "Documentation": "https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#domain-configuration-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "MutualTlsAuthentication": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html#sam-httpapi-httpapidomainconfiguration-mutualtlsauthentication",
                    "Required": false,
                    "Type": "MutualTlsAuthentication",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.Route53Configuration": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html",
            "Properties": {
                "DistributedDomainName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html#sam-httpapi-route53configuration-distributiondomainname",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "EvaluateTargetHealth": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html#sam-httpapi-route53configuration-evaluatetargethealth",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                },
                "HostedZoneId": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html#sam-httpapi-route53configuration-hostedzoneid",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "HostedZoneName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html#sam-httpapi-route53configuration-hostedzonename",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "IpV6": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html#sam-httpapi-route53configuration-ipv6",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::HttpApi.MutualTlsAuthentication": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html",
            "Properties": {
                "TruststoreUri": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreuri",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "TruststoreVersion": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreversion",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::SimpleTable.PrimaryKey": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
            "Properties": {
                "Name": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Type": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::SimpleTable.ProvisionedThroughput": {
            "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
            "Properties": {
                "ReadCapacityUnits": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                },
                "WriteCapacityUnits": {
                    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
                    "Required": true,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::SimpleTable.SSESpecification": {
            "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html",
            "Properties": {
                "SSEEnabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.IAMPolicyDocument": {
            "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
            "Properties": {
                "Statement": {
                    "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
                    "Required": true,
                    "Type": "List",
                    "ItemType": "Json",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
                    "PrimitiveType": "String",
                    "Required": true,
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.SAMPolicyTemplate": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "LambdaInvokePolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "FunctionSAMPT",
                    "UpdateType": "Immutable"
                },
                "StepFunctionsExecutionPolicy": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Type": "StateMachineSAMPT",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.StateMachineSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "StateMachineName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.FunctionSAMPT": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
            "Properties": {
                "FunctionName": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.S3Location": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
            "Properties": {
                "Bucket": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Key": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Version": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
                    "Required": false,
                    "PrimitiveType": "Integer",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.EventSource": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
            "Properties": {
                "Type": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Properties": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types",
                    "Required": true,
                    "Types": [
                        "CloudWatchEventEvent",
                        "EventBridgeRuleEvent",
                        "ScheduleEvent",
                        "ApiEvent"
                    ],
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.CloudWatchEventEvent": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
            "Properties": {
                "Pattern": {
                    "Documentation": "http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html",
                    "Required": true,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "EventBusName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "InputPath": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.EventBridgeRuleEvent": {
            "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
            "Properties": {
                "Pattern": {
                    "Documentation": "http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html",
                    "Required": true,
                    "PrimitiveType": "Json",
                    "UpdateType": "Immutable"
                },
                "EventBusName": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "InputPath": {
                    "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.ScheduleEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
            "Properties": {
                "Schedule": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Input": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.ApiEvent": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
            "Properties": {
                "Path": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "Method": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": true,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                },
                "RestApiId": {
                    "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
                    "Required": false,
                    "PrimitiveType": "String",
                    "UpdateType": "Immutable"
                }
            }
        },
        "AWS::Serverless::StateMachine.TracingConfiguration": {
            "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
            "Properties": {
                "Enabled": {
                    "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html",
                    "Required": false,
                    "PrimitiveType": "Boolean",
                    "UpdateType": "Immutable"
                }
            }
        }
    }
}
