aws_sdk_redshift/operation/get_identity_center_auth_token/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_identity_center_auth_token::_get_identity_center_auth_token_output::GetIdentityCenterAuthTokenOutputBuilder;
3
4pub use crate::operation::get_identity_center_auth_token::_get_identity_center_auth_token_input::GetIdentityCenterAuthTokenInputBuilder;
5
6impl crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder {
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::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.get_identity_center_auth_token();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `GetIdentityCenterAuthToken`.
24///
25/// <p>Generates an encrypted authentication token that propagates the caller's Amazon Web Services IAM Identity Center identity to Amazon Redshift clusters. This API extracts the Amazon Web Services IAM Identity Center identity from enhanced credentials and creates a secure token that Amazon Redshift drivers can use for authentication.</p>
26/// <p>The token is encrypted using Key Management Service (KMS) and can only be decrypted by the specified Amazon Redshift clusters. The token contains the caller's Amazon Web Services IAM Identity Center identity information and is valid for a limited time period.</p>
27/// <p>This API is exclusively for use with Amazon Web Services IAM Identity Center enhanced credentials. If the caller is not using enhanced credentials with embedded Amazon Web Services IAM Identity Center identity, the API will return an error.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct GetIdentityCenterAuthTokenFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
37        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
38    > for GetIdentityCenterAuthTokenFluentBuilder
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::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
46            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl GetIdentityCenterAuthTokenFluentBuilder {
53    /// Creates a new `GetIdentityCenterAuthTokenFluentBuilder`.
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 GetIdentityCenterAuthToken as a reference.
62    pub fn as_input(&self) -> &crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder {
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::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
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::get_identity_center_auth_token::GetIdentityCenterAuthToken::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthToken::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::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
99        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
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    ///
114    /// Appends an item to `ClusterIds`.
115    ///
116    /// To override the contents of this collection use [`set_cluster_ids`](Self::set_cluster_ids).
117    ///
118    /// <p>A list of cluster identifiers that the generated token can be used with. The token will be scoped to only allow authentication to the specified clusters.</p>
119    /// <p>Constraints:</p>
120    /// <ul>
121    /// <li>
122    /// <p><code>ClusterIds</code> must contain at least 1 cluster identifier.</p></li>
123    /// <li>
124    /// <p><code>ClusterIds</code> can hold a maximum of 20 cluster identifiers.</p></li>
125    /// <li>
126    /// <p>Cluster identifiers must be 1 to 63 characters in length.</p></li>
127    /// <li>
128    /// <p>The characters accepted for cluster identifiers are the following:</p>
129    /// <ul>
130    /// <li>
131    /// <p>Alphanumeric characters</p></li>
132    /// <li>
133    /// <p>Hyphens</p></li>
134    /// </ul></li>
135    /// <li>
136    /// <p>Cluster identifiers must start with a letter.</p></li>
137    /// <li>
138    /// <p>Cluster identifiers can't end with a hyphen or contain two consecutive hyphens.</p></li>
139    /// </ul>
140    pub fn cluster_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.cluster_ids(input.into());
142        self
143    }
144    /// <p>A list of cluster identifiers that the generated token can be used with. The token will be scoped to only allow authentication to the specified clusters.</p>
145    /// <p>Constraints:</p>
146    /// <ul>
147    /// <li>
148    /// <p><code>ClusterIds</code> must contain at least 1 cluster identifier.</p></li>
149    /// <li>
150    /// <p><code>ClusterIds</code> can hold a maximum of 20 cluster identifiers.</p></li>
151    /// <li>
152    /// <p>Cluster identifiers must be 1 to 63 characters in length.</p></li>
153    /// <li>
154    /// <p>The characters accepted for cluster identifiers are the following:</p>
155    /// <ul>
156    /// <li>
157    /// <p>Alphanumeric characters</p></li>
158    /// <li>
159    /// <p>Hyphens</p></li>
160    /// </ul></li>
161    /// <li>
162    /// <p>Cluster identifiers must start with a letter.</p></li>
163    /// <li>
164    /// <p>Cluster identifiers can't end with a hyphen or contain two consecutive hyphens.</p></li>
165    /// </ul>
166    pub fn set_cluster_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
167        self.inner = self.inner.set_cluster_ids(input);
168        self
169    }
170    /// <p>A list of cluster identifiers that the generated token can be used with. The token will be scoped to only allow authentication to the specified clusters.</p>
171    /// <p>Constraints:</p>
172    /// <ul>
173    /// <li>
174    /// <p><code>ClusterIds</code> must contain at least 1 cluster identifier.</p></li>
175    /// <li>
176    /// <p><code>ClusterIds</code> can hold a maximum of 20 cluster identifiers.</p></li>
177    /// <li>
178    /// <p>Cluster identifiers must be 1 to 63 characters in length.</p></li>
179    /// <li>
180    /// <p>The characters accepted for cluster identifiers are the following:</p>
181    /// <ul>
182    /// <li>
183    /// <p>Alphanumeric characters</p></li>
184    /// <li>
185    /// <p>Hyphens</p></li>
186    /// </ul></li>
187    /// <li>
188    /// <p>Cluster identifiers must start with a letter.</p></li>
189    /// <li>
190    /// <p>Cluster identifiers can't end with a hyphen or contain two consecutive hyphens.</p></li>
191    /// </ul>
192    pub fn get_cluster_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
193        self.inner.get_cluster_ids()
194    }
195}