aws_sdk_apigatewayv2/operation/update_integration/
_update_integration_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateIntegrationOutput {
6    /// <p>Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.</p>
7    pub api_gateway_managed: ::std::option::Option<bool>,
8    /// <p>The ID of the VPC link for a private integration. Supported only for HTTP APIs.</p>
9    pub connection_id: ::std::option::Option<::std::string::String>,
10    /// <p>The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.</p>
11    pub connection_type: ::std::option::Option<crate::types::ConnectionType>,
12    /// <p>Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:</p>
13    /// <p>CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</p>
14    /// <p>CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.</p>
15    /// <p>If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.</p>
16    pub content_handling_strategy: ::std::option::Option<crate::types::ContentHandlingStrategy>,
17    /// <p>Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.</p>
18    pub credentials_arn: ::std::option::Option<::std::string::String>,
19    /// <p>Represents the description of an integration.</p>
20    pub description: ::std::option::Option<::std::string::String>,
21    /// <p>Represents the identifier of an integration.</p>
22    pub integration_id: ::std::option::Option<::std::string::String>,
23    /// <p>Specifies the integration's HTTP method type.</p>
24    pub integration_method: ::std::option::Option<::std::string::String>,
25    /// <p>The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.</p>
26    pub integration_response_selection_expression: ::std::option::Option<::std::string::String>,
27    /// <p>Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.</p>
28    pub integration_subtype: ::std::option::Option<::std::string::String>,
29    /// <p>The integration type of an integration. One of the following:</p>
30    /// <p>AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.</p>
31    /// <p>AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.</p>
32    /// <p>HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.</p>
33    /// <p>HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.</p>
34    /// <p>MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.</p>
35    pub integration_type: ::std::option::Option<crate::types::IntegrationType>,
36    /// <p>For a Lambda integration, specify the URI of a Lambda function.</p>
37    /// <p>For an HTTP integration, specify a fully-qualified URL.</p>
38    /// <p>For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.</p>
39    pub integration_uri: ::std::option::Option<::std::string::String>,
40    /// <p>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. Supported only for WebSocket APIs.</p>
41    /// <p>WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.</p>
42    /// <p>NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.</p>
43    /// <p>WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.</p>
44    pub passthrough_behavior: ::std::option::Option<crate::types::PassthroughBehavior>,
45    /// <p>Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supported value. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html">Working with AWS Lambda proxy integrations for HTTP APIs</a>.</p>
46    pub payload_format_version: ::std::option::Option<::std::string::String>,
47    /// <p>For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. 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 backend. The method request parameter value must match the pattern of method.request.<replaceable>
48    /// {location}
49    /// </replaceable>.<replaceable>
50    /// {name}
51    /// </replaceable> , where <replaceable>
52    /// {location}
53    /// </replaceable> is querystring, path, or header; and <replaceable>
54    /// {name}
55    /// </replaceable> must be a valid and unique method request parameter name.</p>
56    /// <p>For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>.</p>
57    /// <p>For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
58    pub request_parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
59    /// <p>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. Supported only for WebSocket APIs.</p>
60    pub request_templates: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
61    /// <p>Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
62    pub response_parameters: ::std::option::Option<
63        ::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
64    >,
65    /// <p>The template selection expression for the integration. Supported only for WebSocket APIs.</p>
66    pub template_selection_expression: ::std::option::Option<::std::string::String>,
67    /// <p>Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.</p>
68    pub timeout_in_millis: ::std::option::Option<i32>,
69    /// <p>The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.</p>
70    pub tls_config: ::std::option::Option<crate::types::TlsConfig>,
71    _request_id: Option<String>,
72}
73impl UpdateIntegrationOutput {
74    /// <p>Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.</p>
75    pub fn api_gateway_managed(&self) -> ::std::option::Option<bool> {
76        self.api_gateway_managed
77    }
78    /// <p>The ID of the VPC link for a private integration. Supported only for HTTP APIs.</p>
79    pub fn connection_id(&self) -> ::std::option::Option<&str> {
80        self.connection_id.as_deref()
81    }
82    /// <p>The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.</p>
83    pub fn connection_type(&self) -> ::std::option::Option<&crate::types::ConnectionType> {
84        self.connection_type.as_ref()
85    }
86    /// <p>Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:</p>
87    /// <p>CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</p>
88    /// <p>CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.</p>
89    /// <p>If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.</p>
90    pub fn content_handling_strategy(&self) -> ::std::option::Option<&crate::types::ContentHandlingStrategy> {
91        self.content_handling_strategy.as_ref()
92    }
93    /// <p>Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.</p>
94    pub fn credentials_arn(&self) -> ::std::option::Option<&str> {
95        self.credentials_arn.as_deref()
96    }
97    /// <p>Represents the description of an integration.</p>
98    pub fn description(&self) -> ::std::option::Option<&str> {
99        self.description.as_deref()
100    }
101    /// <p>Represents the identifier of an integration.</p>
102    pub fn integration_id(&self) -> ::std::option::Option<&str> {
103        self.integration_id.as_deref()
104    }
105    /// <p>Specifies the integration's HTTP method type.</p>
106    pub fn integration_method(&self) -> ::std::option::Option<&str> {
107        self.integration_method.as_deref()
108    }
109    /// <p>The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.</p>
110    pub fn integration_response_selection_expression(&self) -> ::std::option::Option<&str> {
111        self.integration_response_selection_expression.as_deref()
112    }
113    /// <p>Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.</p>
114    pub fn integration_subtype(&self) -> ::std::option::Option<&str> {
115        self.integration_subtype.as_deref()
116    }
117    /// <p>The integration type of an integration. One of the following:</p>
118    /// <p>AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.</p>
119    /// <p>AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.</p>
120    /// <p>HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.</p>
121    /// <p>HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.</p>
122    /// <p>MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.</p>
123    pub fn integration_type(&self) -> ::std::option::Option<&crate::types::IntegrationType> {
124        self.integration_type.as_ref()
125    }
126    /// <p>For a Lambda integration, specify the URI of a Lambda function.</p>
127    /// <p>For an HTTP integration, specify a fully-qualified URL.</p>
128    /// <p>For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.</p>
129    pub fn integration_uri(&self) -> ::std::option::Option<&str> {
130        self.integration_uri.as_deref()
131    }
132    /// <p>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. Supported only for WebSocket APIs.</p>
133    /// <p>WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.</p>
134    /// <p>NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.</p>
135    /// <p>WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.</p>
136    pub fn passthrough_behavior(&self) -> ::std::option::Option<&crate::types::PassthroughBehavior> {
137        self.passthrough_behavior.as_ref()
138    }
139    /// <p>Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supported value. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html">Working with AWS Lambda proxy integrations for HTTP APIs</a>.</p>
140    pub fn payload_format_version(&self) -> ::std::option::Option<&str> {
141        self.payload_format_version.as_deref()
142    }
143    /// <p>For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. 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 backend. The method request parameter value must match the pattern of method.request.<replaceable>
144    /// {location}
145    /// </replaceable>.<replaceable>
146    /// {name}
147    /// </replaceable> , where <replaceable>
148    /// {location}
149    /// </replaceable> is querystring, path, or header; and <replaceable>
150    /// {name}
151    /// </replaceable> must be a valid and unique method request parameter name.</p>
152    /// <p>For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>.</p>
153    /// <p>For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
154    pub fn request_parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
155        self.request_parameters.as_ref()
156    }
157    /// <p>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. Supported only for WebSocket APIs.</p>
158    pub fn request_templates(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
159        self.request_templates.as_ref()
160    }
161    /// <p>Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
162    pub fn response_parameters(
163        &self,
164    ) -> ::std::option::Option<
165        &::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
166    > {
167        self.response_parameters.as_ref()
168    }
169    /// <p>The template selection expression for the integration. Supported only for WebSocket APIs.</p>
170    pub fn template_selection_expression(&self) -> ::std::option::Option<&str> {
171        self.template_selection_expression.as_deref()
172    }
173    /// <p>Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.</p>
174    pub fn timeout_in_millis(&self) -> ::std::option::Option<i32> {
175        self.timeout_in_millis
176    }
177    /// <p>The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.</p>
178    pub fn tls_config(&self) -> ::std::option::Option<&crate::types::TlsConfig> {
179        self.tls_config.as_ref()
180    }
181}
182impl ::aws_types::request_id::RequestId for UpdateIntegrationOutput {
183    fn request_id(&self) -> Option<&str> {
184        self._request_id.as_deref()
185    }
186}
187impl UpdateIntegrationOutput {
188    /// Creates a new builder-style object to manufacture [`UpdateIntegrationOutput`](crate::operation::update_integration::UpdateIntegrationOutput).
189    pub fn builder() -> crate::operation::update_integration::builders::UpdateIntegrationOutputBuilder {
190        crate::operation::update_integration::builders::UpdateIntegrationOutputBuilder::default()
191    }
192}
193
194/// A builder for [`UpdateIntegrationOutput`](crate::operation::update_integration::UpdateIntegrationOutput).
195#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
196#[non_exhaustive]
197pub struct UpdateIntegrationOutputBuilder {
198    pub(crate) api_gateway_managed: ::std::option::Option<bool>,
199    pub(crate) connection_id: ::std::option::Option<::std::string::String>,
200    pub(crate) connection_type: ::std::option::Option<crate::types::ConnectionType>,
201    pub(crate) content_handling_strategy: ::std::option::Option<crate::types::ContentHandlingStrategy>,
202    pub(crate) credentials_arn: ::std::option::Option<::std::string::String>,
203    pub(crate) description: ::std::option::Option<::std::string::String>,
204    pub(crate) integration_id: ::std::option::Option<::std::string::String>,
205    pub(crate) integration_method: ::std::option::Option<::std::string::String>,
206    pub(crate) integration_response_selection_expression: ::std::option::Option<::std::string::String>,
207    pub(crate) integration_subtype: ::std::option::Option<::std::string::String>,
208    pub(crate) integration_type: ::std::option::Option<crate::types::IntegrationType>,
209    pub(crate) integration_uri: ::std::option::Option<::std::string::String>,
210    pub(crate) passthrough_behavior: ::std::option::Option<crate::types::PassthroughBehavior>,
211    pub(crate) payload_format_version: ::std::option::Option<::std::string::String>,
212    pub(crate) request_parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
213    pub(crate) request_templates: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
214    pub(crate) response_parameters: ::std::option::Option<
215        ::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
216    >,
217    pub(crate) template_selection_expression: ::std::option::Option<::std::string::String>,
218    pub(crate) timeout_in_millis: ::std::option::Option<i32>,
219    pub(crate) tls_config: ::std::option::Option<crate::types::TlsConfig>,
220    _request_id: Option<String>,
221}
222impl UpdateIntegrationOutputBuilder {
223    /// <p>Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.</p>
224    pub fn api_gateway_managed(mut self, input: bool) -> Self {
225        self.api_gateway_managed = ::std::option::Option::Some(input);
226        self
227    }
228    /// <p>Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.</p>
229    pub fn set_api_gateway_managed(mut self, input: ::std::option::Option<bool>) -> Self {
230        self.api_gateway_managed = input;
231        self
232    }
233    /// <p>Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.</p>
234    pub fn get_api_gateway_managed(&self) -> &::std::option::Option<bool> {
235        &self.api_gateway_managed
236    }
237    /// <p>The ID of the VPC link for a private integration. Supported only for HTTP APIs.</p>
238    pub fn connection_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
239        self.connection_id = ::std::option::Option::Some(input.into());
240        self
241    }
242    /// <p>The ID of the VPC link for a private integration. Supported only for HTTP APIs.</p>
243    pub fn set_connection_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
244        self.connection_id = input;
245        self
246    }
247    /// <p>The ID of the VPC link for a private integration. Supported only for HTTP APIs.</p>
248    pub fn get_connection_id(&self) -> &::std::option::Option<::std::string::String> {
249        &self.connection_id
250    }
251    /// <p>The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.</p>
252    pub fn connection_type(mut self, input: crate::types::ConnectionType) -> Self {
253        self.connection_type = ::std::option::Option::Some(input);
254        self
255    }
256    /// <p>The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.</p>
257    pub fn set_connection_type(mut self, input: ::std::option::Option<crate::types::ConnectionType>) -> Self {
258        self.connection_type = input;
259        self
260    }
261    /// <p>The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.</p>
262    pub fn get_connection_type(&self) -> &::std::option::Option<crate::types::ConnectionType> {
263        &self.connection_type
264    }
265    /// <p>Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:</p>
266    /// <p>CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</p>
267    /// <p>CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.</p>
268    /// <p>If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.</p>
269    pub fn content_handling_strategy(mut self, input: crate::types::ContentHandlingStrategy) -> Self {
270        self.content_handling_strategy = ::std::option::Option::Some(input);
271        self
272    }
273    /// <p>Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:</p>
274    /// <p>CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</p>
275    /// <p>CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.</p>
276    /// <p>If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.</p>
277    pub fn set_content_handling_strategy(mut self, input: ::std::option::Option<crate::types::ContentHandlingStrategy>) -> Self {
278        self.content_handling_strategy = input;
279        self
280    }
281    /// <p>Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:</p>
282    /// <p>CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</p>
283    /// <p>CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.</p>
284    /// <p>If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.</p>
285    pub fn get_content_handling_strategy(&self) -> &::std::option::Option<crate::types::ContentHandlingStrategy> {
286        &self.content_handling_strategy
287    }
288    /// <p>Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.</p>
289    pub fn credentials_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
290        self.credentials_arn = ::std::option::Option::Some(input.into());
291        self
292    }
293    /// <p>Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.</p>
294    pub fn set_credentials_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
295        self.credentials_arn = input;
296        self
297    }
298    /// <p>Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.</p>
299    pub fn get_credentials_arn(&self) -> &::std::option::Option<::std::string::String> {
300        &self.credentials_arn
301    }
302    /// <p>Represents the description of an integration.</p>
303    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
304        self.description = ::std::option::Option::Some(input.into());
305        self
306    }
307    /// <p>Represents the description of an integration.</p>
308    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
309        self.description = input;
310        self
311    }
312    /// <p>Represents the description of an integration.</p>
313    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
314        &self.description
315    }
316    /// <p>Represents the identifier of an integration.</p>
317    pub fn integration_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
318        self.integration_id = ::std::option::Option::Some(input.into());
319        self
320    }
321    /// <p>Represents the identifier of an integration.</p>
322    pub fn set_integration_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
323        self.integration_id = input;
324        self
325    }
326    /// <p>Represents the identifier of an integration.</p>
327    pub fn get_integration_id(&self) -> &::std::option::Option<::std::string::String> {
328        &self.integration_id
329    }
330    /// <p>Specifies the integration's HTTP method type.</p>
331    pub fn integration_method(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
332        self.integration_method = ::std::option::Option::Some(input.into());
333        self
334    }
335    /// <p>Specifies the integration's HTTP method type.</p>
336    pub fn set_integration_method(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
337        self.integration_method = input;
338        self
339    }
340    /// <p>Specifies the integration's HTTP method type.</p>
341    pub fn get_integration_method(&self) -> &::std::option::Option<::std::string::String> {
342        &self.integration_method
343    }
344    /// <p>The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.</p>
345    pub fn integration_response_selection_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
346        self.integration_response_selection_expression = ::std::option::Option::Some(input.into());
347        self
348    }
349    /// <p>The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.</p>
350    pub fn set_integration_response_selection_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
351        self.integration_response_selection_expression = input;
352        self
353    }
354    /// <p>The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.</p>
355    pub fn get_integration_response_selection_expression(&self) -> &::std::option::Option<::std::string::String> {
356        &self.integration_response_selection_expression
357    }
358    /// <p>Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.</p>
359    pub fn integration_subtype(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
360        self.integration_subtype = ::std::option::Option::Some(input.into());
361        self
362    }
363    /// <p>Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.</p>
364    pub fn set_integration_subtype(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
365        self.integration_subtype = input;
366        self
367    }
368    /// <p>Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.</p>
369    pub fn get_integration_subtype(&self) -> &::std::option::Option<::std::string::String> {
370        &self.integration_subtype
371    }
372    /// <p>The integration type of an integration. One of the following:</p>
373    /// <p>AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.</p>
374    /// <p>AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.</p>
375    /// <p>HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.</p>
376    /// <p>HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.</p>
377    /// <p>MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.</p>
378    pub fn integration_type(mut self, input: crate::types::IntegrationType) -> Self {
379        self.integration_type = ::std::option::Option::Some(input);
380        self
381    }
382    /// <p>The integration type of an integration. One of the following:</p>
383    /// <p>AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.</p>
384    /// <p>AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.</p>
385    /// <p>HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.</p>
386    /// <p>HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.</p>
387    /// <p>MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.</p>
388    pub fn set_integration_type(mut self, input: ::std::option::Option<crate::types::IntegrationType>) -> Self {
389        self.integration_type = input;
390        self
391    }
392    /// <p>The integration type of an integration. One of the following:</p>
393    /// <p>AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.</p>
394    /// <p>AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.</p>
395    /// <p>HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.</p>
396    /// <p>HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.</p>
397    /// <p>MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.</p>
398    pub fn get_integration_type(&self) -> &::std::option::Option<crate::types::IntegrationType> {
399        &self.integration_type
400    }
401    /// <p>For a Lambda integration, specify the URI of a Lambda function.</p>
402    /// <p>For an HTTP integration, specify a fully-qualified URL.</p>
403    /// <p>For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.</p>
404    pub fn integration_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
405        self.integration_uri = ::std::option::Option::Some(input.into());
406        self
407    }
408    /// <p>For a Lambda integration, specify the URI of a Lambda function.</p>
409    /// <p>For an HTTP integration, specify a fully-qualified URL.</p>
410    /// <p>For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.</p>
411    pub fn set_integration_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
412        self.integration_uri = input;
413        self
414    }
415    /// <p>For a Lambda integration, specify the URI of a Lambda function.</p>
416    /// <p>For an HTTP integration, specify a fully-qualified URL.</p>
417    /// <p>For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.</p>
418    pub fn get_integration_uri(&self) -> &::std::option::Option<::std::string::String> {
419        &self.integration_uri
420    }
421    /// <p>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. Supported only for WebSocket APIs.</p>
422    /// <p>WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.</p>
423    /// <p>NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.</p>
424    /// <p>WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.</p>
425    pub fn passthrough_behavior(mut self, input: crate::types::PassthroughBehavior) -> Self {
426        self.passthrough_behavior = ::std::option::Option::Some(input);
427        self
428    }
429    /// <p>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. Supported only for WebSocket APIs.</p>
430    /// <p>WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.</p>
431    /// <p>NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.</p>
432    /// <p>WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.</p>
433    pub fn set_passthrough_behavior(mut self, input: ::std::option::Option<crate::types::PassthroughBehavior>) -> Self {
434        self.passthrough_behavior = input;
435        self
436    }
437    /// <p>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. Supported only for WebSocket APIs.</p>
438    /// <p>WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.</p>
439    /// <p>NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.</p>
440    /// <p>WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.</p>
441    pub fn get_passthrough_behavior(&self) -> &::std::option::Option<crate::types::PassthroughBehavior> {
442        &self.passthrough_behavior
443    }
444    /// <p>Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supported value. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html">Working with AWS Lambda proxy integrations for HTTP APIs</a>.</p>
445    pub fn payload_format_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
446        self.payload_format_version = ::std::option::Option::Some(input.into());
447        self
448    }
449    /// <p>Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supported value. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html">Working with AWS Lambda proxy integrations for HTTP APIs</a>.</p>
450    pub fn set_payload_format_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
451        self.payload_format_version = input;
452        self
453    }
454    /// <p>Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supported value. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html">Working with AWS Lambda proxy integrations for HTTP APIs</a>.</p>
455    pub fn get_payload_format_version(&self) -> &::std::option::Option<::std::string::String> {
456        &self.payload_format_version
457    }
458    /// Adds a key-value pair to `request_parameters`.
459    ///
460    /// To override the contents of this collection use [`set_request_parameters`](Self::set_request_parameters).
461    ///
462    /// <p>For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. 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 backend. The method request parameter value must match the pattern of method.request.<replaceable>
463    /// {location}
464    /// </replaceable>.<replaceable>
465    /// {name}
466    /// </replaceable> , where <replaceable>
467    /// {location}
468    /// </replaceable> is querystring, path, or header; and <replaceable>
469    /// {name}
470    /// </replaceable> must be a valid and unique method request parameter name.</p>
471    /// <p>For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>.</p>
472    /// <p>For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
473    pub fn request_parameters(
474        mut self,
475        k: impl ::std::convert::Into<::std::string::String>,
476        v: impl ::std::convert::Into<::std::string::String>,
477    ) -> Self {
478        let mut hash_map = self.request_parameters.unwrap_or_default();
479        hash_map.insert(k.into(), v.into());
480        self.request_parameters = ::std::option::Option::Some(hash_map);
481        self
482    }
483    /// <p>For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. 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 backend. The method request parameter value must match the pattern of method.request.<replaceable>
484    /// {location}
485    /// </replaceable>.<replaceable>
486    /// {name}
487    /// </replaceable> , where <replaceable>
488    /// {location}
489    /// </replaceable> is querystring, path, or header; and <replaceable>
490    /// {name}
491    /// </replaceable> must be a valid and unique method request parameter name.</p>
492    /// <p>For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>.</p>
493    /// <p>For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
494    pub fn set_request_parameters(
495        mut self,
496        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
497    ) -> Self {
498        self.request_parameters = input;
499        self
500    }
501    /// <p>For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. 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 backend. The method request parameter value must match the pattern of method.request.<replaceable>
502    /// {location}
503    /// </replaceable>.<replaceable>
504    /// {name}
505    /// </replaceable> , where <replaceable>
506    /// {location}
507    /// </replaceable> is querystring, path, or header; and <replaceable>
508    /// {name}
509    /// </replaceable> must be a valid and unique method request parameter name.</p>
510    /// <p>For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>.</p>
511    /// <p>For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
512    pub fn get_request_parameters(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
513        &self.request_parameters
514    }
515    /// Adds a key-value pair to `request_templates`.
516    ///
517    /// To override the contents of this collection use [`set_request_templates`](Self::set_request_templates).
518    ///
519    /// <p>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. Supported only for WebSocket APIs.</p>
520    pub fn request_templates(
521        mut self,
522        k: impl ::std::convert::Into<::std::string::String>,
523        v: impl ::std::convert::Into<::std::string::String>,
524    ) -> Self {
525        let mut hash_map = self.request_templates.unwrap_or_default();
526        hash_map.insert(k.into(), v.into());
527        self.request_templates = ::std::option::Option::Some(hash_map);
528        self
529    }
530    /// <p>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. Supported only for WebSocket APIs.</p>
531    pub fn set_request_templates(
532        mut self,
533        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
534    ) -> Self {
535        self.request_templates = input;
536        self
537    }
538    /// <p>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. Supported only for WebSocket APIs.</p>
539    pub fn get_request_templates(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
540        &self.request_templates
541    }
542    /// Adds a key-value pair to `response_parameters`.
543    ///
544    /// To override the contents of this collection use [`set_response_parameters`](Self::set_response_parameters).
545    ///
546    /// <p>Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
547    pub fn response_parameters(
548        mut self,
549        k: impl ::std::convert::Into<::std::string::String>,
550        v: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
551    ) -> Self {
552        let mut hash_map = self.response_parameters.unwrap_or_default();
553        hash_map.insert(k.into(), v);
554        self.response_parameters = ::std::option::Option::Some(hash_map);
555        self
556    }
557    /// <p>Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
558    pub fn set_response_parameters(
559        mut self,
560        input: ::std::option::Option<
561            ::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
562        >,
563    ) -> Self {
564        self.response_parameters = input;
565        self
566    }
567    /// <p>Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.</p>
568    pub fn get_response_parameters(
569        &self,
570    ) -> &::std::option::Option<
571        ::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
572    > {
573        &self.response_parameters
574    }
575    /// <p>The template selection expression for the integration. Supported only for WebSocket APIs.</p>
576    pub fn template_selection_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
577        self.template_selection_expression = ::std::option::Option::Some(input.into());
578        self
579    }
580    /// <p>The template selection expression for the integration. Supported only for WebSocket APIs.</p>
581    pub fn set_template_selection_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
582        self.template_selection_expression = input;
583        self
584    }
585    /// <p>The template selection expression for the integration. Supported only for WebSocket APIs.</p>
586    pub fn get_template_selection_expression(&self) -> &::std::option::Option<::std::string::String> {
587        &self.template_selection_expression
588    }
589    /// <p>Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.</p>
590    pub fn timeout_in_millis(mut self, input: i32) -> Self {
591        self.timeout_in_millis = ::std::option::Option::Some(input);
592        self
593    }
594    /// <p>Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.</p>
595    pub fn set_timeout_in_millis(mut self, input: ::std::option::Option<i32>) -> Self {
596        self.timeout_in_millis = input;
597        self
598    }
599    /// <p>Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.</p>
600    pub fn get_timeout_in_millis(&self) -> &::std::option::Option<i32> {
601        &self.timeout_in_millis
602    }
603    /// <p>The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.</p>
604    pub fn tls_config(mut self, input: crate::types::TlsConfig) -> Self {
605        self.tls_config = ::std::option::Option::Some(input);
606        self
607    }
608    /// <p>The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.</p>
609    pub fn set_tls_config(mut self, input: ::std::option::Option<crate::types::TlsConfig>) -> Self {
610        self.tls_config = input;
611        self
612    }
613    /// <p>The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.</p>
614    pub fn get_tls_config(&self) -> &::std::option::Option<crate::types::TlsConfig> {
615        &self.tls_config
616    }
617    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
618        self._request_id = Some(request_id.into());
619        self
620    }
621
622    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
623        self._request_id = request_id;
624        self
625    }
626    /// Consumes the builder and constructs a [`UpdateIntegrationOutput`](crate::operation::update_integration::UpdateIntegrationOutput).
627    pub fn build(self) -> crate::operation::update_integration::UpdateIntegrationOutput {
628        crate::operation::update_integration::UpdateIntegrationOutput {
629            api_gateway_managed: self.api_gateway_managed,
630            connection_id: self.connection_id,
631            connection_type: self.connection_type,
632            content_handling_strategy: self.content_handling_strategy,
633            credentials_arn: self.credentials_arn,
634            description: self.description,
635            integration_id: self.integration_id,
636            integration_method: self.integration_method,
637            integration_response_selection_expression: self.integration_response_selection_expression,
638            integration_subtype: self.integration_subtype,
639            integration_type: self.integration_type,
640            integration_uri: self.integration_uri,
641            passthrough_behavior: self.passthrough_behavior,
642            payload_format_version: self.payload_format_version,
643            request_parameters: self.request_parameters,
644            request_templates: self.request_templates,
645            response_parameters: self.response_parameters,
646            template_selection_expression: self.template_selection_expression,
647            timeout_in_millis: self.timeout_in_millis,
648            tls_config: self.tls_config,
649            _request_id: self._request_id,
650        }
651    }
652}