aws_sdk_paymentcryptography/operation/remove_key_replication_regions/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::remove_key_replication_regions::_remove_key_replication_regions_output::RemoveKeyReplicationRegionsOutputBuilder;
3
4pub use crate::operation::remove_key_replication_regions::_remove_key_replication_regions_input::RemoveKeyReplicationRegionsInputBuilder;
5
6impl crate::operation::remove_key_replication_regions::builders::RemoveKeyReplicationRegionsInputBuilder {
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::remove_key_replication_regions::RemoveKeyReplicationRegionsOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.remove_key_replication_regions();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `RemoveKeyReplicationRegions`.
24///
25/// <p>Removes Replication Regions from an existing Amazon Web Services Payment Cryptography key, disabling the key's availability for cryptographic operations in the specified Amazon Web Services Regions.</p>
26/// <p>When you remove Replication Regions, the key material is securely deleted from those regions and can no longer be used for cryptographic operations there. This operation is irreversible for the specified Amazon Web Services Regions. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-multi-region-replication.html">Multi-Region key replication</a>.</p><important>
27/// <p>Ensure that no active cryptographic operations or applications depend on the key in the regions you're removing before performing this operation.</p>
28/// </important>
29/// <p><b>Cross-account use:</b> This operation can't be used across different Amazon Web Services accounts.</p>
30/// <p><b>Related operations:</b></p>
31/// <ul>
32/// <li>
33/// <p><a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_AddKeyReplicationRegions.html">AddKeyReplicationRegions</a></p></li>
34/// <li>
35/// <p><a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DisableDefaultKeyReplicationRegions.html">DisableDefaultKeyReplicationRegions</a></p></li>
36/// </ul>
37#[derive(::std::clone::Clone, ::std::fmt::Debug)]
38pub struct RemoveKeyReplicationRegionsFluentBuilder {
39    handle: ::std::sync::Arc<crate::client::Handle>,
40    inner: crate::operation::remove_key_replication_regions::builders::RemoveKeyReplicationRegionsInputBuilder,
41    config_override: ::std::option::Option<crate::config::Builder>,
42}
43impl
44    crate::client::customize::internal::CustomizableSend<
45        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsOutput,
46        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsError,
47    > for RemoveKeyReplicationRegionsFluentBuilder
48{
49    fn send(
50        self,
51        config_override: crate::config::Builder,
52    ) -> crate::client::customize::internal::BoxFuture<
53        crate::client::customize::internal::SendResult<
54            crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsOutput,
55            crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsError,
56        >,
57    > {
58        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
59    }
60}
61impl RemoveKeyReplicationRegionsFluentBuilder {
62    /// Creates a new `RemoveKeyReplicationRegionsFluentBuilder`.
63    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
64        Self {
65            handle,
66            inner: ::std::default::Default::default(),
67            config_override: ::std::option::Option::None,
68        }
69    }
70    /// Access the RemoveKeyReplicationRegions as a reference.
71    pub fn as_input(&self) -> &crate::operation::remove_key_replication_regions::builders::RemoveKeyReplicationRegionsInputBuilder {
72        &self.inner
73    }
74    /// Sends the request and returns the response.
75    ///
76    /// If an error occurs, an `SdkError` will be returned with additional details that
77    /// can be matched against.
78    ///
79    /// By default, any retryable failures will be retried twice. Retry behavior
80    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
81    /// set when configuring the client.
82    pub async fn send(
83        self,
84    ) -> ::std::result::Result<
85        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsOutput,
86        ::aws_smithy_runtime_api::client::result::SdkError<
87            crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsError,
88            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
89        >,
90    > {
91        let input = self
92            .inner
93            .build()
94            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
95        let runtime_plugins = crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegions::operation_runtime_plugins(
96            self.handle.runtime_plugins.clone(),
97            &self.handle.conf,
98            self.config_override,
99        );
100        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegions::orchestrate(&runtime_plugins, input).await
101    }
102
103    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
104    pub fn customize(
105        self,
106    ) -> crate::client::customize::CustomizableOperation<
107        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsOutput,
108        crate::operation::remove_key_replication_regions::RemoveKeyReplicationRegionsError,
109        Self,
110    > {
111        crate::client::customize::CustomizableOperation::new(self)
112    }
113    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
114        self.set_config_override(::std::option::Option::Some(config_override.into()));
115        self
116    }
117
118    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
119        self.config_override = config_override;
120        self
121    }
122    /// <p>The key identifier (ARN or alias) of the key from which to remove replication regions.</p>
123    /// <p>This key must exist and have replication enabled in the specified regions.</p>
124    pub fn key_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
125        self.inner = self.inner.key_identifier(input.into());
126        self
127    }
128    /// <p>The key identifier (ARN or alias) of the key from which to remove replication regions.</p>
129    /// <p>This key must exist and have replication enabled in the specified regions.</p>
130    pub fn set_key_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
131        self.inner = self.inner.set_key_identifier(input);
132        self
133    }
134    /// <p>The key identifier (ARN or alias) of the key from which to remove replication regions.</p>
135    /// <p>This key must exist and have replication enabled in the specified regions.</p>
136    pub fn get_key_identifier(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_key_identifier()
138    }
139    ///
140    /// Appends an item to `ReplicationRegions`.
141    ///
142    /// To override the contents of this collection use [`set_replication_regions`](Self::set_replication_regions).
143    ///
144    /// <p>The list of Amazon Web Services Regions to remove from the key's replication configuration.</p>
145    /// <p>The key will no longer be available for cryptographic operations in these regions after removal. Ensure no active operations depend on the key in these regions before removal.</p>
146    pub fn replication_regions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
147        self.inner = self.inner.replication_regions(input.into());
148        self
149    }
150    /// <p>The list of Amazon Web Services Regions to remove from the key's replication configuration.</p>
151    /// <p>The key will no longer be available for cryptographic operations in these regions after removal. Ensure no active operations depend on the key in these regions before removal.</p>
152    pub fn set_replication_regions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
153        self.inner = self.inner.set_replication_regions(input);
154        self
155    }
156    /// <p>The list of Amazon Web Services Regions to remove from the key's replication configuration.</p>
157    /// <p>The key will no longer be available for cryptographic operations in these regions after removal. Ensure no active operations depend on the key in these regions before removal.</p>
158    pub fn get_replication_regions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
159        self.inner.get_replication_regions()
160    }
161}