aws_sdk_apprunner/operation/create_vpc_connector/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_vpc_connector::_create_vpc_connector_output::CreateVpcConnectorOutputBuilder;
3
4pub use crate::operation::create_vpc_connector::_create_vpc_connector_input::CreateVpcConnectorInputBuilder;
5
6impl crate::operation::create_vpc_connector::builders::CreateVpcConnectorInputBuilder {
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_vpc_connector::CreateVpcConnectorOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_vpc_connector::CreateVpcConnectorError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_vpc_connector();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateVpcConnector`.
24///
25/// <p>Create an App Runner VPC connector resource. App Runner requires this resource when you want to associate your App Runner service to a custom Amazon Virtual Private Cloud (Amazon VPC).</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateVpcConnectorFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_vpc_connector::builders::CreateVpcConnectorInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_vpc_connector::CreateVpcConnectorOutput,
35        crate::operation::create_vpc_connector::CreateVpcConnectorError,
36    > for CreateVpcConnectorFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_vpc_connector::CreateVpcConnectorOutput,
44            crate::operation::create_vpc_connector::CreateVpcConnectorError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateVpcConnectorFluentBuilder {
51    /// Creates a new `CreateVpcConnectorFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateVpcConnector as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_vpc_connector::builders::CreateVpcConnectorInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_vpc_connector::CreateVpcConnectorOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_vpc_connector::CreateVpcConnectorError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_vpc_connector::CreateVpcConnector::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_vpc_connector::CreateVpcConnector::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_vpc_connector::CreateVpcConnectorOutput,
97        crate::operation::create_vpc_connector::CreateVpcConnectorError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>A name for the VPC connector.</p>
112    pub fn vpc_connector_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.vpc_connector_name(input.into());
114        self
115    }
116    /// <p>A name for the VPC connector.</p>
117    pub fn set_vpc_connector_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_vpc_connector_name(input);
119        self
120    }
121    /// <p>A name for the VPC connector.</p>
122    pub fn get_vpc_connector_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_vpc_connector_name()
124    }
125    ///
126    /// Appends an item to `Subnets`.
127    ///
128    /// To override the contents of this collection use [`set_subnets`](Self::set_subnets).
129    ///
130    /// <p>A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC. Specify IDs of subnets of a single Amazon VPC. App Runner determines the Amazon VPC from the subnets you specify.</p><note>
131    /// <p>App Runner currently only provides support for IPv4.</p>
132    /// </note>
133    pub fn subnets(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
134        self.inner = self.inner.subnets(input.into());
135        self
136    }
137    /// <p>A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC. Specify IDs of subnets of a single Amazon VPC. App Runner determines the Amazon VPC from the subnets you specify.</p><note>
138    /// <p>App Runner currently only provides support for IPv4.</p>
139    /// </note>
140    pub fn set_subnets(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
141        self.inner = self.inner.set_subnets(input);
142        self
143    }
144    /// <p>A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC. Specify IDs of subnets of a single Amazon VPC. App Runner determines the Amazon VPC from the subnets you specify.</p><note>
145    /// <p>App Runner currently only provides support for IPv4.</p>
146    /// </note>
147    pub fn get_subnets(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
148        self.inner.get_subnets()
149    }
150    ///
151    /// Appends an item to `SecurityGroups`.
152    ///
153    /// To override the contents of this collection use [`set_security_groups`](Self::set_security_groups).
154    ///
155    /// <p>A list of IDs of security groups that App Runner should use for access to Amazon Web Services resources under the specified subnets. If not specified, App Runner uses the default security group of the Amazon VPC. The default security group allows all outbound traffic.</p>
156    pub fn security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.security_groups(input.into());
158        self
159    }
160    /// <p>A list of IDs of security groups that App Runner should use for access to Amazon Web Services resources under the specified subnets. If not specified, App Runner uses the default security group of the Amazon VPC. The default security group allows all outbound traffic.</p>
161    pub fn set_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
162        self.inner = self.inner.set_security_groups(input);
163        self
164    }
165    /// <p>A list of IDs of security groups that App Runner should use for access to Amazon Web Services resources under the specified subnets. If not specified, App Runner uses the default security group of the Amazon VPC. The default security group allows all outbound traffic.</p>
166    pub fn get_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
167        self.inner.get_security_groups()
168    }
169    ///
170    /// Appends an item to `Tags`.
171    ///
172    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
173    ///
174    /// <p>A list of metadata items that you can associate with your VPC connector resource. A tag is a key-value pair.</p>
175    pub fn tags(mut self, input: crate::types::Tag) -> Self {
176        self.inner = self.inner.tags(input);
177        self
178    }
179    /// <p>A list of metadata items that you can associate with your VPC connector resource. A tag is a key-value pair.</p>
180    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
181        self.inner = self.inner.set_tags(input);
182        self
183    }
184    /// <p>A list of metadata items that you can associate with your VPC connector resource. A tag is a key-value pair.</p>
185    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
186        self.inner.get_tags()
187    }
188}