aws-sdk-redshiftserverless 1.99.0

AWS SDK for Redshift Serverless
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::get_identity_center_auth_token::_get_identity_center_auth_token_output::GetIdentityCenterAuthTokenOutputBuilder;

pub use crate::operation::get_identity_center_auth_token::_get_identity_center_auth_token_input::GetIdentityCenterAuthTokenInputBuilder;

impl crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.get_identity_center_auth_token();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `GetIdentityCenterAuthToken`.
///
/// <p>Returns an Identity Center authentication token for accessing Amazon Redshift Serverless workgroups.</p>
/// <p>The token provides secure access to data within the specified workgroups using Identity Center identity propagation. The token expires after a specified duration and must be refreshed for continued access.</p>
/// <p>The Identity and Access Management (IAM) user or role that runs GetIdentityCenterAuthToken must have appropriate permissions to access the specified workgroups and Identity Center integration must be configured for the workgroups.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct GetIdentityCenterAuthTokenFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
    > for GetIdentityCenterAuthTokenFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl GetIdentityCenterAuthTokenFluentBuilder {
    /// Creates a new `GetIdentityCenterAuthTokenFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the GetIdentityCenterAuthToken as a reference.
    pub fn as_input(&self) -> &crate::operation::get_identity_center_auth_token::builders::GetIdentityCenterAuthTokenInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthToken::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthToken::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenOutput,
        crate::operation::get_identity_center_auth_token::GetIdentityCenterAuthTokenError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    ///
    /// Appends an item to `workgroupNames`.
    ///
    /// To override the contents of this collection use [`set_workgroup_names`](Self::set_workgroup_names).
    ///
    /// <p>A list of workgroup names for which to generate the Identity Center authentication token.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must contain between 1 and 20 workgroup names.</p></li>
    /// <li>
    /// <p>Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.</p></li>
    /// <li>
    /// <p>All specified workgroups must have Identity Center integration enabled.</p></li>
    /// </ul>
    pub fn workgroup_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.workgroup_names(input.into());
        self
    }
    /// <p>A list of workgroup names for which to generate the Identity Center authentication token.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must contain between 1 and 20 workgroup names.</p></li>
    /// <li>
    /// <p>Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.</p></li>
    /// <li>
    /// <p>All specified workgroups must have Identity Center integration enabled.</p></li>
    /// </ul>
    pub fn set_workgroup_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.inner = self.inner.set_workgroup_names(input);
        self
    }
    /// <p>A list of workgroup names for which to generate the Identity Center authentication token.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must contain between 1 and 20 workgroup names.</p></li>
    /// <li>
    /// <p>Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.</p></li>
    /// <li>
    /// <p>All specified workgroups must have Identity Center integration enabled.</p></li>
    /// </ul>
    pub fn get_workgroup_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        self.inner.get_workgroup_names()
    }
}