{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-apigateway-method.json",
  "title": "AWSApiGatewayMethodProperties",
  "description": "Resource Type definition for AWS::ApiGateway::Method. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-apigateway-method.json",
    "sourceSha256": "3d81f982cdae35055546afe5d5b135e6f511a715f00ed003b58ab0be0482dee3"
  },
  "type": "object",
  "properties": {
    "ApiKeyRequired": {
      "description": "Indicates whether the method requires clients to submit a valid API key.",
      "type": "boolean"
    },
    "AuthorizationScopes": {
      "description": "A list of authorization scopes configured on the method.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "AuthorizationType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "NONE",
            "AWS_IAM",
            "CUSTOM",
            "COGNITO_USER_POOLS"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The method's authorization type."
    },
    "AuthorizerId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The identifier of the authorizer to use on this method."
    },
    "HttpMethod": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The backend system that the method calls when it receives a request."
    },
    "Integration": {
      "description": "The backend system that the method calls when it receives a request.",
      "$ref": "#/$defs/Integration"
    },
    "MethodResponses": {
      "description": "The responses that can be sent to the client who calls the method.",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/MethodResponse"
      }
    },
    "OperationName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A friendly operation name for the method."
    },
    "RequestModels": {
      "description": "The resources that are used for the request's content type. Specify request models as key-value pairs (string-to-string mapping), with a content type as the key and a Model resource name as the value.",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "[a-zA-Z0-9]+": {
          "type": "string"
        }
      }
    },
    "RequestParameters": {
      "description": "The request parameters that API Gateway accepts. Specify request parameters as key-value pairs (string-to-Boolean mapping), with a source as the key and a Boolean as the value.",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "[a-zA-Z0-9]+": {
          "type": "boolean"
        }
      }
    },
    "RequestValidatorId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The ID of the associated request validator."
    },
    "ResourceId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The ID of an API Gateway resource."
    },
    "RestApiId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The ID of the RestApi resource in which API Gateway creates the method."
    }
  },
  "typeName": "AWS::ApiGateway::Method",
  "tagging": {
    "taggable": false,
    "tagOnCreate": false,
    "tagUpdatable": false,
    "cloudFormationSystemTags": false
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway.git",
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/RestApiId",
    "/properties/ResourceId",
    "/properties/HttpMethod"
  ],
  "$defs": {
    "Integration": {
      "type": "object",
      "title": "AWSApiGatewayMethodIntegrationDefinition",
      "properties": {
        "CacheKeyParameters": {
          "description": "A list of request parameters whose values API Gateway caches.",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "CacheNamespace": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "An API-specific tag group of related cached parameters."
        },
        "ConnectionId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ID of the VpcLink used for the integration when connectionType=VPC_LINK, otherwise undefined."
        },
        "ConnectionType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "INTERNET",
                "VPC_LINK"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The type of the network connection to the integration endpoint."
        },
        "ContentHandling": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "CONVERT_TO_BINARY",
                "CONVERT_TO_TEXT"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Specifies how to handle request payload content type conversions."
        },
        "Credentials": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The credentials that are required for the integration."
        },
        "IntegrationHttpMethod": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The integration's HTTP method type."
        },
        "IntegrationResponses": {
          "description": "The response that API Gateway provides after a method's backend completes processing a request.",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/IntegrationResponse"
          }
        },
        "PassthroughBehavior": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "WHEN_NO_MATCH",
                "WHEN_NO_TEMPLATES",
                "NEVER"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Indicates when API Gateway passes requests to the targeted backend."
        },
        "RequestParameters": {
          "description": "The request parameters that API Gateway sends with the backend request.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "string"
            }
          }
        },
        "RequestTemplates": {
          "description": "A map of Apache Velocity templates that are applied on the request payload.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "string"
            }
          }
        },
        "TimeoutInMillis": {
          "description": "Custom timeout between 50 and 29,000 milliseconds.",
          "type": "integer",
          "minimum": 50,
          "maximum": 29000
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "AWS",
                "AWS_PROXY",
                "HTTP",
                "HTTP_PROXY",
                "MOCK"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The type of backend that your method is running."
        },
        "Uri": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The Uniform Resource Identifier (URI) for the integration."
        }
      },
      "required": [
        "Type"
      ],
      "additionalProperties": false
    },
    "MethodResponse": {
      "type": "object",
      "title": "AWSApiGatewayMethodMethodResponseDefinition",
      "properties": {
        "ResponseModels": {
          "description": "The resources used for the response's content type. Specify response models as key-value pairs (string-to-string maps), with a content type as the key and a Model resource name as the value.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "string"
            }
          }
        },
        "ResponseParameters": {
          "description": "Response parameters that API Gateway sends to the client that called a method. Specify response parameters as key-value pairs (string-to-Boolean maps), with a destination as the key and a Boolean as the value.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "boolean"
            }
          }
        },
        "StatusCode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The method response's status code, which you map to an IntegrationResponse."
        }
      },
      "required": [
        "StatusCode"
      ],
      "additionalProperties": false
    },
    "IntegrationResponse": {
      "type": "object",
      "title": "AWSApiGatewayMethodIntegrationResponseDefinition",
      "properties": {
        "ContentHandling": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "CONVERT_TO_BINARY",
                "CONVERT_TO_TEXT"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Specifies how to handle request payload content type conversions."
        },
        "ResponseParameters": {
          "description": "The response parameters from the backend response that API Gateway sends to the method response.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "string"
            }
          }
        },
        "ResponseTemplates": {
          "description": "The templates that are used to transform the integration response body. Specify templates as key-value pairs (string-to-string mappings), with a content type as the key and a template as the value.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "[a-zA-Z0-9]+": {
              "type": "string"
            }
          }
        },
        "SelectionPattern": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "A regular expression that specifies which error strings or status codes from the backend map to the integration response."
        },
        "StatusCode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The status code that API Gateway uses to map the integration response to a MethodResponse status code."
        }
      },
      "required": [
        "StatusCode"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "RestApiId",
    "ResourceId",
    "HttpMethod"
  ],
  "primaryIdentifier": [
    "/properties/RestApiId",
    "/properties/ResourceId",
    "/properties/HttpMethod"
  ]
}
