aws_sdk_ec2/operation/delete_vpc/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::delete_vpc::_delete_vpc_output::DeleteVpcOutputBuilder;
3
4pub use crate::operation::delete_vpc::_delete_vpc_input::DeleteVpcInputBuilder;
5
6impl crate::operation::delete_vpc::builders::DeleteVpcInputBuilder {
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::delete_vpc::DeleteVpcOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::delete_vpc::DeleteVpcError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.delete_vpc();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DeleteVpc`.
24///
25/// <p>Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on. When you delete the VPC, it deletes the default security group, network ACL, and route table for the VPC.</p>
26/// <p>If you created a flow log for the VPC that you are deleting, note that flow logs for deleted VPCs are eventually automatically removed.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct DeleteVpcFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::delete_vpc::builders::DeleteVpcInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl crate::client::customize::internal::CustomizableSend<crate::operation::delete_vpc::DeleteVpcOutput, crate::operation::delete_vpc::DeleteVpcError>
34    for DeleteVpcFluentBuilder
35{
36    fn send(
37        self,
38        config_override: crate::config::Builder,
39    ) -> crate::client::customize::internal::BoxFuture<
40        crate::client::customize::internal::SendResult<crate::operation::delete_vpc::DeleteVpcOutput, crate::operation::delete_vpc::DeleteVpcError>,
41    > {
42        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
43    }
44}
45impl DeleteVpcFluentBuilder {
46    /// Creates a new `DeleteVpcFluentBuilder`.
47    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
48        Self {
49            handle,
50            inner: ::std::default::Default::default(),
51            config_override: ::std::option::Option::None,
52        }
53    }
54    /// Access the DeleteVpc as a reference.
55    pub fn as_input(&self) -> &crate::operation::delete_vpc::builders::DeleteVpcInputBuilder {
56        &self.inner
57    }
58    /// Sends the request and returns the response.
59    ///
60    /// If an error occurs, an `SdkError` will be returned with additional details that
61    /// can be matched against.
62    ///
63    /// By default, any retryable failures will be retried twice. Retry behavior
64    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
65    /// set when configuring the client.
66    pub async fn send(
67        self,
68    ) -> ::std::result::Result<
69        crate::operation::delete_vpc::DeleteVpcOutput,
70        ::aws_smithy_runtime_api::client::result::SdkError<
71            crate::operation::delete_vpc::DeleteVpcError,
72            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
73        >,
74    > {
75        let input = self
76            .inner
77            .build()
78            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
79        let runtime_plugins = crate::operation::delete_vpc::DeleteVpc::operation_runtime_plugins(
80            self.handle.runtime_plugins.clone(),
81            &self.handle.conf,
82            self.config_override,
83        );
84        crate::operation::delete_vpc::DeleteVpc::orchestrate(&runtime_plugins, input).await
85    }
86
87    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
88    pub fn customize(
89        self,
90    ) -> crate::client::customize::CustomizableOperation<
91        crate::operation::delete_vpc::DeleteVpcOutput,
92        crate::operation::delete_vpc::DeleteVpcError,
93        Self,
94    > {
95        crate::client::customize::CustomizableOperation::new(self)
96    }
97    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
98        self.set_config_override(::std::option::Option::Some(config_override.into()));
99        self
100    }
101
102    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
103        self.config_override = config_override;
104        self
105    }
106    /// <p>The ID of the VPC.</p>
107    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
108        self.inner = self.inner.vpc_id(input.into());
109        self
110    }
111    /// <p>The ID of the VPC.</p>
112    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
113        self.inner = self.inner.set_vpc_id(input);
114        self
115    }
116    /// <p>The ID of the VPC.</p>
117    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
118        self.inner.get_vpc_id()
119    }
120    /// <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>
121    pub fn dry_run(mut self, input: bool) -> Self {
122        self.inner = self.inner.dry_run(input);
123        self
124    }
125    /// <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>
126    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
127        self.inner = self.inner.set_dry_run(input);
128        self
129    }
130    /// <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>
131    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
132        self.inner.get_dry_run()
133    }
134}