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}