aws_sdk_grafana/operation/update_workspace_authentication/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_workspace_authentication::_update_workspace_authentication_output::UpdateWorkspaceAuthenticationOutputBuilder;
3
4pub use crate::operation::update_workspace_authentication::_update_workspace_authentication_input::UpdateWorkspaceAuthenticationInputBuilder;
5
6impl crate::operation::update_workspace_authentication::builders::UpdateWorkspaceAuthenticationInputBuilder {
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::update_workspace_authentication::UpdateWorkspaceAuthenticationOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_workspace_authentication();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateWorkspaceAuthentication`.
24///
25/// <p>Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the <code>Admin</code> and <code>Editor</code> roles in the workspace.</p><note>
26/// <p>Changes to the authentication method for a workspace may take a few minutes to take effect.</p>
27/// </note>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct UpdateWorkspaceAuthenticationFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::update_workspace_authentication::builders::UpdateWorkspaceAuthenticationInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationOutput,
37        crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationError,
38    > for UpdateWorkspaceAuthenticationFluentBuilder
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::update_workspace_authentication::UpdateWorkspaceAuthenticationOutput,
46            crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl UpdateWorkspaceAuthenticationFluentBuilder {
53    /// Creates a new `UpdateWorkspaceAuthenticationFluentBuilder`.
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 UpdateWorkspaceAuthentication as a reference.
62    pub fn as_input(&self) -> &crate::operation::update_workspace_authentication::builders::UpdateWorkspaceAuthenticationInputBuilder {
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::update_workspace_authentication::UpdateWorkspaceAuthenticationOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationError,
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::update_workspace_authentication::UpdateWorkspaceAuthentication::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::update_workspace_authentication::UpdateWorkspaceAuthentication::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::update_workspace_authentication::UpdateWorkspaceAuthenticationOutput,
99        crate::operation::update_workspace_authentication::UpdateWorkspaceAuthenticationError,
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    /// <p>The ID of the workspace to update the authentication for.</p>
114    pub fn workspace_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.workspace_id(input.into());
116        self
117    }
118    /// <p>The ID of the workspace to update the authentication for.</p>
119    pub fn set_workspace_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_workspace_id(input);
121        self
122    }
123    /// <p>The ID of the workspace to update the authentication for.</p>
124    pub fn get_workspace_id(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_workspace_id()
126    }
127    ///
128    /// Appends an item to `authenticationProviders`.
129    ///
130    /// To override the contents of this collection use [`set_authentication_providers`](Self::set_authentication_providers).
131    ///
132    /// <p>Specifies whether this workspace uses SAML 2.0, IAM Identity Center, or both to authenticate users for using the Grafana console within a workspace. For more information, see <a href="https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html">User authentication in Amazon Managed Grafana</a>.</p>
133    pub fn authentication_providers(mut self, input: crate::types::AuthenticationProviderTypes) -> Self {
134        self.inner = self.inner.authentication_providers(input);
135        self
136    }
137    /// <p>Specifies whether this workspace uses SAML 2.0, IAM Identity Center, or both to authenticate users for using the Grafana console within a workspace. For more information, see <a href="https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html">User authentication in Amazon Managed Grafana</a>.</p>
138    pub fn set_authentication_providers(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AuthenticationProviderTypes>>) -> Self {
139        self.inner = self.inner.set_authentication_providers(input);
140        self
141    }
142    /// <p>Specifies whether this workspace uses SAML 2.0, IAM Identity Center, or both to authenticate users for using the Grafana console within a workspace. For more information, see <a href="https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html">User authentication in Amazon Managed Grafana</a>.</p>
143    pub fn get_authentication_providers(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AuthenticationProviderTypes>> {
144        self.inner.get_authentication_providers()
145    }
146    /// <p>If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the <code>Admin</code> and <code>Editor</code> roles in the workspace.</p>
147    pub fn saml_configuration(mut self, input: crate::types::SamlConfiguration) -> Self {
148        self.inner = self.inner.saml_configuration(input);
149        self
150    }
151    /// <p>If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the <code>Admin</code> and <code>Editor</code> roles in the workspace.</p>
152    pub fn set_saml_configuration(mut self, input: ::std::option::Option<crate::types::SamlConfiguration>) -> Self {
153        self.inner = self.inner.set_saml_configuration(input);
154        self
155    }
156    /// <p>If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the <code>Admin</code> and <code>Editor</code> roles in the workspace.</p>
157    pub fn get_saml_configuration(&self) -> &::std::option::Option<crate::types::SamlConfiguration> {
158        self.inner.get_saml_configuration()
159    }
160}