aws_sdk_iam/operation/enable_mfa_device/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::enable_mfa_device::_enable_mfa_device_output::EnableMfaDeviceOutputBuilder;
3
4pub use crate::operation::enable_mfa_device::_enable_mfa_device_input::EnableMfaDeviceInputBuilder;
5
6impl crate::operation::enable_mfa_device::builders::EnableMfaDeviceInputBuilder {
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::enable_mfa_device::EnableMfaDeviceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::enable_mfa_device::EnableMFADeviceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.enable_mfa_device();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `EnableMFADevice`.
24///
25/// <p>Enables the specified MFA device and associates it with the specified IAM user. When enabled, the MFA device is required for every subsequent login by the IAM user associated with the device.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct EnableMFADeviceFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::enable_mfa_device::builders::EnableMfaDeviceInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::enable_mfa_device::EnableMfaDeviceOutput,
35        crate::operation::enable_mfa_device::EnableMFADeviceError,
36    > for EnableMFADeviceFluentBuilder
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::enable_mfa_device::EnableMfaDeviceOutput,
44            crate::operation::enable_mfa_device::EnableMFADeviceError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl EnableMFADeviceFluentBuilder {
51    /// Creates a new `EnableMFADeviceFluentBuilder`.
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 EnableMFADevice as a reference.
60    pub fn as_input(&self) -> &crate::operation::enable_mfa_device::builders::EnableMfaDeviceInputBuilder {
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::enable_mfa_device::EnableMfaDeviceOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::enable_mfa_device::EnableMFADeviceError,
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::enable_mfa_device::EnableMFADevice::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::enable_mfa_device::EnableMFADevice::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::enable_mfa_device::EnableMfaDeviceOutput,
97        crate::operation::enable_mfa_device::EnableMFADeviceError,
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>The name of the IAM user for whom you want to enable the MFA device.</p>
112    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
113    pub fn user_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.user_name(input.into());
115        self
116    }
117    /// <p>The name of the IAM user for whom you want to enable the MFA device.</p>
118    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
119    pub fn set_user_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_user_name(input);
121        self
122    }
123    /// <p>The name of the IAM user for whom you want to enable the MFA device.</p>
124    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
125    pub fn get_user_name(&self) -> &::std::option::Option<::std::string::String> {
126        self.inner.get_user_name()
127    }
128    /// <p>The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.</p>
129    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-</p>
130    pub fn serial_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
131        self.inner = self.inner.serial_number(input.into());
132        self
133    }
134    /// <p>The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.</p>
135    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-</p>
136    pub fn set_serial_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
137        self.inner = self.inner.set_serial_number(input);
138        self
139    }
140    /// <p>The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.</p>
141    /// <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-</p>
142    pub fn get_serial_number(&self) -> &::std::option::Option<::std::string::String> {
143        self.inner.get_serial_number()
144    }
145    /// <p>An authentication code emitted by the device.</p>
146    /// <p>The format for this parameter is a string of six digits.</p><important>
147    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
148    /// </important>
149    pub fn authentication_code1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
150        self.inner = self.inner.authentication_code1(input.into());
151        self
152    }
153    /// <p>An authentication code emitted by the device.</p>
154    /// <p>The format for this parameter is a string of six digits.</p><important>
155    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
156    /// </important>
157    pub fn set_authentication_code1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
158        self.inner = self.inner.set_authentication_code1(input);
159        self
160    }
161    /// <p>An authentication code emitted by the device.</p>
162    /// <p>The format for this parameter is a string of six digits.</p><important>
163    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
164    /// </important>
165    pub fn get_authentication_code1(&self) -> &::std::option::Option<::std::string::String> {
166        self.inner.get_authentication_code1()
167    }
168    /// <p>A subsequent authentication code emitted by the device.</p>
169    /// <p>The format for this parameter is a string of six digits.</p><important>
170    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
171    /// </important>
172    pub fn authentication_code2(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
173        self.inner = self.inner.authentication_code2(input.into());
174        self
175    }
176    /// <p>A subsequent authentication code emitted by the device.</p>
177    /// <p>The format for this parameter is a string of six digits.</p><important>
178    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
179    /// </important>
180    pub fn set_authentication_code2(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
181        self.inner = self.inner.set_authentication_code2(input);
182        self
183    }
184    /// <p>A subsequent authentication code emitted by the device.</p>
185    /// <p>The format for this parameter is a string of six digits.</p><important>
186    /// <p>Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>.</p>
187    /// </important>
188    pub fn get_authentication_code2(&self) -> &::std::option::Option<::std::string::String> {
189        self.inner.get_authentication_code2()
190    }
191}