/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace APIGateway { namespace Model { /** *

Represents a method response of a given HTTP status code returned to the * client. The method response is passed from the back end through the associated * integration response that can be transformed using a mapping template.

Example: A MethodResponse instance of an * API

Request

The example request retrieves a * MethodResponse of the 200 status code.

GET
   * /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200 HTTP/1.1
   * Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
   * X-Amz-Date: 20160603T222952Z Authorization: AWS4-HMAC-SHA256
   * Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
   * SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
*
Response

The successful response returns 200 OK status * and a payload as follows:

{ "_links": { "curies": { "href":
   * "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
   * "name": "methodresponse", "templated": true }, "self": { "href":
   * "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "title":
   * "200" }, "methodresponse:delete": { "href":
   * "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" },
   * "methodresponse:update": { "href":
   * "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } },
   * "responseModels": { "application/json": "Empty" }, "responseParameters": {
   * "method.response.header.Content-Type": false }, "statusCode": "200"
   * }

See Also:

AWS * API Reference

*/ class AWS_APIGATEWAY_API MethodResponse { public: MethodResponse(); MethodResponse(Aws::Utils::Json::JsonView jsonValue); MethodResponse& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The method response's status code.

*/ inline const Aws::String& GetStatusCode() const{ return m_statusCode; } /** *

The method response's status code.

*/ inline bool StatusCodeHasBeenSet() const { return m_statusCodeHasBeenSet; } /** *

The method response's status code.

*/ inline void SetStatusCode(const Aws::String& value) { m_statusCodeHasBeenSet = true; m_statusCode = value; } /** *

The method response's status code.

*/ inline void SetStatusCode(Aws::String&& value) { m_statusCodeHasBeenSet = true; m_statusCode = std::move(value); } /** *

The method response's status code.

*/ inline void SetStatusCode(const char* value) { m_statusCodeHasBeenSet = true; m_statusCode.assign(value); } /** *

The method response's status code.

*/ inline MethodResponse& WithStatusCode(const Aws::String& value) { SetStatusCode(value); return *this;} /** *

The method response's status code.

*/ inline MethodResponse& WithStatusCode(Aws::String&& value) { SetStatusCode(std::move(value)); return *this;} /** *

The method response's status code.

*/ inline MethodResponse& WithStatusCode(const char* value) { SetStatusCode(value); return *this;} /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline const Aws::Map& GetResponseParameters() const{ return m_responseParameters; } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline bool ResponseParametersHasBeenSet() const { return m_responseParametersHasBeenSet; } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline void SetResponseParameters(const Aws::Map& value) { m_responseParametersHasBeenSet = true; m_responseParameters = value; } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline void SetResponseParameters(Aws::Map&& value) { m_responseParametersHasBeenSet = true; m_responseParameters = std::move(value); } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline MethodResponse& WithResponseParameters(const Aws::Map& value) { SetResponseParameters(value); return *this;} /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline MethodResponse& WithResponseParameters(Aws::Map&& value) { SetResponseParameters(std::move(value)); return *this;} /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline MethodResponse& AddResponseParameters(const Aws::String& key, bool value) { m_responseParametersHasBeenSet = true; m_responseParameters.emplace(key, value); return *this; } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline MethodResponse& AddResponseParameters(Aws::String&& key, bool value) { m_responseParametersHasBeenSet = true; m_responseParameters.emplace(std::move(key), value); return *this; } /** *

A key-value map specifying required or optional response parameters that API * Gateway can send back to the caller. A key defines a method response header and * the value specifies whether the associated method response header is required or * not. The expression of the key must match the pattern * method.response.header.{name}, where name is a valid * and unique header name. API Gateway passes certain integration response data to * the method response headers specified here according to the mapping you * prescribe in the API's IntegrationResponse. The integration response data * that can be mapped include an integration response header expressed in * integration.response.header.{name}, a static value enclosed within * a pair of single quotes (e.g., 'application/json'), or a JSON * expression from the back-end response payload in the form of * integration.response.body.{JSON-expression}, where * JSON-expression is a valid JSON expression without the * $ prefix.)

*/ inline MethodResponse& AddResponseParameters(const char* key, bool value) { m_responseParametersHasBeenSet = true; m_responseParameters.emplace(key, value); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline const Aws::Map& GetResponseModels() const{ return m_responseModels; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline bool ResponseModelsHasBeenSet() const { return m_responseModelsHasBeenSet; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline void SetResponseModels(const Aws::Map& value) { m_responseModelsHasBeenSet = true; m_responseModels = value; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline void SetResponseModels(Aws::Map&& value) { m_responseModelsHasBeenSet = true; m_responseModels = std::move(value); } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& WithResponseModels(const Aws::Map& value) { SetResponseModels(value); return *this;} /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& WithResponseModels(Aws::Map&& value) { SetResponseModels(std::move(value)); return *this;} /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(const Aws::String& key, const Aws::String& value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(key, value); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(Aws::String&& key, const Aws::String& value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(std::move(key), value); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(const Aws::String& key, Aws::String&& value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(key, std::move(value)); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(Aws::String&& key, Aws::String&& value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(const char* key, Aws::String&& value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(key, std::move(value)); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(Aws::String&& key, const char* value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(std::move(key), value); return *this; } /** *

Specifies the Model resources used for the response's content-type. * Response models are represented as a key/value map, with a content-type as the * key and a Model name as the value.

*/ inline MethodResponse& AddResponseModels(const char* key, const char* value) { m_responseModelsHasBeenSet = true; m_responseModels.emplace(key, value); return *this; } private: Aws::String m_statusCode; bool m_statusCodeHasBeenSet; Aws::Map m_responseParameters; bool m_responseParametersHasBeenSet; Aws::Map m_responseModels; bool m_responseModelsHasBeenSet; }; } // namespace Model } // namespace APIGateway } // namespace Aws