aws_sdk_iam/operation/update_saml_provider/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_saml_provider::_update_saml_provider_output::UpdateSamlProviderOutputBuilder;
3
4pub use crate::operation::update_saml_provider::_update_saml_provider_input::UpdateSamlProviderInputBuilder;
5
6impl crate::operation::update_saml_provider::builders::UpdateSamlProviderInputBuilder {
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_saml_provider::UpdateSamlProviderOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_saml_provider::UpdateSAMLProviderError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_saml_provider();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateSAMLProvider`.
24///
25/// <p>Updates the metadata document, SAML encryption settings, and private keys for an existing SAML provider. To rotate private keys, add your new private key and then remove the old key in a separate request.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct UpdateSAMLProviderFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::update_saml_provider::builders::UpdateSamlProviderInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::update_saml_provider::UpdateSamlProviderOutput,
35        crate::operation::update_saml_provider::UpdateSAMLProviderError,
36    > for UpdateSAMLProviderFluentBuilder
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::update_saml_provider::UpdateSamlProviderOutput,
44            crate::operation::update_saml_provider::UpdateSAMLProviderError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl UpdateSAMLProviderFluentBuilder {
51    /// Creates a new `UpdateSAMLProviderFluentBuilder`.
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 UpdateSAMLProvider as a reference.
60    pub fn as_input(&self) -> &crate::operation::update_saml_provider::builders::UpdateSamlProviderInputBuilder {
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::update_saml_provider::UpdateSamlProviderOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::update_saml_provider::UpdateSAMLProviderError,
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::update_saml_provider::UpdateSAMLProvider::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::update_saml_provider::UpdateSAMLProvider::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::update_saml_provider::UpdateSamlProviderOutput,
97        crate::operation::update_saml_provider::UpdateSAMLProviderError,
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>An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your IdP.</p>
112    pub fn saml_metadata_document(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.saml_metadata_document(input.into());
114        self
115    }
116    /// <p>An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your IdP.</p>
117    pub fn set_saml_metadata_document(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_saml_metadata_document(input);
119        self
120    }
121    /// <p>An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your IdP.</p>
122    pub fn get_saml_metadata_document(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_saml_metadata_document()
124    }
125    /// <p>The Amazon Resource Name (ARN) of the SAML provider to update.</p>
126    /// <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
127    pub fn saml_provider_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128        self.inner = self.inner.saml_provider_arn(input.into());
129        self
130    }
131    /// <p>The Amazon Resource Name (ARN) of the SAML provider to update.</p>
132    /// <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
133    pub fn set_saml_provider_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_saml_provider_arn(input);
135        self
136    }
137    /// <p>The Amazon Resource Name (ARN) of the SAML provider to update.</p>
138    /// <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
139    pub fn get_saml_provider_arn(&self) -> &::std::option::Option<::std::string::String> {
140        self.inner.get_saml_provider_arn()
141    }
142    /// <p>Specifies the encryption setting for the SAML provider.</p>
143    pub fn assertion_encryption_mode(mut self, input: crate::types::AssertionEncryptionModeType) -> Self {
144        self.inner = self.inner.assertion_encryption_mode(input);
145        self
146    }
147    /// <p>Specifies the encryption setting for the SAML provider.</p>
148    pub fn set_assertion_encryption_mode(mut self, input: ::std::option::Option<crate::types::AssertionEncryptionModeType>) -> Self {
149        self.inner = self.inner.set_assertion_encryption_mode(input);
150        self
151    }
152    /// <p>Specifies the encryption setting for the SAML provider.</p>
153    pub fn get_assertion_encryption_mode(&self) -> &::std::option::Option<crate::types::AssertionEncryptionModeType> {
154        self.inner.get_assertion_encryption_mode()
155    }
156    /// <p>Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.</p>
157    pub fn add_private_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
158        self.inner = self.inner.add_private_key(input.into());
159        self
160    }
161    /// <p>Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.</p>
162    pub fn set_add_private_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
163        self.inner = self.inner.set_add_private_key(input);
164        self
165    }
166    /// <p>Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.</p>
167    pub fn get_add_private_key(&self) -> &::std::option::Option<::std::string::String> {
168        self.inner.get_add_private_key()
169    }
170    /// <p>The Key ID of the private key to remove.</p>
171    pub fn remove_private_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
172        self.inner = self.inner.remove_private_key(input.into());
173        self
174    }
175    /// <p>The Key ID of the private key to remove.</p>
176    pub fn set_remove_private_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
177        self.inner = self.inner.set_remove_private_key(input);
178        self
179    }
180    /// <p>The Key ID of the private key to remove.</p>
181    pub fn get_remove_private_key(&self) -> &::std::option::Option<::std::string::String> {
182        self.inner.get_remove_private_key()
183    }
184}