aws_sdk_ssoadmin/operation/create_application/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_application::_create_application_output::CreateApplicationOutputBuilder;
3
4pub use crate::operation::create_application::_create_application_input::CreateApplicationInputBuilder;
5
6impl crate::operation::create_application::builders::CreateApplicationInputBuilder {
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_application::CreateApplicationOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_application::CreateApplicationError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_application();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateApplication`.
24///
25/// <p>Creates an OAuth 2.0 customer managed application in IAM Identity Center for the given application provider.</p><note>
26/// <p>This API does not support creating SAML 2.0 customer managed applications or Amazon Web Services managed applications. To learn how to create an Amazon Web Services managed application, see the application user guide. You can create a SAML 2.0 customer managed application in the Amazon Web Services Management Console only. See <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-setup.html">Setting up customer managed SAML 2.0 applications</a>. For more information on these application types, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps.html">Amazon Web Services managed applications</a>.</p>
27/// </note>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateApplicationFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_application::builders::CreateApplicationInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_application::CreateApplicationOutput,
37        crate::operation::create_application::CreateApplicationError,
38    > for CreateApplicationFluentBuilder
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_application::CreateApplicationOutput,
46            crate::operation::create_application::CreateApplicationError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateApplicationFluentBuilder {
53    /// Creates a new `CreateApplicationFluentBuilder`.
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 CreateApplication as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_application::builders::CreateApplicationInputBuilder {
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_application::CreateApplicationOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_application::CreateApplicationError,
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_application::CreateApplication::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_application::CreateApplication::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_application::CreateApplicationOutput,
99        crate::operation::create_application::CreateApplicationError,
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 ARN of the instance of IAM Identity Center under which the operation will run. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web Services General Reference</i>.</p>
114    pub fn instance_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.instance_arn(input.into());
116        self
117    }
118    /// <p>The ARN of the instance of IAM Identity Center under which the operation will run. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web Services General Reference</i>.</p>
119    pub fn set_instance_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_instance_arn(input);
121        self
122    }
123    /// <p>The ARN of the instance of IAM Identity Center under which the operation will run. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web Services General Reference</i>.</p>
124    pub fn get_instance_arn(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_instance_arn()
126    }
127    /// <p>The ARN of the application provider under which the operation will run.</p>
128    pub fn application_provider_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.application_provider_arn(input.into());
130        self
131    }
132    /// <p>The ARN of the application provider under which the operation will run.</p>
133    pub fn set_application_provider_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_application_provider_arn(input);
135        self
136    }
137    /// <p>The ARN of the application provider under which the operation will run.</p>
138    pub fn get_application_provider_arn(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_application_provider_arn()
140    }
141    /// <p>The name of the .</p>
142    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
143        self.inner = self.inner.name(input.into());
144        self
145    }
146    /// <p>The name of the .</p>
147    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
148        self.inner = self.inner.set_name(input);
149        self
150    }
151    /// <p>The name of the .</p>
152    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
153        self.inner.get_name()
154    }
155    /// <p>The description of the .</p>
156    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.description(input.into());
158        self
159    }
160    /// <p>The description of the .</p>
161    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162        self.inner = self.inner.set_description(input);
163        self
164    }
165    /// <p>The description of the .</p>
166    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
167        self.inner.get_description()
168    }
169    /// <p>A structure that describes the options for the portal associated with an application.</p>
170    pub fn portal_options(mut self, input: crate::types::PortalOptions) -> Self {
171        self.inner = self.inner.portal_options(input);
172        self
173    }
174    /// <p>A structure that describes the options for the portal associated with an application.</p>
175    pub fn set_portal_options(mut self, input: ::std::option::Option<crate::types::PortalOptions>) -> Self {
176        self.inner = self.inner.set_portal_options(input);
177        self
178    }
179    /// <p>A structure that describes the options for the portal associated with an application.</p>
180    pub fn get_portal_options(&self) -> &::std::option::Option<crate::types::PortalOptions> {
181        self.inner.get_portal_options()
182    }
183    ///
184    /// Appends an item to `Tags`.
185    ///
186    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
187    ///
188    /// <p>Specifies tags to be attached to the application.</p>
189    pub fn tags(mut self, input: crate::types::Tag) -> Self {
190        self.inner = self.inner.tags(input);
191        self
192    }
193    /// <p>Specifies tags to be attached to the application.</p>
194    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
195        self.inner = self.inner.set_tags(input);
196        self
197    }
198    /// <p>Specifies tags to be attached to the application.</p>
199    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
200        self.inner.get_tags()
201    }
202    /// <p>Specifies whether the application is enabled or disabled.</p>
203    pub fn status(mut self, input: crate::types::ApplicationStatus) -> Self {
204        self.inner = self.inner.status(input);
205        self
206    }
207    /// <p>Specifies whether the application is enabled or disabled.</p>
208    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ApplicationStatus>) -> Self {
209        self.inner = self.inner.set_status(input);
210        self
211    }
212    /// <p>Specifies whether the application is enabled or disabled.</p>
213    pub fn get_status(&self) -> &::std::option::Option<crate::types::ApplicationStatus> {
214        self.inner.get_status()
215    }
216    /// <p>Specifies a unique, case-sensitive ID that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
217    /// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
218    /// <p>If you retry the operation with the same <code>ClientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
219    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
220        self.inner = self.inner.client_token(input.into());
221        self
222    }
223    /// <p>Specifies a unique, case-sensitive ID that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
224    /// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
225    /// <p>If you retry the operation with the same <code>ClientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
226    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
227        self.inner = self.inner.set_client_token(input);
228        self
229    }
230    /// <p>Specifies a unique, case-sensitive ID that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
231    /// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
232    /// <p>If you retry the operation with the same <code>ClientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
233    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
234        self.inner.get_client_token()
235    }
236}