Skip to main content

aws_sdk_neptune/operation/failover_global_cluster/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::failover_global_cluster::_failover_global_cluster_input::FailoverGlobalClusterInputBuilder;
3
4pub use crate::operation::failover_global_cluster::_failover_global_cluster_output::FailoverGlobalClusterOutputBuilder;
5
6impl crate::operation::failover_global_cluster::builders::FailoverGlobalClusterInputBuilder {
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::failover_global_cluster::FailoverGlobalClusterOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::failover_global_cluster::FailoverGlobalClusterError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.failover_global_cluster();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `FailoverGlobalCluster`.
24///
25/// <p>Initiates the failover process for a Neptune global database.</p>
26/// <p>A failover for a Neptune global database promotes one of secondary read-only DB clusters to be the primary DB cluster and demotes the primary DB cluster to being a secondary (read-only) DB cluster. In other words, the role of the current primary DB cluster and the selected target secondary DB cluster are switched. The selected secondary DB cluster assumes full read/write capabilities for the Neptune global database.</p><note>
27/// <p>This action applies <b>only</b> to Neptune global databases. This action is only intended for use on healthy Neptune global databases with healthy Neptune DB clusters and no region-wide outages, to test disaster recovery scenarios or to reconfigure the global database topology.</p>
28/// </note>
29#[derive(::std::clone::Clone, ::std::fmt::Debug)]
30pub struct FailoverGlobalClusterFluentBuilder {
31    handle: ::std::sync::Arc<crate::client::Handle>,
32    inner: crate::operation::failover_global_cluster::builders::FailoverGlobalClusterInputBuilder,
33    config_override: ::std::option::Option<crate::config::Builder>,
34}
35impl
36    crate::client::customize::internal::CustomizableSend<
37        crate::operation::failover_global_cluster::FailoverGlobalClusterOutput,
38        crate::operation::failover_global_cluster::FailoverGlobalClusterError,
39    > for FailoverGlobalClusterFluentBuilder
40{
41    fn send(
42        self,
43        config_override: crate::config::Builder,
44    ) -> crate::client::customize::internal::BoxFuture<
45        crate::client::customize::internal::SendResult<
46            crate::operation::failover_global_cluster::FailoverGlobalClusterOutput,
47            crate::operation::failover_global_cluster::FailoverGlobalClusterError,
48        >,
49    > {
50        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
51    }
52}
53impl FailoverGlobalClusterFluentBuilder {
54    /// Creates a new `FailoverGlobalClusterFluentBuilder`.
55    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
56        Self {
57            handle,
58            inner: ::std::default::Default::default(),
59            config_override: ::std::option::Option::None,
60        }
61    }
62    /// Access the FailoverGlobalCluster as a reference.
63    pub fn as_input(&self) -> &crate::operation::failover_global_cluster::builders::FailoverGlobalClusterInputBuilder {
64        &self.inner
65    }
66    /// Sends the request and returns the response.
67    ///
68    /// If an error occurs, an `SdkError` will be returned with additional details that
69    /// can be matched against.
70    ///
71    /// By default, any retryable failures will be retried twice. Retry behavior
72    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
73    /// set when configuring the client.
74    pub async fn send(
75        self,
76    ) -> ::std::result::Result<
77        crate::operation::failover_global_cluster::FailoverGlobalClusterOutput,
78        ::aws_smithy_runtime_api::client::result::SdkError<
79            crate::operation::failover_global_cluster::FailoverGlobalClusterError,
80            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
81        >,
82    > {
83        let input = self
84            .inner
85            .build()
86            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
87        let runtime_plugins = crate::operation::failover_global_cluster::FailoverGlobalCluster::operation_runtime_plugins(
88            self.handle.runtime_plugins.clone(),
89            &self.handle.conf,
90            self.config_override,
91        );
92        crate::operation::failover_global_cluster::FailoverGlobalCluster::orchestrate(&runtime_plugins, input).await
93    }
94
95    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
96    pub fn customize(
97        self,
98    ) -> crate::client::customize::CustomizableOperation<
99        crate::operation::failover_global_cluster::FailoverGlobalClusterOutput,
100        crate::operation::failover_global_cluster::FailoverGlobalClusterError,
101        Self,
102    > {
103        crate::client::customize::CustomizableOperation::new(self)
104    }
105    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
106        self.set_config_override(::std::option::Option::Some(config_override.into()));
107        self
108    }
109
110    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
111        self.config_override = config_override;
112        self
113    }
114    /// <p>Identifier of the Neptune global database that should be failed over. The identifier is the unique key assigned by the user when the Neptune global database was created. In other words, it's the name of the global database that you want to fail over.</p>
115    /// <p>Constraints: Must match the identifier of an existing Neptune global database.</p>
116    pub fn global_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
117        self.inner = self.inner.global_cluster_identifier(input.into());
118        self
119    }
120    /// <p>Identifier of the Neptune global database that should be failed over. The identifier is the unique key assigned by the user when the Neptune global database was created. In other words, it's the name of the global database that you want to fail over.</p>
121    /// <p>Constraints: Must match the identifier of an existing Neptune global database.</p>
122    pub fn set_global_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
123        self.inner = self.inner.set_global_cluster_identifier(input);
124        self
125    }
126    /// <p>Identifier of the Neptune global database that should be failed over. The identifier is the unique key assigned by the user when the Neptune global database was created. In other words, it's the name of the global database that you want to fail over.</p>
127    /// <p>Constraints: Must match the identifier of an existing Neptune global database.</p>
128    pub fn get_global_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
129        self.inner.get_global_cluster_identifier()
130    }
131    /// <p>The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that you want to promote to primary for the global database.</p>
132    pub fn target_db_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
133        self.inner = self.inner.target_db_cluster_identifier(input.into());
134        self
135    }
136    /// <p>The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that you want to promote to primary for the global database.</p>
137    pub fn set_target_db_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
138        self.inner = self.inner.set_target_db_cluster_identifier(input);
139        self
140    }
141    /// <p>The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that you want to promote to primary for the global database.</p>
142    pub fn get_target_db_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
143        self.inner.get_target_db_cluster_identifier()
144    }
145    /// <p>Specifies whether to allow data loss for this global database cluster operation. Allowing data loss triggers a global failover operation.</p>
146    /// <p>If you don't specify <code>AllowDataLoss</code>, the global database cluster operation defaults to a switchover.</p>
147    /// <p>Constraints:Can't be specified together with the <code>Switchover</code> parameter.</p>
148    pub fn allow_data_loss(mut self, input: bool) -> Self {
149        self.inner = self.inner.allow_data_loss(input);
150        self
151    }
152    /// <p>Specifies whether to allow data loss for this global database cluster operation. Allowing data loss triggers a global failover operation.</p>
153    /// <p>If you don't specify <code>AllowDataLoss</code>, the global database cluster operation defaults to a switchover.</p>
154    /// <p>Constraints:Can't be specified together with the <code>Switchover</code> parameter.</p>
155    pub fn set_allow_data_loss(mut self, input: ::std::option::Option<bool>) -> Self {
156        self.inner = self.inner.set_allow_data_loss(input);
157        self
158    }
159    /// <p>Specifies whether to allow data loss for this global database cluster operation. Allowing data loss triggers a global failover operation.</p>
160    /// <p>If you don't specify <code>AllowDataLoss</code>, the global database cluster operation defaults to a switchover.</p>
161    /// <p>Constraints:Can't be specified together with the <code>Switchover</code> parameter.</p>
162    pub fn get_allow_data_loss(&self) -> &::std::option::Option<bool> {
163        self.inner.get_allow_data_loss()
164    }
165    /// <p>Specifies whether to switch over this global database cluster.</p>
166    /// <p>Constraints:Can't be specified together with the <code>AllowDataLoss</code> parameter.</p>
167    pub fn switchover(mut self, input: bool) -> Self {
168        self.inner = self.inner.switchover(input);
169        self
170    }
171    /// <p>Specifies whether to switch over this global database cluster.</p>
172    /// <p>Constraints:Can't be specified together with the <code>AllowDataLoss</code> parameter.</p>
173    pub fn set_switchover(mut self, input: ::std::option::Option<bool>) -> Self {
174        self.inner = self.inner.set_switchover(input);
175        self
176    }
177    /// <p>Specifies whether to switch over this global database cluster.</p>
178    /// <p>Constraints:Can't be specified together with the <code>AllowDataLoss</code> parameter.</p>
179    pub fn get_switchover(&self) -> &::std::option::Option<bool> {
180        self.inner.get_switchover()
181    }
182}