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 <action>:<header|querystring|path>.<location>. 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 <action>:<header>.<location> 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 <action>:<header|querystring|path>.<location>. 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 <action>:<header>.<location> 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 <action>:<header|querystring|path>.<location>. 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 <action>:<header|querystring|path>.<location>. 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 <action>:<header|querystring|path>.<location>. 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 <action>:<header>.<location> 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 <action>:<header>.<location> 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 <action>:<header>.<location> 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}