/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
#pragma once
#include  Sets up a method's integration.See Also:
   AWS
   * API Reference
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}.
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}.
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}.
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}.
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}.
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}.
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}.
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}.
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.
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.
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.
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.
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.
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.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
The ID of the VpcLink used for the integration. Specify this value only if
     * you specify VPC_LINK as the connection type.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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::MapRepresents 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::MapRepresents 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::MapRepresents 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::MapRepresents 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::MapRepresents 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. 
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. 
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. 
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. 
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. 
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. 
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. 
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. 
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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