aws_sdk_cognitoidentityprovider/operation/delete_user_attributes/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::delete_user_attributes::_delete_user_attributes_output::DeleteUserAttributesOutputBuilder;
3
4pub use crate::operation::delete_user_attributes::_delete_user_attributes_input::DeleteUserAttributesInputBuilder;
5
6impl crate::operation::delete_user_attributes::builders::DeleteUserAttributesInputBuilder {
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::delete_user_attributes::DeleteUserAttributesOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::delete_user_attributes::DeleteUserAttributesError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.delete_user_attributes();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DeleteUserAttributes`.
24///
25/// <p>Deletes attributes from the currently signed-in user. For example, your application can submit a request to this operation when a user wants to remove their <code>birthdate</code> attribute value.</p>
26/// <p>Authorize this action with a signed-in user's access token. It must include the scope <code>aws.cognito.signin.user.admin</code>.</p><note>
27/// <p>Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html">Using the Amazon Cognito user pools API and user pool endpoints</a>.</p>
28/// </note>
29#[derive(::std::clone::Clone, ::std::fmt::Debug)]
30pub struct DeleteUserAttributesFluentBuilder {
31    handle: ::std::sync::Arc<crate::client::Handle>,
32    inner: crate::operation::delete_user_attributes::builders::DeleteUserAttributesInputBuilder,
33    config_override: ::std::option::Option<crate::config::Builder>,
34}
35impl
36    crate::client::customize::internal::CustomizableSend<
37        crate::operation::delete_user_attributes::DeleteUserAttributesOutput,
38        crate::operation::delete_user_attributes::DeleteUserAttributesError,
39    > for DeleteUserAttributesFluentBuilder
40{
41    fn send(
42        self,
43        config_override: crate::config::Builder,
44    ) -> crate::client::customize::internal::BoxFuture<
45        crate::client::customize::internal::SendResult<
46            crate::operation::delete_user_attributes::DeleteUserAttributesOutput,
47            crate::operation::delete_user_attributes::DeleteUserAttributesError,
48        >,
49    > {
50        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
51    }
52}
53impl DeleteUserAttributesFluentBuilder {
54    /// Creates a new `DeleteUserAttributesFluentBuilder`.
55    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
56        Self {
57            handle,
58            inner: ::std::default::Default::default(),
59            config_override: ::std::option::Option::None,
60        }
61    }
62    /// Access the DeleteUserAttributes as a reference.
63    pub fn as_input(&self) -> &crate::operation::delete_user_attributes::builders::DeleteUserAttributesInputBuilder {
64        &self.inner
65    }
66    /// Sends the request and returns the response.
67    ///
68    /// If an error occurs, an `SdkError` will be returned with additional details that
69    /// can be matched against.
70    ///
71    /// By default, any retryable failures will be retried twice. Retry behavior
72    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
73    /// set when configuring the client.
74    pub async fn send(
75        self,
76    ) -> ::std::result::Result<
77        crate::operation::delete_user_attributes::DeleteUserAttributesOutput,
78        ::aws_smithy_runtime_api::client::result::SdkError<
79            crate::operation::delete_user_attributes::DeleteUserAttributesError,
80            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
81        >,
82    > {
83        let input = self
84            .inner
85            .build()
86            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
87        let runtime_plugins = crate::operation::delete_user_attributes::DeleteUserAttributes::operation_runtime_plugins(
88            self.handle.runtime_plugins.clone(),
89            &self.handle.conf,
90            self.config_override,
91        );
92        crate::operation::delete_user_attributes::DeleteUserAttributes::orchestrate(&runtime_plugins, input).await
93    }
94
95    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
96    pub fn customize(
97        self,
98    ) -> crate::client::customize::CustomizableOperation<
99        crate::operation::delete_user_attributes::DeleteUserAttributesOutput,
100        crate::operation::delete_user_attributes::DeleteUserAttributesError,
101        Self,
102    > {
103        crate::client::customize::CustomizableOperation::new(self)
104    }
105    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
106        self.set_config_override(::std::option::Option::Some(config_override.into()));
107        self
108    }
109
110    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
111        self.config_override = config_override;
112        self
113    }
114    ///
115    /// Appends an item to `UserAttributeNames`.
116    ///
117    /// To override the contents of this collection use [`set_user_attribute_names`](Self::set_user_attribute_names).
118    ///
119    /// <p>An array of strings representing the user attribute names you want to delete.</p>
120    /// <p>For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name, for example <code>custom:department</code>.</p>
121    pub fn user_attribute_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
122        self.inner = self.inner.user_attribute_names(input.into());
123        self
124    }
125    /// <p>An array of strings representing the user attribute names you want to delete.</p>
126    /// <p>For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name, for example <code>custom:department</code>.</p>
127    pub fn set_user_attribute_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
128        self.inner = self.inner.set_user_attribute_names(input);
129        self
130    }
131    /// <p>An array of strings representing the user attribute names you want to delete.</p>
132    /// <p>For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name, for example <code>custom:department</code>.</p>
133    pub fn get_user_attribute_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
134        self.inner.get_user_attribute_names()
135    }
136    /// <p>A valid access token that Amazon Cognito issued to the currently signed-in user. Must include a scope claim for <code>aws.cognito.signin.user.admin</code>.</p>
137    pub fn access_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
138        self.inner = self.inner.access_token(input.into());
139        self
140    }
141    /// <p>A valid access token that Amazon Cognito issued to the currently signed-in user. Must include a scope claim for <code>aws.cognito.signin.user.admin</code>.</p>
142    pub fn set_access_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
143        self.inner = self.inner.set_access_token(input);
144        self
145    }
146    /// <p>A valid access token that Amazon Cognito issued to the currently signed-in user. Must include a scope claim for <code>aws.cognito.signin.user.admin</code>.</p>
147    pub fn get_access_token(&self) -> &::std::option::Option<::std::string::String> {
148        self.inner.get_access_token()
149    }
150}