aws_sdk_ec2/operation/create_transit_gateway_vpc_attachment/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_transit_gateway_vpc_attachment::_create_transit_gateway_vpc_attachment_output::CreateTransitGatewayVpcAttachmentOutputBuilder;
3
4pub use crate::operation::create_transit_gateway_vpc_attachment::_create_transit_gateway_vpc_attachment_input::CreateTransitGatewayVpcAttachmentInputBuilder;
5
6impl crate::operation::create_transit_gateway_vpc_attachment::builders::CreateTransitGatewayVpcAttachmentInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_transit_gateway_vpc_attachment();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateTransitGatewayVpcAttachment`.
24///
25/// <p>Attaches the specified VPC to the specified transit gateway.</p>
26/// <p>If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is already attached, the new VPC CIDR range is not propagated to the default propagation route table.</p>
27/// <p>To send VPC traffic to an attached transit gateway, add a route to the VPC route table using <code>CreateRoute</code>.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateTransitGatewayVpcAttachmentFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_transit_gateway_vpc_attachment::builders::CreateTransitGatewayVpcAttachmentInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentOutput,
37        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentError,
38    > for CreateTransitGatewayVpcAttachmentFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentOutput,
46            crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateTransitGatewayVpcAttachmentFluentBuilder {
53    /// Creates a new `CreateTransitGatewayVpcAttachmentFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the CreateTransitGatewayVpcAttachment as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_transit_gateway_vpc_attachment::builders::CreateTransitGatewayVpcAttachmentInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachment::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachment::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentOutput,
99        crate::operation::create_transit_gateway_vpc_attachment::CreateTransitGatewayVpcAttachmentError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The ID of the transit gateway.</p>
114    pub fn transit_gateway_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.transit_gateway_id(input.into());
116        self
117    }
118    /// <p>The ID of the transit gateway.</p>
119    pub fn set_transit_gateway_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_transit_gateway_id(input);
121        self
122    }
123    /// <p>The ID of the transit gateway.</p>
124    pub fn get_transit_gateway_id(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_transit_gateway_id()
126    }
127    /// <p>The ID of the VPC.</p>
128    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.vpc_id(input.into());
130        self
131    }
132    /// <p>The ID of the VPC.</p>
133    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_vpc_id(input);
135        self
136    }
137    /// <p>The ID of the VPC.</p>
138    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_vpc_id()
140    }
141    ///
142    /// Appends an item to `SubnetIds`.
143    ///
144    /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
145    ///
146    /// <p>The IDs of one or more subnets. You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.</p>
147    pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148        self.inner = self.inner.subnet_ids(input.into());
149        self
150    }
151    /// <p>The IDs of one or more subnets. You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.</p>
152    pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
153        self.inner = self.inner.set_subnet_ids(input);
154        self
155    }
156    /// <p>The IDs of one or more subnets. You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.</p>
157    pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
158        self.inner.get_subnet_ids()
159    }
160    /// <p>The VPC attachment options.</p>
161    pub fn options(mut self, input: crate::types::CreateTransitGatewayVpcAttachmentRequestOptions) -> Self {
162        self.inner = self.inner.options(input);
163        self
164    }
165    /// <p>The VPC attachment options.</p>
166    pub fn set_options(mut self, input: ::std::option::Option<crate::types::CreateTransitGatewayVpcAttachmentRequestOptions>) -> Self {
167        self.inner = self.inner.set_options(input);
168        self
169    }
170    /// <p>The VPC attachment options.</p>
171    pub fn get_options(&self) -> &::std::option::Option<crate::types::CreateTransitGatewayVpcAttachmentRequestOptions> {
172        self.inner.get_options()
173    }
174    ///
175    /// Appends an item to `TagSpecifications`.
176    ///
177    /// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
178    ///
179    /// <p>The tags to apply to the VPC attachment.</p>
180    pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
181        self.inner = self.inner.tag_specifications(input);
182        self
183    }
184    /// <p>The tags to apply to the VPC attachment.</p>
185    pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
186        self.inner = self.inner.set_tag_specifications(input);
187        self
188    }
189    /// <p>The tags to apply to the VPC attachment.</p>
190    pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
191        self.inner.get_tag_specifications()
192    }
193    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
194    pub fn dry_run(mut self, input: bool) -> Self {
195        self.inner = self.inner.dry_run(input);
196        self
197    }
198    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
199    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
200        self.inner = self.inner.set_dry_run(input);
201        self
202    }
203    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
204    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
205        self.inner.get_dry_run()
206    }
207}