

# PutGatewayResponse
<a name="API_PutGatewayResponse"></a>

Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi.

## Request Syntax
<a name="API_PutGatewayResponse_RequestSyntax"></a>

```
PUT /restapis/restapi_id/gatewayresponses/response_type HTTP/1.1
Content-type: application/json

{
   "responseParameters": { 
      "string" : "string" 
   },
   "responseTemplates": { 
      "string" : "string" 
   },
   "statusCode": "string"
}
```

## URI Request Parameters
<a name="API_PutGatewayResponse_RequestParameters"></a>

The request uses the following URI parameters.

 ** [response\$1type](#API_PutGatewayResponse_RequestSyntax) **   <a name="apigw-PutGatewayResponse-request-uri-responseType"></a>
The response type of the associated GatewayResponse  
Valid Values: `DEFAULT_4XX | DEFAULT_5XX | RESOURCE_NOT_FOUND | UNAUTHORIZED | INVALID_API_KEY | ACCESS_DENIED | AUTHORIZER_FAILURE | AUTHORIZER_CONFIGURATION_ERROR | INVALID_SIGNATURE | EXPIRED_TOKEN | MISSING_AUTHENTICATION_TOKEN | INTEGRATION_FAILURE | INTEGRATION_TIMEOUT | API_CONFIGURATION_ERROR | UNSUPPORTED_MEDIA_TYPE | BAD_REQUEST_PARAMETERS | BAD_REQUEST_BODY | REQUEST_TOO_LARGE | THROTTLED | QUOTA_EXCEEDED | WAF_FILTERED`   
Required: Yes

 ** [restapi\$1id](#API_PutGatewayResponse_RequestSyntax) **   <a name="apigw-PutGatewayResponse-request-uri-restApiId"></a>
The string identifier of the associated RestApi.  
Required: Yes

## Request Body
<a name="API_PutGatewayResponse_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [responseParameters](#API_PutGatewayResponse_RequestSyntax) **   <a name="apigw-PutGatewayResponse-request-responseParameters"></a>
Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.  
Type: String to string map  
Required: No

 ** [responseTemplates](#API_PutGatewayResponse_RequestSyntax) **   <a name="apigw-PutGatewayResponse-request-responseTemplates"></a>
Response templates of the GatewayResponse as a string-to-string map of key-value pairs.  
Type: String to string map  
Required: No

 ** [statusCode](#API_PutGatewayResponse_RequestSyntax) **   <a name="apigw-PutGatewayResponse-request-statusCode"></a>
The HTTP status code of the GatewayResponse.  
Type: String  
Pattern: `[1-5]\d\d`   
Required: No

## Response Syntax
<a name="API_PutGatewayResponse_ResponseSyntax"></a>

```
HTTP/1.1 201
Content-type: application/json

{
   "defaultResponse": boolean,
   "responseParameters": { 
      "string" : "string" 
   },
   "responseTemplates": { 
      "string" : "string" 
   },
   "responseType": "string",
   "statusCode": "string"
}
```

## Response Elements
<a name="API_PutGatewayResponse_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 201 response.

The following data is returned in JSON format by the service.

 ** [defaultResponse](#API_PutGatewayResponse_ResponseSyntax) **   <a name="apigw-PutGatewayResponse-response-defaultResponse"></a>
A Boolean flag to indicate whether this GatewayResponse is the default gateway response (`true`) or not (`false`). A default gateway response is one generated by API Gateway without any customization by an API developer.   
Type: Boolean

 ** [responseParameters](#API_PutGatewayResponse_ResponseSyntax) **   <a name="apigw-PutGatewayResponse-response-responseParameters"></a>
Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.  
Type: String to string map

 ** [responseTemplates](#API_PutGatewayResponse_ResponseSyntax) **   <a name="apigw-PutGatewayResponse-response-responseTemplates"></a>
Response templates of the GatewayResponse as a string-to-string map of key-value pairs.  
Type: String to string map

 ** [responseType](#API_PutGatewayResponse_ResponseSyntax) **   <a name="apigw-PutGatewayResponse-response-responseType"></a>
The response type of the associated GatewayResponse.  
Type: String  
Valid Values: `DEFAULT_4XX | DEFAULT_5XX | RESOURCE_NOT_FOUND | UNAUTHORIZED | INVALID_API_KEY | ACCESS_DENIED | AUTHORIZER_FAILURE | AUTHORIZER_CONFIGURATION_ERROR | INVALID_SIGNATURE | EXPIRED_TOKEN | MISSING_AUTHENTICATION_TOKEN | INTEGRATION_FAILURE | INTEGRATION_TIMEOUT | API_CONFIGURATION_ERROR | UNSUPPORTED_MEDIA_TYPE | BAD_REQUEST_PARAMETERS | BAD_REQUEST_BODY | REQUEST_TOO_LARGE | THROTTLED | QUOTA_EXCEEDED | WAF_FILTERED` 

 ** [statusCode](#API_PutGatewayResponse_ResponseSyntax) **   <a name="apigw-PutGatewayResponse-response-statusCode"></a>
The HTTP status code for this GatewayResponse.  
Type: String  
Pattern: `[1-5]\d\d` 

## Errors
<a name="API_PutGatewayResponse_Errors"></a>

For information about the errors that are common to all actions, see [Common Error Types](CommonErrors.md).

 ** BadRequestException **   
The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.  
HTTP Status Code: 400

 ** ConflictException **   
The request configuration has conflicts. For details, see the accompanying error message.  
HTTP Status Code: 409

 ** LimitExceededException **   
The request exceeded the rate limit. Retry after the specified time period.  
HTTP Status Code: 429

 ** NotFoundException **   
The requested resource is not found. Make sure that the request URI is correct.  
HTTP Status Code: 404

 ** TooManyRequestsException **   
The request has reached its throttling limit. Retry after the specified time period.  
HTTP Status Code: 429

 ** UnauthorizedException **   
The request is denied because the caller has insufficient permissions.  
HTTP Status Code: 401

## Examples
<a name="API_PutGatewayResponse_Examples"></a>

### Set up a Gateway Response of a given response type
<a name="API_PutGatewayResponse_Example_1"></a>

This example illustrates one usage of PutGatewayResponse.

#### Sample Request
<a name="API_PutGatewayResponse_Example_1_Request"></a>

```
PUT /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1
Host: beta-apigateway.us-east-1.amazonaws.com
Content-Type: application/json
X-Amz-Date: 20170503T201609Z
Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=15e138ede132fa8c35c665412f407bd23a9993bdc79b3bef22f1ccccc4c6fac1
Cache-Control: no-cache
Postman-Token: 639177c3-627e-3566-a367-7746659d2360

{
  "statusCode" : "404",
  "responseParameters" : {
      "gatewayresponse.header.x-request-path": "method.request.path.petId",
      "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
      "gatewayresponse.header.x-request-query": "method.request.querystring.q",
      "gatewayresponse.header.x-request-header": "method.request.header.Accept"
  },
  "responseTemplates" : {
      "application/json": "{\n     \"message\": $context.error.messageString,\n     \"type\":  \"$context.error.responseType\",\n     \"stage\":  \"$context.stage\",\n     \"resourcePath\":  \"$context.resourcePath\",\n     \"stageVariables.a\":  \"$stageVariables.a\",\n     \"statusCode\": \"'404'\"\n}"
  }
}
```

#### Sample Response
<a name="API_PutGatewayResponse_Example_1_Response"></a>

```
{
  "_links": {
    "curies": {
      "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
      "name": "gatewayresponse",
      "templated": true
    },
    "self": {
      "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
    },
    "gatewayresponse:delete": {
      "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
    },
    "gatewayresponse:put": {
      "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
      "templated": true
    },
    "gatewayresponse:update": {
      "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
    }
  },
  "defaultResponse": false,
  "responseParameters": {
    "gatewayresponse.header.x-request-path": "method.request.path.petId",
    "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
    "gatewayresponse.header.x-request-query": "method.request.querystring.q",
    "gatewayresponse.header.x-request-header": "method.request.header.Accept"
  },
  "responseTemplates": {
    "application/json": "{\n     \"message\": $context.error.messageString,\n     \"type\":  \"$context.error.responseType\",\n     \"stage\":  \"$context.stage\",\n     \"resourcePath\":  \"$context.resourcePath\",\n     \"stageVariables.a\":  \"$stageVariables.a\",\n     \"statusCode\": \"'404'\"\n}"
  },
  "responseType": "MISSING_AUTHENTICATION_TOKEN",
  "statusCode": "404"
}
```

## See Also
<a name="API_PutGatewayResponse_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/apigateway-2015-07-09/PutGatewayResponse) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/apigateway-2015-07-09/PutGatewayResponse) 