{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "properties": {
        "HttpMethod": {
            "enum": [
                "DELETE",
                "GET",
                "HEAD",
                "OPTIONS",
                "PATCH",
                "POST",
                "PUT"
            ],
            "type": "string"
        },
        "ResourceId": {
            "pattern": "^[a-z0-9]+$",
            "type": "string"
        },
        "ResponseParameters": {
            "additionalProperties": false,
            "patternProperties": {
                "^method\\.response\\.header\\..+$": {
                    "pattern": "^(integration\\.response\\.header\\..)|(integration\\.response\\.body\\..)|('.*')+$",
                    "type": "string"
                }
            },
            "properties": {},
            "type": "object"
        },
        "ResponseTemplates": {
            "additionalProperties": false,
            "patternProperties": {
                ".+": {
                    "type": "string"
                }
            },
            "properties": {},
            "type": "object"
        },
        "RestApiId": {
            "pattern": "^[a-z0-9]{10}$",
            "type": "string"
        },
        "SelectionPattern": {
            "type": "string"
        },
        "StatusCode": {
            "pattern": "^\\d{3}$",
            "type": "string"
        }
    },
    "required": [
        "StatusCode",
        "HttpMethod",
        "ResourceId",
        "RestApiId"
    ],
    "type": "object"
}