aws_sdk_rds/operation/modify_global_cluster/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::modify_global_cluster::_modify_global_cluster_output::ModifyGlobalClusterOutputBuilder;
3
4pub use crate::operation::modify_global_cluster::_modify_global_cluster_input::ModifyGlobalClusterInputBuilder;
5
6impl crate::operation::modify_global_cluster::builders::ModifyGlobalClusterInputBuilder {
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::modify_global_cluster::ModifyGlobalClusterOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::modify_global_cluster::ModifyGlobalClusterError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.modify_global_cluster();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `ModifyGlobalCluster`.
24///
25/// <p>Modifies a setting for an Amazon Aurora global database cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide</i>.</p><note>
26/// <p>This operation only applies to Aurora global database clusters.</p>
27/// </note>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct ModifyGlobalClusterFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::modify_global_cluster::builders::ModifyGlobalClusterInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::modify_global_cluster::ModifyGlobalClusterOutput,
37        crate::operation::modify_global_cluster::ModifyGlobalClusterError,
38    > for ModifyGlobalClusterFluentBuilder
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::modify_global_cluster::ModifyGlobalClusterOutput,
46            crate::operation::modify_global_cluster::ModifyGlobalClusterError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl ModifyGlobalClusterFluentBuilder {
53    /// Creates a new `ModifyGlobalClusterFluentBuilder`.
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 ModifyGlobalCluster as a reference.
62    pub fn as_input(&self) -> &crate::operation::modify_global_cluster::builders::ModifyGlobalClusterInputBuilder {
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::modify_global_cluster::ModifyGlobalClusterOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::modify_global_cluster::ModifyGlobalClusterError,
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::modify_global_cluster::ModifyGlobalCluster::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::modify_global_cluster::ModifyGlobalCluster::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::modify_global_cluster::ModifyGlobalClusterOutput,
99        crate::operation::modify_global_cluster::ModifyGlobalClusterError,
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 cluster identifier for the global cluster to modify. This parameter isn't case-sensitive.</p>
114    /// <p>Constraints:</p>
115    /// <ul>
116    /// <li>
117    /// <p>Must match the identifier of an existing global database cluster.</p></li>
118    /// </ul>
119    pub fn global_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
120        self.inner = self.inner.global_cluster_identifier(input.into());
121        self
122    }
123    /// <p>The cluster identifier for the global cluster to modify. This parameter isn't case-sensitive.</p>
124    /// <p>Constraints:</p>
125    /// <ul>
126    /// <li>
127    /// <p>Must match the identifier of an existing global database cluster.</p></li>
128    /// </ul>
129    pub fn set_global_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
130        self.inner = self.inner.set_global_cluster_identifier(input);
131        self
132    }
133    /// <p>The cluster identifier for the global cluster to modify. This parameter isn't case-sensitive.</p>
134    /// <p>Constraints:</p>
135    /// <ul>
136    /// <li>
137    /// <p>Must match the identifier of an existing global database cluster.</p></li>
138    /// </ul>
139    pub fn get_global_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
140        self.inner.get_global_cluster_identifier()
141    }
142    /// <p>The new cluster identifier for the global database cluster. This value is stored as a lowercase string.</p>
143    /// <p>Constraints:</p>
144    /// <ul>
145    /// <li>
146    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
147    /// <li>
148    /// <p>The first character must be a letter.</p></li>
149    /// <li>
150    /// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
151    /// </ul>
152    /// <p>Example: <code>my-cluster2</code></p>
153    pub fn new_global_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
154        self.inner = self.inner.new_global_cluster_identifier(input.into());
155        self
156    }
157    /// <p>The new cluster identifier for the global database cluster. This value is stored as a lowercase string.</p>
158    /// <p>Constraints:</p>
159    /// <ul>
160    /// <li>
161    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
162    /// <li>
163    /// <p>The first character must be a letter.</p></li>
164    /// <li>
165    /// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
166    /// </ul>
167    /// <p>Example: <code>my-cluster2</code></p>
168    pub fn set_new_global_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
169        self.inner = self.inner.set_new_global_cluster_identifier(input);
170        self
171    }
172    /// <p>The new cluster identifier for the global database cluster. This value is stored as a lowercase string.</p>
173    /// <p>Constraints:</p>
174    /// <ul>
175    /// <li>
176    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
177    /// <li>
178    /// <p>The first character must be a letter.</p></li>
179    /// <li>
180    /// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
181    /// </ul>
182    /// <p>Example: <code>my-cluster2</code></p>
183    pub fn get_new_global_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
184        self.inner.get_new_global_cluster_identifier()
185    }
186    /// <p>Specifies whether to enable deletion protection for the global database cluster. The global database cluster can't be deleted when deletion protection is enabled.</p>
187    pub fn deletion_protection(mut self, input: bool) -> Self {
188        self.inner = self.inner.deletion_protection(input);
189        self
190    }
191    /// <p>Specifies whether to enable deletion protection for the global database cluster. The global database cluster can't be deleted when deletion protection is enabled.</p>
192    pub fn set_deletion_protection(mut self, input: ::std::option::Option<bool>) -> Self {
193        self.inner = self.inner.set_deletion_protection(input);
194        self
195    }
196    /// <p>Specifies whether to enable deletion protection for the global database cluster. The global database cluster can't be deleted when deletion protection is enabled.</p>
197    pub fn get_deletion_protection(&self) -> &::std::option::Option<bool> {
198        self.inner.get_deletion_protection()
199    }
200    /// <p>The version number of the database engine to which you want to upgrade.</p>
201    /// <p>To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL-based Aurora global databases), use the following command:</p>
202    /// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
203    /// <p>To list all of the available engine versions for <code>aurora-postgresql</code> (for PostgreSQL-based Aurora global databases), use the following command:</p>
204    /// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
205    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
206        self.inner = self.inner.engine_version(input.into());
207        self
208    }
209    /// <p>The version number of the database engine to which you want to upgrade.</p>
210    /// <p>To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL-based Aurora global databases), use the following command:</p>
211    /// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
212    /// <p>To list all of the available engine versions for <code>aurora-postgresql</code> (for PostgreSQL-based Aurora global databases), use the following command:</p>
213    /// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
214    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215        self.inner = self.inner.set_engine_version(input);
216        self
217    }
218    /// <p>The version number of the database engine to which you want to upgrade.</p>
219    /// <p>To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL-based Aurora global databases), use the following command:</p>
220    /// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
221    /// <p>To list all of the available engine versions for <code>aurora-postgresql</code> (for PostgreSQL-based Aurora global databases), use the following command:</p>
222    /// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query '*\[\]|\[?SupportsGlobalDatabases == `true`\].\[EngineVersion\]'</code></p>
223    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
224        self.inner.get_engine_version()
225    }
226    /// <p>Specifies whether to allow major version upgrades.</p>
227    /// <p>Constraints: Must be enabled if you specify a value for the <code>EngineVersion</code> parameter that's a different major version than the global cluster's current version.</p>
228    /// <p>If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version. Apply any custom parameter groups after completing the upgrade.</p>
229    pub fn allow_major_version_upgrade(mut self, input: bool) -> Self {
230        self.inner = self.inner.allow_major_version_upgrade(input);
231        self
232    }
233    /// <p>Specifies whether to allow major version upgrades.</p>
234    /// <p>Constraints: Must be enabled if you specify a value for the <code>EngineVersion</code> parameter that's a different major version than the global cluster's current version.</p>
235    /// <p>If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version. Apply any custom parameter groups after completing the upgrade.</p>
236    pub fn set_allow_major_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
237        self.inner = self.inner.set_allow_major_version_upgrade(input);
238        self
239    }
240    /// <p>Specifies whether to allow major version upgrades.</p>
241    /// <p>Constraints: Must be enabled if you specify a value for the <code>EngineVersion</code> parameter that's a different major version than the global cluster's current version.</p>
242    /// <p>If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version. Apply any custom parameter groups after completing the upgrade.</p>
243    pub fn get_allow_major_version_upgrade(&self) -> &::std::option::Option<bool> {
244        self.inner.get_allow_major_version_upgrade()
245    }
246}