aws_sdk_proton/operation/create_environment_account_connection/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_environment_account_connection::_create_environment_account_connection_output::CreateEnvironmentAccountConnectionOutputBuilder;
3
4pub use crate::operation::create_environment_account_connection::_create_environment_account_connection_input::CreateEnvironmentAccountConnectionInputBuilder;
5
6impl crate::operation::create_environment_account_connection::builders::CreateEnvironmentAccountConnectionInputBuilder {
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_environment_account_connection::CreateEnvironmentAccountConnectionOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_environment_account_connection();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateEnvironmentAccountConnection`.
24///
25/// <p>Create an environment account connection in an environment account so that environment infrastructure resources can be provisioned in the environment account from a management account.</p>
26/// <p>An environment account connection is a secure bi-directional connection between a <i>management account</i> and an <i>environment account</i> that maintains authorization and permissions. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-env-account-connections.html">Environment account connections</a> in the <i>Proton User guide</i>.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateEnvironmentAccountConnectionFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::create_environment_account_connection::builders::CreateEnvironmentAccountConnectionInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionOutput,
36        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionError,
37    > for CreateEnvironmentAccountConnectionFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionOutput,
45            crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl CreateEnvironmentAccountConnectionFluentBuilder {
52    /// Creates a new `CreateEnvironmentAccountConnectionFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the CreateEnvironmentAccountConnection as a reference.
61    pub fn as_input(&self) -> &crate::operation::create_environment_account_connection::builders::CreateEnvironmentAccountConnectionInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnection::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnection::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionOutput,
98        crate::operation::create_environment_account_connection::CreateEnvironmentAccountConnectionError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    /// <p>When included, if two identical requests are made with the same client token, Proton returns the environment account connection that the first request created.</p>
113    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.client_token(input.into());
115        self
116    }
117    /// <p>When included, if two identical requests are made with the same client token, Proton returns the environment account connection that the first request created.</p>
118    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.inner = self.inner.set_client_token(input);
120        self
121    }
122    /// <p>When included, if two identical requests are made with the same client token, Proton returns the environment account connection that the first request created.</p>
123    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
124        self.inner.get_client_token()
125    }
126    /// <p>The ID of the management account that accepts or rejects the environment account connection. You create and manage the Proton environment in this account. If the management account accepts the environment account connection, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.</p>
127    pub fn management_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128        self.inner = self.inner.management_account_id(input.into());
129        self
130    }
131    /// <p>The ID of the management account that accepts or rejects the environment account connection. You create and manage the Proton environment in this account. If the management account accepts the environment account connection, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.</p>
132    pub fn set_management_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133        self.inner = self.inner.set_management_account_id(input);
134        self
135    }
136    /// <p>The ID of the management account that accepts or rejects the environment account connection. You create and manage the Proton environment in this account. If the management account accepts the environment account connection, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.</p>
137    pub fn get_management_account_id(&self) -> &::std::option::Option<::std::string::String> {
138        self.inner.get_management_account_id()
139    }
140    /// <p>The Amazon Resource Name (ARN) of the IAM service role that's created in the environment account. Proton uses this role to provision infrastructure resources in the associated environment account.</p>
141    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
142        self.inner = self.inner.role_arn(input.into());
143        self
144    }
145    /// <p>The Amazon Resource Name (ARN) of the IAM service role that's created in the environment account. Proton uses this role to provision infrastructure resources in the associated environment account.</p>
146    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
147        self.inner = self.inner.set_role_arn(input);
148        self
149    }
150    /// <p>The Amazon Resource Name (ARN) of the IAM service role that's created in the environment account. Proton uses this role to provision infrastructure resources in the associated environment account.</p>
151    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
152        self.inner.get_role_arn()
153    }
154    /// <p>The name of the Proton environment that's created in the associated management account.</p>
155    pub fn environment_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
156        self.inner = self.inner.environment_name(input.into());
157        self
158    }
159    /// <p>The name of the Proton environment that's created in the associated management account.</p>
160    pub fn set_environment_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
161        self.inner = self.inner.set_environment_name(input);
162        self
163    }
164    /// <p>The name of the Proton environment that's created in the associated management account.</p>
165    pub fn get_environment_name(&self) -> &::std::option::Option<::std::string::String> {
166        self.inner.get_environment_name()
167    }
168    ///
169    /// Appends an item to `tags`.
170    ///
171    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
172    ///
173    /// <p>An optional list of metadata items that you can associate with the Proton environment account connection. A tag is a key-value pair.</p>
174    /// <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">Proton resources and tagging</a> in the <i>Proton User Guide</i>.</p>
175    pub fn tags(mut self, input: crate::types::Tag) -> Self {
176        self.inner = self.inner.tags(input);
177        self
178    }
179    /// <p>An optional list of metadata items that you can associate with the Proton environment account connection. A tag is a key-value pair.</p>
180    /// <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">Proton resources and tagging</a> in the <i>Proton User Guide</i>.</p>
181    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
182        self.inner = self.inner.set_tags(input);
183        self
184    }
185    /// <p>An optional list of metadata items that you can associate with the Proton environment account connection. A tag is a key-value pair.</p>
186    /// <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">Proton resources and tagging</a> in the <i>Proton User Guide</i>.</p>
187    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
188        self.inner.get_tags()
189    }
190    /// <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.</p>
191    /// <p>You must specify <code>componentRoleArn</code> to allow directly defined components to be associated with any environments running in this account.</p>
192    /// <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
193    pub fn component_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
194        self.inner = self.inner.component_role_arn(input.into());
195        self
196    }
197    /// <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.</p>
198    /// <p>You must specify <code>componentRoleArn</code> to allow directly defined components to be associated with any environments running in this account.</p>
199    /// <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
200    pub fn set_component_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
201        self.inner = self.inner.set_component_role_arn(input);
202        self
203    }
204    /// <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.</p>
205    /// <p>You must specify <code>componentRoleArn</code> to allow directly defined components to be associated with any environments running in this account.</p>
206    /// <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
207    pub fn get_component_role_arn(&self) -> &::std::option::Option<::std::string::String> {
208        self.inner.get_component_role_arn()
209    }
210    /// <p>The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.</p>
211    pub fn codebuild_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
212        self.inner = self.inner.codebuild_role_arn(input.into());
213        self
214    }
215    /// <p>The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.</p>
216    pub fn set_codebuild_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
217        self.inner = self.inner.set_codebuild_role_arn(input);
218        self
219    }
220    /// <p>The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.</p>
221    pub fn get_codebuild_role_arn(&self) -> &::std::option::Option<::std::string::String> {
222        self.inner.get_codebuild_role_arn()
223    }
224}