How can I attach the PUT and DELETE method on an API Gateway resource using AWS_PROXY integration?
The PUT method is getting overridden by the DELETE method in lambda triggers.
Is there a way to have both the methods? 
/subs
OPTIONS
PUT
DELETE
Following example in terraform registry documentation, define multiple aws_api_gateway_method resources for the same aws_api_gateway_resource resource:
resource "aws_api_gateway_rest_api" "api" {
name = "MyAPI"
description = "This is my API"
}
resource "aws_api_gateway_resource" "subs" {
rest_api_id = aws_api_gateway_rest_api.api.id
parent_id = aws_api_gateway_rest_api.api.root_resource_id
path_part = "subs"
}
resource "aws_api_gateway_method" "methods" {
for_each = toset(["OPTIONS", "PUT", "DELETE"])
rest_api_id = aws_api_gateway_rest_api.api.id
resource_id = aws_api_gateway_resource.subs.id
http_method = each.key
authorization = "CUSTOM"
}
As you are using a proxy method, it sends a ton of information to the lambda. Change the proxy method to "ANY" and then in your lambda, check against the event.HttpMethod - and only process based on the ones you want to allow, returning an error message otherwise.
If you dont want to do this, then you need to stop using a proxy method and instead set up an actual resource + each method. THey can connect to the same lambda or different ones, but you can't use proxy to define just two types - its 1 or all.