aws_sdk_apigatewayv2/operation/create_api/
_create_api_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Creates a new Api resource to represent an API.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreateApiInput {
7    /// <p>An API key selection expression. 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-apikey-selection-expressions">API Key Selection Expressions</a>.</p>
8    pub api_key_selection_expression: ::std::option::Option<::std::string::String>,
9    /// <p>A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.</p>
10    pub cors_configuration: ::std::option::Option<crate::types::Cors>,
11    /// <p>This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, 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 arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.</p>
12    pub credentials_arn: ::std::option::Option<::std::string::String>,
13    /// <p>The description of the API.</p>
14    pub description: ::std::option::Option<::std::string::String>,
15    /// <p>Avoid validating models when creating a deployment. Supported only for WebSocket APIs.</p>
16    pub disable_schema_validation: ::std::option::Option<bool>,
17    /// <p>Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.</p>
18    pub disable_execute_api_endpoint: ::std::option::Option<bool>,
19    /// <p>The IP address types that can invoke the API.</p>
20    pub ip_address_type: ::std::option::Option<crate::types::IpAddressType>,
21    /// <p>The name of the API.</p>
22    pub name: ::std::option::Option<::std::string::String>,
23    /// <p>The API protocol.</p>
24    pub protocol_type: ::std::option::Option<crate::types::ProtocolType>,
25    /// <p>This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.</p>
26    pub route_key: ::std::option::Option<::std::string::String>,
27    /// <p>The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.</p>
28    pub route_selection_expression: ::std::option::Option<::std::string::String>,
29    /// <p>The collection of tags. Each tag element is associated with a given resource.</p>
30    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
31    /// <p>This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.</p>
32    pub target: ::std::option::Option<::std::string::String>,
33    /// <p>A version identifier for the API.</p>
34    pub version: ::std::option::Option<::std::string::String>,
35}
36impl CreateApiInput {
37    /// <p>An API key selection expression. 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-apikey-selection-expressions">API Key Selection Expressions</a>.</p>
38    pub fn api_key_selection_expression(&self) -> ::std::option::Option<&str> {
39        self.api_key_selection_expression.as_deref()
40    }
41    /// <p>A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.</p>
42    pub fn cors_configuration(&self) -> ::std::option::Option<&crate::types::Cors> {
43        self.cors_configuration.as_ref()
44    }
45    /// <p>This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, 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 arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.</p>
46    pub fn credentials_arn(&self) -> ::std::option::Option<&str> {
47        self.credentials_arn.as_deref()
48    }
49    /// <p>The description of the API.</p>
50    pub fn description(&self) -> ::std::option::Option<&str> {
51        self.description.as_deref()
52    }
53    /// <p>Avoid validating models when creating a deployment. Supported only for WebSocket APIs.</p>
54    pub fn disable_schema_validation(&self) -> ::std::option::Option<bool> {
55        self.disable_schema_validation
56    }
57    /// <p>Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.</p>
58    pub fn disable_execute_api_endpoint(&self) -> ::std::option::Option<bool> {
59        self.disable_execute_api_endpoint
60    }
61    /// <p>The IP address types that can invoke the API.</p>
62    pub fn ip_address_type(&self) -> ::std::option::Option<&crate::types::IpAddressType> {
63        self.ip_address_type.as_ref()
64    }
65    /// <p>The name of the API.</p>
66    pub fn name(&self) -> ::std::option::Option<&str> {
67        self.name.as_deref()
68    }
69    /// <p>The API protocol.</p>
70    pub fn protocol_type(&self) -> ::std::option::Option<&crate::types::ProtocolType> {
71        self.protocol_type.as_ref()
72    }
73    /// <p>This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.</p>
74    pub fn route_key(&self) -> ::std::option::Option<&str> {
75        self.route_key.as_deref()
76    }
77    /// <p>The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.</p>
78    pub fn route_selection_expression(&self) -> ::std::option::Option<&str> {
79        self.route_selection_expression.as_deref()
80    }
81    /// <p>The collection of tags. Each tag element is associated with a given resource.</p>
82    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
83        self.tags.as_ref()
84    }
85    /// <p>This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.</p>
86    pub fn target(&self) -> ::std::option::Option<&str> {
87        self.target.as_deref()
88    }
89    /// <p>A version identifier for the API.</p>
90    pub fn version(&self) -> ::std::option::Option<&str> {
91        self.version.as_deref()
92    }
93}
94impl CreateApiInput {
95    /// Creates a new builder-style object to manufacture [`CreateApiInput`](crate::operation::create_api::CreateApiInput).
96    pub fn builder() -> crate::operation::create_api::builders::CreateApiInputBuilder {
97        crate::operation::create_api::builders::CreateApiInputBuilder::default()
98    }
99}
100
101/// A builder for [`CreateApiInput`](crate::operation::create_api::CreateApiInput).
102#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
103#[non_exhaustive]
104pub struct CreateApiInputBuilder {
105    pub(crate) api_key_selection_expression: ::std::option::Option<::std::string::String>,
106    pub(crate) cors_configuration: ::std::option::Option<crate::types::Cors>,
107    pub(crate) credentials_arn: ::std::option::Option<::std::string::String>,
108    pub(crate) description: ::std::option::Option<::std::string::String>,
109    pub(crate) disable_schema_validation: ::std::option::Option<bool>,
110    pub(crate) disable_execute_api_endpoint: ::std::option::Option<bool>,
111    pub(crate) ip_address_type: ::std::option::Option<crate::types::IpAddressType>,
112    pub(crate) name: ::std::option::Option<::std::string::String>,
113    pub(crate) protocol_type: ::std::option::Option<crate::types::ProtocolType>,
114    pub(crate) route_key: ::std::option::Option<::std::string::String>,
115    pub(crate) route_selection_expression: ::std::option::Option<::std::string::String>,
116    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
117    pub(crate) target: ::std::option::Option<::std::string::String>,
118    pub(crate) version: ::std::option::Option<::std::string::String>,
119}
120impl CreateApiInputBuilder {
121    /// <p>An API key selection expression. 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-apikey-selection-expressions">API Key Selection Expressions</a>.</p>
122    pub fn api_key_selection_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
123        self.api_key_selection_expression = ::std::option::Option::Some(input.into());
124        self
125    }
126    /// <p>An API key selection expression. 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-apikey-selection-expressions">API Key Selection Expressions</a>.</p>
127    pub fn set_api_key_selection_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
128        self.api_key_selection_expression = input;
129        self
130    }
131    /// <p>An API key selection expression. 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-apikey-selection-expressions">API Key Selection Expressions</a>.</p>
132    pub fn get_api_key_selection_expression(&self) -> &::std::option::Option<::std::string::String> {
133        &self.api_key_selection_expression
134    }
135    /// <p>A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.</p>
136    pub fn cors_configuration(mut self, input: crate::types::Cors) -> Self {
137        self.cors_configuration = ::std::option::Option::Some(input);
138        self
139    }
140    /// <p>A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.</p>
141    pub fn set_cors_configuration(mut self, input: ::std::option::Option<crate::types::Cors>) -> Self {
142        self.cors_configuration = input;
143        self
144    }
145    /// <p>A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.</p>
146    pub fn get_cors_configuration(&self) -> &::std::option::Option<crate::types::Cors> {
147        &self.cors_configuration
148    }
149    /// <p>This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, 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 arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.</p>
150    pub fn credentials_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
151        self.credentials_arn = ::std::option::Option::Some(input.into());
152        self
153    }
154    /// <p>This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, 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 arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.</p>
155    pub fn set_credentials_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
156        self.credentials_arn = input;
157        self
158    }
159    /// <p>This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, 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 arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.</p>
160    pub fn get_credentials_arn(&self) -> &::std::option::Option<::std::string::String> {
161        &self.credentials_arn
162    }
163    /// <p>The description of the API.</p>
164    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
165        self.description = ::std::option::Option::Some(input.into());
166        self
167    }
168    /// <p>The description of the API.</p>
169    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
170        self.description = input;
171        self
172    }
173    /// <p>The description of the API.</p>
174    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
175        &self.description
176    }
177    /// <p>Avoid validating models when creating a deployment. Supported only for WebSocket APIs.</p>
178    pub fn disable_schema_validation(mut self, input: bool) -> Self {
179        self.disable_schema_validation = ::std::option::Option::Some(input);
180        self
181    }
182    /// <p>Avoid validating models when creating a deployment. Supported only for WebSocket APIs.</p>
183    pub fn set_disable_schema_validation(mut self, input: ::std::option::Option<bool>) -> Self {
184        self.disable_schema_validation = input;
185        self
186    }
187    /// <p>Avoid validating models when creating a deployment. Supported only for WebSocket APIs.</p>
188    pub fn get_disable_schema_validation(&self) -> &::std::option::Option<bool> {
189        &self.disable_schema_validation
190    }
191    /// <p>Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.</p>
192    pub fn disable_execute_api_endpoint(mut self, input: bool) -> Self {
193        self.disable_execute_api_endpoint = ::std::option::Option::Some(input);
194        self
195    }
196    /// <p>Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.</p>
197    pub fn set_disable_execute_api_endpoint(mut self, input: ::std::option::Option<bool>) -> Self {
198        self.disable_execute_api_endpoint = input;
199        self
200    }
201    /// <p>Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.</p>
202    pub fn get_disable_execute_api_endpoint(&self) -> &::std::option::Option<bool> {
203        &self.disable_execute_api_endpoint
204    }
205    /// <p>The IP address types that can invoke the API.</p>
206    pub fn ip_address_type(mut self, input: crate::types::IpAddressType) -> Self {
207        self.ip_address_type = ::std::option::Option::Some(input);
208        self
209    }
210    /// <p>The IP address types that can invoke the API.</p>
211    pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::IpAddressType>) -> Self {
212        self.ip_address_type = input;
213        self
214    }
215    /// <p>The IP address types that can invoke the API.</p>
216    pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::IpAddressType> {
217        &self.ip_address_type
218    }
219    /// <p>The name of the API.</p>
220    /// This field is required.
221    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
222        self.name = ::std::option::Option::Some(input.into());
223        self
224    }
225    /// <p>The name of the API.</p>
226    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
227        self.name = input;
228        self
229    }
230    /// <p>The name of the API.</p>
231    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
232        &self.name
233    }
234    /// <p>The API protocol.</p>
235    /// This field is required.
236    pub fn protocol_type(mut self, input: crate::types::ProtocolType) -> Self {
237        self.protocol_type = ::std::option::Option::Some(input);
238        self
239    }
240    /// <p>The API protocol.</p>
241    pub fn set_protocol_type(mut self, input: ::std::option::Option<crate::types::ProtocolType>) -> Self {
242        self.protocol_type = input;
243        self
244    }
245    /// <p>The API protocol.</p>
246    pub fn get_protocol_type(&self) -> &::std::option::Option<crate::types::ProtocolType> {
247        &self.protocol_type
248    }
249    /// <p>This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.</p>
250    pub fn route_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
251        self.route_key = ::std::option::Option::Some(input.into());
252        self
253    }
254    /// <p>This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.</p>
255    pub fn set_route_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
256        self.route_key = input;
257        self
258    }
259    /// <p>This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.</p>
260    pub fn get_route_key(&self) -> &::std::option::Option<::std::string::String> {
261        &self.route_key
262    }
263    /// <p>The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.</p>
264    pub fn route_selection_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
265        self.route_selection_expression = ::std::option::Option::Some(input.into());
266        self
267    }
268    /// <p>The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.</p>
269    pub fn set_route_selection_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
270        self.route_selection_expression = input;
271        self
272    }
273    /// <p>The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.</p>
274    pub fn get_route_selection_expression(&self) -> &::std::option::Option<::std::string::String> {
275        &self.route_selection_expression
276    }
277    /// Adds a key-value pair to `tags`.
278    ///
279    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
280    ///
281    /// <p>The collection of tags. Each tag element is associated with a given resource.</p>
282    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
283        let mut hash_map = self.tags.unwrap_or_default();
284        hash_map.insert(k.into(), v.into());
285        self.tags = ::std::option::Option::Some(hash_map);
286        self
287    }
288    /// <p>The collection of tags. Each tag element is associated with a given resource.</p>
289    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
290        self.tags = input;
291        self
292    }
293    /// <p>The collection of tags. Each tag element is associated with a given resource.</p>
294    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
295        &self.tags
296    }
297    /// <p>This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.</p>
298    pub fn target(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
299        self.target = ::std::option::Option::Some(input.into());
300        self
301    }
302    /// <p>This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.</p>
303    pub fn set_target(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
304        self.target = input;
305        self
306    }
307    /// <p>This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.</p>
308    pub fn get_target(&self) -> &::std::option::Option<::std::string::String> {
309        &self.target
310    }
311    /// <p>A version identifier for the API.</p>
312    pub fn version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
313        self.version = ::std::option::Option::Some(input.into());
314        self
315    }
316    /// <p>A version identifier for the API.</p>
317    pub fn set_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
318        self.version = input;
319        self
320    }
321    /// <p>A version identifier for the API.</p>
322    pub fn get_version(&self) -> &::std::option::Option<::std::string::String> {
323        &self.version
324    }
325    /// Consumes the builder and constructs a [`CreateApiInput`](crate::operation::create_api::CreateApiInput).
326    pub fn build(self) -> ::std::result::Result<crate::operation::create_api::CreateApiInput, ::aws_smithy_types::error::operation::BuildError> {
327        ::std::result::Result::Ok(crate::operation::create_api::CreateApiInput {
328            api_key_selection_expression: self.api_key_selection_expression,
329            cors_configuration: self.cors_configuration,
330            credentials_arn: self.credentials_arn,
331            description: self.description,
332            disable_schema_validation: self.disable_schema_validation,
333            disable_execute_api_endpoint: self.disable_execute_api_endpoint,
334            ip_address_type: self.ip_address_type,
335            name: self.name,
336            protocol_type: self.protocol_type,
337            route_key: self.route_key,
338            route_selection_expression: self.route_selection_expression,
339            tags: self.tags,
340            target: self.target,
341            version: self.version,
342        })
343    }
344}