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}