
# Create resource /{vendor}/campaign
resource "aws_api_gateway_resource" "fan_response_rest_api_sub_campaign_resource" {
  rest_api_id = aws_api_gateway_rest_api.fan_response_rest_api.id
  parent_id   = aws_api_gateway_resource.fan_response_rest_api_resource.id
  path_part   = local.api_path_part_sub_campaign
}

# Create POST /{vendor}/campaign method
resource "aws_api_gateway_method" "fan_response_rest_api_sub_campaign_method" {
  rest_api_id          = aws_api_gateway_rest_api.fan_response_rest_api.id
  resource_id          = aws_api_gateway_resource.fan_response_rest_api_sub_campaign_resource.id
  http_method          = "POST"
  authorization        = "CUSTOM"
  authorizer_id        = aws_api_gateway_authorizer.smf_fan_response_authorizer.id
  request_validator_id = aws_api_gateway_request_validator.fan_response_rest_api_validator.id
}

# Integrate POST /{vendor}/campaign
resource "aws_api_gateway_integration" "fan_response_rest_api_campaign_integration" {
  rest_api_id = aws_api_gateway_rest_api.fan_response_rest_api.id
  resource_id = aws_api_gateway_resource.fan_response_rest_api_sub_campaign_resource.id
  http_method = aws_api_gateway_method.fan_response_rest_api_sub_campaign_method.http_method
  integration_http_method = "POST"  # Lambda function can only be invoked via POST
  type                    = "AWS_PROXY"
  uri                     = module.lambda_fan_campaign.lambda_invoke_arn
}
