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

Sets up a method's integration.

See Also:

AWS * API Reference

*/ class PutIntegrationRequest : public APIGatewayRequest { public: AWS_APIGATEWAY_API PutIntegrationRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PutIntegration"; } AWS_APIGATEWAY_API Aws::String SerializePayload() const override; /** *

The string identifier of the associated RestApi.

*/ inline const Aws::String& GetRestApiId() const{ return m_restApiId; } /** *

The string identifier of the associated RestApi.

*/ inline bool RestApiIdHasBeenSet() const { return m_restApiIdHasBeenSet; } /** *

The string identifier of the associated RestApi.

*/ inline void SetRestApiId(const Aws::String& value) { m_restApiIdHasBeenSet = true; m_restApiId = value; } /** *

The string identifier of the associated RestApi.

*/ inline void SetRestApiId(Aws::String&& value) { m_restApiIdHasBeenSet = true; m_restApiId = std::move(value); } /** *

The string identifier of the associated RestApi.

*/ inline void SetRestApiId(const char* value) { m_restApiIdHasBeenSet = true; m_restApiId.assign(value); } /** *

The string identifier of the associated RestApi.

*/ inline PutIntegrationRequest& WithRestApiId(const Aws::String& value) { SetRestApiId(value); return *this;} /** *

The string identifier of the associated RestApi.

*/ inline PutIntegrationRequest& WithRestApiId(Aws::String&& value) { SetRestApiId(std::move(value)); return *this;} /** *

The string identifier of the associated RestApi.

*/ inline PutIntegrationRequest& WithRestApiId(const char* value) { SetRestApiId(value); return *this;} /** *

Specifies a put integration request's resource ID.

*/ inline const Aws::String& GetResourceId() const{ return m_resourceId; } /** *

Specifies a put integration request's resource ID.

*/ inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; } /** *

Specifies a put integration request's resource ID.

*/ inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; } /** *

Specifies a put integration request's resource ID.

*/ inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); } /** *

Specifies a put integration request's resource ID.

*/ inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); } /** *

Specifies a put integration request's resource ID.

*/ inline PutIntegrationRequest& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;} /** *

Specifies a put integration request's resource ID.

*/ inline PutIntegrationRequest& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;} /** *

Specifies a put integration request's resource ID.

*/ inline PutIntegrationRequest& WithResourceId(const char* value) { SetResourceId(value); return *this;} /** *

Specifies the HTTP method for the integration.

*/ inline const Aws::String& GetHttpMethod() const{ return m_httpMethod; } /** *

Specifies the HTTP method for the integration.

*/ inline bool HttpMethodHasBeenSet() const { return m_httpMethodHasBeenSet; } /** *

Specifies the HTTP method for the integration.

*/ inline void SetHttpMethod(const Aws::String& value) { m_httpMethodHasBeenSet = true; m_httpMethod = value; } /** *

Specifies the HTTP method for the integration.

*/ inline void SetHttpMethod(Aws::String&& value) { m_httpMethodHasBeenSet = true; m_httpMethod = std::move(value); } /** *

Specifies the HTTP method for the integration.

*/ inline void SetHttpMethod(const char* value) { m_httpMethodHasBeenSet = true; m_httpMethod.assign(value); } /** *

Specifies the HTTP method for the integration.

*/ inline PutIntegrationRequest& WithHttpMethod(const Aws::String& value) { SetHttpMethod(value); return *this;} /** *

Specifies the HTTP method for the integration.

*/ inline PutIntegrationRequest& WithHttpMethod(Aws::String&& value) { SetHttpMethod(std::move(value)); return *this;} /** *

Specifies the HTTP method for the integration.

*/ inline PutIntegrationRequest& WithHttpMethod(const char* value) { SetHttpMethod(value); return *this;} /** *

Specifies a put integration input's type.

*/ inline const IntegrationType& GetType() const{ return m_type; } /** *

Specifies a put integration input's type.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Specifies a put integration input's type.

*/ inline void SetType(const IntegrationType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Specifies a put integration input's type.

*/ inline void SetType(IntegrationType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Specifies a put integration input's type.

*/ inline PutIntegrationRequest& WithType(const IntegrationType& value) { SetType(value); return *this;} /** *

Specifies a put integration input's type.

*/ inline PutIntegrationRequest& WithType(IntegrationType&& value) { SetType(std::move(value)); return *this;} /** *

The HTTP method for the integration.

*/ inline const Aws::String& GetIntegrationHttpMethod() const{ return m_integrationHttpMethod; } /** *

The HTTP method for the integration.

*/ inline bool IntegrationHttpMethodHasBeenSet() const { return m_integrationHttpMethodHasBeenSet; } /** *

The HTTP method for the integration.

*/ inline void SetIntegrationHttpMethod(const Aws::String& value) { m_integrationHttpMethodHasBeenSet = true; m_integrationHttpMethod = value; } /** *

The HTTP method for the integration.

*/ inline void SetIntegrationHttpMethod(Aws::String&& value) { m_integrationHttpMethodHasBeenSet = true; m_integrationHttpMethod = std::move(value); } /** *

The HTTP method for the integration.

*/ inline void SetIntegrationHttpMethod(const char* value) { m_integrationHttpMethodHasBeenSet = true; m_integrationHttpMethod.assign(value); } /** *

The HTTP method for the integration.

*/ inline PutIntegrationRequest& WithIntegrationHttpMethod(const Aws::String& value) { SetIntegrationHttpMethod(value); return *this;} /** *

The HTTP method for the integration.

*/ inline PutIntegrationRequest& WithIntegrationHttpMethod(Aws::String&& value) { SetIntegrationHttpMethod(std::move(value)); return *this;} /** *

The HTTP method for the integration.

*/ inline PutIntegrationRequest& WithIntegrationHttpMethod(const char* value) { SetIntegrationHttpMethod(value); return *this;} /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline const Aws::String& GetUri() const{ return m_uri; } /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline bool UriHasBeenSet() const { return m_uriHasBeenSet; } /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline void SetUri(const Aws::String& value) { m_uriHasBeenSet = true; m_uri = value; } /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline void SetUri(Aws::String&& value) { m_uriHasBeenSet = true; m_uri = std::move(value); } /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline void SetUri(const char* value) { m_uriHasBeenSet = true; m_uri.assign(value); } /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline PutIntegrationRequest& WithUri(const Aws::String& value) { SetUri(value); return *this;} /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline PutIntegrationRequest& WithUri(Aws::String&& value) { SetUri(std::move(value)); return *this;} /** *

Specifies Uniform Resource Identifier (URI) of the integration endpoint. For * HTTP or HTTP_PROXY integrations, the URI must be a fully formed, * encoded HTTP(S) URL according to the RFC-3986 specification, for either standard * integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. * For a private HTTP integration, the URI is not used for routing. For * AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. * Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated Amazon Web Services service (e.g., s3); and {subdomain} * is a designated subdomain supported by certain Amazon Web Services service for * fast host-name lookup. action can be used for an Amazon Web Services service * action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query * string. The ensuing {service_api} refers to a supported action {name} plus any * required input parameters. Alternatively, path can be used for an Amazon Web * Services service path-based API. The ensuing service_api refers to the path to * an Amazon Web Services service resource, including the region of the integrated * Amazon Web Services service, if applicable. For example, for integration with * the S3 API of GetObject, the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} * or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}.

*/ inline PutIntegrationRequest& WithUri(const char* value) { SetUri(value); return *this;} /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline const ConnectionType& GetConnectionType() const{ return m_connectionType; } /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline bool ConnectionTypeHasBeenSet() const { return m_connectionTypeHasBeenSet; } /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline void SetConnectionType(const ConnectionType& value) { m_connectionTypeHasBeenSet = true; m_connectionType = value; } /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline void SetConnectionType(ConnectionType&& value) { m_connectionTypeHasBeenSet = true; m_connectionType = std::move(value); } /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline PutIntegrationRequest& WithConnectionType(const ConnectionType& value) { SetConnectionType(value); return *this;} /** *

The type of the network connection to the integration endpoint. The valid * value is INTERNET for connections through the public routable * internet or VPC_LINK for private connections between API Gateway * and a network load balancer in a VPC. The default value is * INTERNET.

*/ inline PutIntegrationRequest& WithConnectionType(ConnectionType&& value) { SetConnectionType(std::move(value)); return *this;} /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline const Aws::String& GetConnectionId() const{ return m_connectionId; } /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline bool ConnectionIdHasBeenSet() const { return m_connectionIdHasBeenSet; } /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline void SetConnectionId(const Aws::String& value) { m_connectionIdHasBeenSet = true; m_connectionId = value; } /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline void SetConnectionId(Aws::String&& value) { m_connectionIdHasBeenSet = true; m_connectionId = std::move(value); } /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline void SetConnectionId(const char* value) { m_connectionIdHasBeenSet = true; m_connectionId.assign(value); } /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline PutIntegrationRequest& WithConnectionId(const Aws::String& value) { SetConnectionId(value); return *this;} /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline PutIntegrationRequest& WithConnectionId(Aws::String&& value) { SetConnectionId(std::move(value)); return *this;} /** *

The ID of the VpcLink used for the integration. Specify this value only if * you specify VPC_LINK as the connection type.

*/ inline PutIntegrationRequest& WithConnectionId(const char* value) { SetConnectionId(value); return *this;} /** *

Specifies whether credentials are required for a put integration.

*/ inline const Aws::String& GetCredentials() const{ return m_credentials; } /** *

Specifies whether credentials are required for a put integration.

*/ inline bool CredentialsHasBeenSet() const { return m_credentialsHasBeenSet; } /** *

Specifies whether credentials are required for a put integration.

*/ inline void SetCredentials(const Aws::String& value) { m_credentialsHasBeenSet = true; m_credentials = value; } /** *

Specifies whether credentials are required for a put integration.

*/ inline void SetCredentials(Aws::String&& value) { m_credentialsHasBeenSet = true; m_credentials = std::move(value); } /** *

Specifies whether credentials are required for a put integration.

*/ inline void SetCredentials(const char* value) { m_credentialsHasBeenSet = true; m_credentials.assign(value); } /** *

Specifies whether credentials are required for a put integration.

*/ inline PutIntegrationRequest& WithCredentials(const Aws::String& value) { SetCredentials(value); return *this;} /** *

Specifies whether credentials are required for a put integration.

*/ inline PutIntegrationRequest& WithCredentials(Aws::String&& value) { SetCredentials(std::move(value)); return *this;} /** *

Specifies whether credentials are required for a put integration.

*/ inline PutIntegrationRequest& WithCredentials(const char* value) { SetCredentials(value); return *this;} /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline const Aws::Map& GetRequestParameters() const{ return m_requestParameters; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline bool RequestParametersHasBeenSet() const { return m_requestParametersHasBeenSet; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline void SetRequestParameters(const Aws::Map& value) { m_requestParametersHasBeenSet = true; m_requestParameters = value; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline void SetRequestParameters(Aws::Map&& value) { m_requestParametersHasBeenSet = true; m_requestParameters = std::move(value); } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& WithRequestParameters(const Aws::Map& value) { SetRequestParameters(value); return *this;} /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& WithRequestParameters(Aws::Map&& value) { SetRequestParameters(std::move(value)); return *this;} /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(const Aws::String& key, const Aws::String& value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(key, value); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(Aws::String&& key, const Aws::String& value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(std::move(key), value); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(const Aws::String& key, Aws::String&& value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(key, std::move(value)); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(Aws::String&& key, Aws::String&& value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(const char* key, Aws::String&& value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(key, std::move(value)); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(Aws::String&& key, const char* value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(std::move(key), value); return *this; } /** *

A key-value map specifying request parameters that are passed from the method * request to the back end. The key is an integration request parameter name and * the associated value is a method request parameter value or static value that * must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is * querystring, path, or header and * name must be a valid and unique method request parameter name.

*/ inline PutIntegrationRequest& AddRequestParameters(const char* key, const char* value) { m_requestParametersHasBeenSet = true; m_requestParameters.emplace(key, value); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline const Aws::Map& GetRequestTemplates() const{ return m_requestTemplates; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline bool RequestTemplatesHasBeenSet() const { return m_requestTemplatesHasBeenSet; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline void SetRequestTemplates(const Aws::Map& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates = value; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline void SetRequestTemplates(Aws::Map&& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates = std::move(value); } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& WithRequestTemplates(const Aws::Map& value) { SetRequestTemplates(value); return *this;} /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& WithRequestTemplates(Aws::Map&& value) { SetRequestTemplates(std::move(value)); return *this;} /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(const Aws::String& key, const Aws::String& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(key, value); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(Aws::String&& key, const Aws::String& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(std::move(key), value); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(const Aws::String& key, Aws::String&& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(key, std::move(value)); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(Aws::String&& key, Aws::String&& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(std::move(key), std::move(value)); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(const char* key, Aws::String&& value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(key, std::move(value)); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(Aws::String&& key, const char* value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(std::move(key), value); return *this; } /** *

Represents a map of Velocity templates that are applied on the request * payload based on the value of the Content-Type header sent by the client. The * content type value is the key in this map, and the template (as a String) is the * value.

*/ inline PutIntegrationRequest& AddRequestTemplates(const char* key, const char* value) { m_requestTemplatesHasBeenSet = true; m_requestTemplates.emplace(key, value); return *this; } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline const Aws::String& GetPassthroughBehavior() const{ return m_passthroughBehavior; } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline bool PassthroughBehaviorHasBeenSet() const { return m_passthroughBehaviorHasBeenSet; } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline void SetPassthroughBehavior(const Aws::String& value) { m_passthroughBehaviorHasBeenSet = true; m_passthroughBehavior = value; } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline void SetPassthroughBehavior(Aws::String&& value) { m_passthroughBehaviorHasBeenSet = true; m_passthroughBehavior = std::move(value); } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline void SetPassthroughBehavior(const char* value) { m_passthroughBehaviorHasBeenSet = true; m_passthroughBehavior.assign(value); } /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline PutIntegrationRequest& WithPassthroughBehavior(const Aws::String& value) { SetPassthroughBehavior(value); return *this;} /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline PutIntegrationRequest& WithPassthroughBehavior(Aws::String&& value) { SetPassthroughBehavior(std::move(value)); return *this;} /** *

Specifies the pass-through behavior for incoming requests based on the * Content-Type header in the request, and the available mapping templates * specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

*/ inline PutIntegrationRequest& WithPassthroughBehavior(const char* value) { SetPassthroughBehavior(value); return *this;} /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline const Aws::String& GetCacheNamespace() const{ return m_cacheNamespace; } /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline bool CacheNamespaceHasBeenSet() const { return m_cacheNamespaceHasBeenSet; } /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline void SetCacheNamespace(const Aws::String& value) { m_cacheNamespaceHasBeenSet = true; m_cacheNamespace = value; } /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline void SetCacheNamespace(Aws::String&& value) { m_cacheNamespaceHasBeenSet = true; m_cacheNamespace = std::move(value); } /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline void SetCacheNamespace(const char* value) { m_cacheNamespaceHasBeenSet = true; m_cacheNamespace.assign(value); } /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline PutIntegrationRequest& WithCacheNamespace(const Aws::String& value) { SetCacheNamespace(value); return *this;} /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline PutIntegrationRequest& WithCacheNamespace(Aws::String&& value) { SetCacheNamespace(std::move(value)); return *this;} /** *

Specifies a group of related cached parameters. By default, API Gateway uses * the resource ID as the cacheNamespace. You can specify the same * cacheNamespace across resources to return the same cached data for * requests to different resources.

*/ inline PutIntegrationRequest& WithCacheNamespace(const char* value) { SetCacheNamespace(value); return *this;} /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline const Aws::Vector& GetCacheKeyParameters() const{ return m_cacheKeyParameters; } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline bool CacheKeyParametersHasBeenSet() const { return m_cacheKeyParametersHasBeenSet; } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline void SetCacheKeyParameters(const Aws::Vector& value) { m_cacheKeyParametersHasBeenSet = true; m_cacheKeyParameters = value; } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline void SetCacheKeyParameters(Aws::Vector&& value) { m_cacheKeyParametersHasBeenSet = true; m_cacheKeyParameters = std::move(value); } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline PutIntegrationRequest& WithCacheKeyParameters(const Aws::Vector& value) { SetCacheKeyParameters(value); return *this;} /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline PutIntegrationRequest& WithCacheKeyParameters(Aws::Vector&& value) { SetCacheKeyParameters(std::move(value)); return *this;} /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline PutIntegrationRequest& AddCacheKeyParameters(const Aws::String& value) { m_cacheKeyParametersHasBeenSet = true; m_cacheKeyParameters.push_back(value); return *this; } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline PutIntegrationRequest& AddCacheKeyParameters(Aws::String&& value) { m_cacheKeyParametersHasBeenSet = true; m_cacheKeyParameters.push_back(std::move(value)); return *this; } /** *

A list of request parameters whose values API Gateway caches. To be valid * values for cacheKeyParameters, these parameters must also be * specified for Method requestParameters.

*/ inline PutIntegrationRequest& AddCacheKeyParameters(const char* value) { m_cacheKeyParametersHasBeenSet = true; m_cacheKeyParameters.push_back(value); return *this; } /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline const ContentHandlingStrategy& GetContentHandling() const{ return m_contentHandling; } /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline bool ContentHandlingHasBeenSet() const { return m_contentHandlingHasBeenSet; } /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline void SetContentHandling(const ContentHandlingStrategy& value) { m_contentHandlingHasBeenSet = true; m_contentHandling = value; } /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline void SetContentHandling(ContentHandlingStrategy&& value) { m_contentHandlingHasBeenSet = true; m_contentHandling = std::move(value); } /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline PutIntegrationRequest& WithContentHandling(const ContentHandlingStrategy& value) { SetContentHandling(value); return *this;} /** *

Specifies how to handle request payload content type conversions. Supported * values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with * the following behaviors:

If this property is not defined, the request * payload will be passed through from the method request to integration request * without modification, provided that the passthroughBehavior is * configured to support payload pass-through.

*/ inline PutIntegrationRequest& WithContentHandling(ContentHandlingStrategy&& value) { SetContentHandling(std::move(value)); return *this;} /** *

Custom timeout between 50 and 29,000 milliseconds. The default value is * 29,000 milliseconds or 29 seconds.

*/ inline int GetTimeoutInMillis() const{ return m_timeoutInMillis; } /** *

Custom timeout between 50 and 29,000 milliseconds. The default value is * 29,000 milliseconds or 29 seconds.

*/ inline bool TimeoutInMillisHasBeenSet() const { return m_timeoutInMillisHasBeenSet; } /** *

Custom timeout between 50 and 29,000 milliseconds. The default value is * 29,000 milliseconds or 29 seconds.

*/ inline void SetTimeoutInMillis(int value) { m_timeoutInMillisHasBeenSet = true; m_timeoutInMillis = value; } /** *

Custom timeout between 50 and 29,000 milliseconds. The default value is * 29,000 milliseconds or 29 seconds.

*/ inline PutIntegrationRequest& WithTimeoutInMillis(int value) { SetTimeoutInMillis(value); return *this;} inline const TlsConfig& GetTlsConfig() const{ return m_tlsConfig; } inline bool TlsConfigHasBeenSet() const { return m_tlsConfigHasBeenSet; } inline void SetTlsConfig(const TlsConfig& value) { m_tlsConfigHasBeenSet = true; m_tlsConfig = value; } inline void SetTlsConfig(TlsConfig&& value) { m_tlsConfigHasBeenSet = true; m_tlsConfig = std::move(value); } inline PutIntegrationRequest& WithTlsConfig(const TlsConfig& value) { SetTlsConfig(value); return *this;} inline PutIntegrationRequest& WithTlsConfig(TlsConfig&& value) { SetTlsConfig(std::move(value)); return *this;} private: Aws::String m_restApiId; bool m_restApiIdHasBeenSet = false; Aws::String m_resourceId; bool m_resourceIdHasBeenSet = false; Aws::String m_httpMethod; bool m_httpMethodHasBeenSet = false; IntegrationType m_type; bool m_typeHasBeenSet = false; Aws::String m_integrationHttpMethod; bool m_integrationHttpMethodHasBeenSet = false; Aws::String m_uri; bool m_uriHasBeenSet = false; ConnectionType m_connectionType; bool m_connectionTypeHasBeenSet = false; Aws::String m_connectionId; bool m_connectionIdHasBeenSet = false; Aws::String m_credentials; bool m_credentialsHasBeenSet = false; Aws::Map m_requestParameters; bool m_requestParametersHasBeenSet = false; Aws::Map m_requestTemplates; bool m_requestTemplatesHasBeenSet = false; Aws::String m_passthroughBehavior; bool m_passthroughBehaviorHasBeenSet = false; Aws::String m_cacheNamespace; bool m_cacheNamespaceHasBeenSet = false; Aws::Vector m_cacheKeyParameters; bool m_cacheKeyParametersHasBeenSet = false; ContentHandlingStrategy m_contentHandling; bool m_contentHandlingHasBeenSet = false; int m_timeoutInMillis; bool m_timeoutInMillisHasBeenSet = false; TlsConfig m_tlsConfig; bool m_tlsConfigHasBeenSet = false; }; } // namespace Model } // namespace APIGateway } // namespace Aws