Provides a HTTP Method for an API Gateway Resource.
resource "aws_api_gateway_rest_api" "MyDemoAPI" {
name = "MyDemoAPI"
description = "This is my API for demonstration purposes"
}
resource "aws_api_gateway_resource" "MyDemoResource" {
rest_api_id = "${aws_api_gateway_rest_api.MyDemoAPI.id}"
parent_id = "${aws_api_gateway_rest_api.MyDemoAPI.root_resource_id}"
path_part = "mydemoresource"
}
resource "aws_api_gateway_method" "MyDemoMethod" {
rest_api_id = "${aws_api_gateway_rest_api.MyDemoAPI.id}"
resource_id = "${aws_api_gateway_resource.MyDemoResource.id}"
http_method = "GET"
authorization = "NONE"
}
variable "cognito_user_pool_name" {}
data "aws_cognito_user_pools" "this" {
name = "${var.cognito_user_pool_name}"
}
resource "aws_api_gateway_rest_api" "this" {
name = "with-authorizer"
}
resource "aws_api_gateway_resource" "this" {
rest_api_id = "${aws_api_gateway_rest_api.this.id}"
parent_id = "${aws_api_gateway_rest_api.this.root_resource_id}"
path_part = "{proxy+}"
}
resource "aws_api_gateway_authorizer" "this" {
name = "CognitoUserPoolAuthorizer"
type = "COGNITO_USER_POOLS"
rest_api_id = "${aws_api_gateway_rest_api.this.id}"
provider_arns = ["${data.aws_cognito_user_pools.this.arns}"]
}
resource "aws_api_gateway_method" "any" {
rest_api_id = "${aws_api_gateway_rest_api.this.id}"
resource_id = "${aws_api_gateway_resource.this.id}"
http_method = "ANY"
authorization = "COGNITO_USER_POOLS"
authorizer_id = "${aws_api_gateway_authorizer.this.id}"
request_parameters = {
"method.request.path.proxy" = true
}
}
The following arguments are supported:
rest_api_id - (Required) The ID of the associated REST API resource_id - (Required) The API resource ID http_method - (Required) The HTTP Method (GET, POST, PUT, DELETE, HEAD, OPTIONS, ANY) authorization - (Required) The type of authorization used for the method (NONE, CUSTOM, AWS_IAM, COGNITO_USER_POOLS) authorizer_id - (Optional) The authorizer id to be used when the authorization is CUSTOM or COGNITO_USER_POOLS authorization_scopes - (Optional) The authorization scopes used when the authorization is COGNITO_USER_POOLS api_key_required - (Optional) Specify if the method requires an API key request_models - (Optional) A map of the API models used for the request's content type where key is the content type (e.g. application/json) and value is either Error, Empty (built-in models) or aws_api_gateway_model's name. request_validator_id - (Optional) The ID of a aws_api_gateway_request_validator request_parameters - (Optional) A map of request query string parameters and headers that should be passed to the integration. For example: hcl
request_parameters = {
"method.request.header.X-Some-Header" = true,
"method.request.querystring.some-query-param" = true,
}
would define that the header X-Some-Header and the query string some-query-param must be provided on the request, or request_parameters_in_json - Deprecated, use request_parameters instead.
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/aws/r/api_gateway_method.html