aws_sdk_redshift/operation/modify_cluster/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::modify_cluster::_modify_cluster_output::ModifyClusterOutputBuilder;
3
4pub use crate::operation::modify_cluster::_modify_cluster_input::ModifyClusterInputBuilder;
5
6impl crate::operation::modify_cluster::builders::ModifyClusterInputBuilder {
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_cluster::ModifyClusterOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::modify_cluster::ModifyClusterError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.modify_cluster();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `ModifyCluster`.
24///
25/// <p>Modifies the settings for a cluster.</p>
26/// <p>You can also change node type and the number of nodes to scale up or down the cluster. When resizing a cluster, you must specify both the number of nodes and the node type even if one of the parameters does not change.</p>
27/// <p>You can add another security or parameter group, or change the admin user password. Resetting a cluster password or modifying the security groups associated with a cluster do not need a reboot. However, modifying a parameter group requires a reboot for parameters to take effect. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
28/// <p>VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. If a subnet group for a provisioned cluster is in an account with VPC BPA turned on, the following capabilities are blocked:</p>
29/// <ul>
30/// <li>
31/// <p>Creating a public cluster</p></li>
32/// <li>
33/// <p>Restoring a public cluster</p></li>
34/// <li>
35/// <p>Modifying a private cluster to be public</p></li>
36/// <li>
37/// <p>Adding a subnet with VPC BPA turned on to the subnet group when there's at least one public cluster within the group</p></li>
38/// </ul>
39/// <p>For more information about VPC BPA, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html">Block public access to VPCs and subnets</a> in the <i>Amazon VPC User Guide</i>.</p>
40#[derive(::std::clone::Clone, ::std::fmt::Debug)]
41pub struct ModifyClusterFluentBuilder {
42 handle: ::std::sync::Arc<crate::client::Handle>,
43 inner: crate::operation::modify_cluster::builders::ModifyClusterInputBuilder,
44 config_override: ::std::option::Option<crate::config::Builder>,
45}
46impl
47 crate::client::customize::internal::CustomizableSend<
48 crate::operation::modify_cluster::ModifyClusterOutput,
49 crate::operation::modify_cluster::ModifyClusterError,
50 > for ModifyClusterFluentBuilder
51{
52 fn send(
53 self,
54 config_override: crate::config::Builder,
55 ) -> crate::client::customize::internal::BoxFuture<
56 crate::client::customize::internal::SendResult<
57 crate::operation::modify_cluster::ModifyClusterOutput,
58 crate::operation::modify_cluster::ModifyClusterError,
59 >,
60 > {
61 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
62 }
63}
64impl ModifyClusterFluentBuilder {
65 /// Creates a new `ModifyClusterFluentBuilder`.
66 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
67 Self {
68 handle,
69 inner: ::std::default::Default::default(),
70 config_override: ::std::option::Option::None,
71 }
72 }
73 /// Access the ModifyCluster as a reference.
74 pub fn as_input(&self) -> &crate::operation::modify_cluster::builders::ModifyClusterInputBuilder {
75 &self.inner
76 }
77 /// Sends the request and returns the response.
78 ///
79 /// If an error occurs, an `SdkError` will be returned with additional details that
80 /// can be matched against.
81 ///
82 /// By default, any retryable failures will be retried twice. Retry behavior
83 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
84 /// set when configuring the client.
85 pub async fn send(
86 self,
87 ) -> ::std::result::Result<
88 crate::operation::modify_cluster::ModifyClusterOutput,
89 ::aws_smithy_runtime_api::client::result::SdkError<
90 crate::operation::modify_cluster::ModifyClusterError,
91 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
92 >,
93 > {
94 let input = self
95 .inner
96 .build()
97 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
98 let runtime_plugins = crate::operation::modify_cluster::ModifyCluster::operation_runtime_plugins(
99 self.handle.runtime_plugins.clone(),
100 &self.handle.conf,
101 self.config_override,
102 );
103 crate::operation::modify_cluster::ModifyCluster::orchestrate(&runtime_plugins, input).await
104 }
105
106 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
107 pub fn customize(
108 self,
109 ) -> crate::client::customize::CustomizableOperation<
110 crate::operation::modify_cluster::ModifyClusterOutput,
111 crate::operation::modify_cluster::ModifyClusterError,
112 Self,
113 > {
114 crate::client::customize::CustomizableOperation::new(self)
115 }
116 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
117 self.set_config_override(::std::option::Option::Some(config_override.into()));
118 self
119 }
120
121 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
122 self.config_override = config_override;
123 self
124 }
125 /// <p>The unique identifier of the cluster to be modified.</p>
126 /// <p>Example: <code>examplecluster</code></p>
127 pub fn cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128 self.inner = self.inner.cluster_identifier(input.into());
129 self
130 }
131 /// <p>The unique identifier of the cluster to be modified.</p>
132 /// <p>Example: <code>examplecluster</code></p>
133 pub fn set_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134 self.inner = self.inner.set_cluster_identifier(input);
135 self
136 }
137 /// <p>The unique identifier of the cluster to be modified.</p>
138 /// <p>Example: <code>examplecluster</code></p>
139 pub fn get_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
140 self.inner.get_cluster_identifier()
141 }
142 /// <p>The new cluster type.</p>
143 /// <p>When you submit your cluster resize request, your existing cluster goes into a read-only mode. After Amazon Redshift provisions a new cluster based on your resize requirements, there will be outage for a period while the old cluster is deleted and your connection is switched to the new cluster. You can use <code>DescribeResize</code> to track the progress of the resize request.</p>
144 /// <p>Valid Values: <code> multi-node | single-node </code></p>
145 pub fn cluster_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
146 self.inner = self.inner.cluster_type(input.into());
147 self
148 }
149 /// <p>The new cluster type.</p>
150 /// <p>When you submit your cluster resize request, your existing cluster goes into a read-only mode. After Amazon Redshift provisions a new cluster based on your resize requirements, there will be outage for a period while the old cluster is deleted and your connection is switched to the new cluster. You can use <code>DescribeResize</code> to track the progress of the resize request.</p>
151 /// <p>Valid Values: <code> multi-node | single-node </code></p>
152 pub fn set_cluster_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153 self.inner = self.inner.set_cluster_type(input);
154 self
155 }
156 /// <p>The new cluster type.</p>
157 /// <p>When you submit your cluster resize request, your existing cluster goes into a read-only mode. After Amazon Redshift provisions a new cluster based on your resize requirements, there will be outage for a period while the old cluster is deleted and your connection is switched to the new cluster. You can use <code>DescribeResize</code> to track the progress of the resize request.</p>
158 /// <p>Valid Values: <code> multi-node | single-node </code></p>
159 pub fn get_cluster_type(&self) -> &::std::option::Option<::std::string::String> {
160 self.inner.get_cluster_type()
161 }
162 /// <p>The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.</p>
163 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
164 /// <p>Valid Values: <code>dc2.large</code> | <code>dc2.8xlarge</code> | <code>ra3.large</code> | <code>ra3.xlplus</code> | <code>ra3.4xlarge</code> | <code>ra3.16xlarge</code></p>
165 pub fn node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
166 self.inner = self.inner.node_type(input.into());
167 self
168 }
169 /// <p>The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.</p>
170 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
171 /// <p>Valid Values: <code>dc2.large</code> | <code>dc2.8xlarge</code> | <code>ra3.large</code> | <code>ra3.xlplus</code> | <code>ra3.4xlarge</code> | <code>ra3.16xlarge</code></p>
172 pub fn set_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
173 self.inner = self.inner.set_node_type(input);
174 self
175 }
176 /// <p>The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.</p>
177 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
178 /// <p>Valid Values: <code>dc2.large</code> | <code>dc2.8xlarge</code> | <code>ra3.large</code> | <code>ra3.xlplus</code> | <code>ra3.4xlarge</code> | <code>ra3.16xlarge</code></p>
179 pub fn get_node_type(&self) -> &::std::option::Option<::std::string::String> {
180 self.inner.get_node_type()
181 }
182 /// <p>The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter.</p>
183 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
184 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
185 pub fn number_of_nodes(mut self, input: i32) -> Self {
186 self.inner = self.inner.number_of_nodes(input);
187 self
188 }
189 /// <p>The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter.</p>
190 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
191 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
192 pub fn set_number_of_nodes(mut self, input: ::std::option::Option<i32>) -> Self {
193 self.inner = self.inner.set_number_of_nodes(input);
194 self
195 }
196 /// <p>The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter.</p>
197 /// <p>For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
198 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
199 pub fn get_number_of_nodes(&self) -> &::std::option::Option<i32> {
200 self.inner.get_number_of_nodes()
201 }
202 ///
203 /// Appends an item to `ClusterSecurityGroups`.
204 ///
205 /// To override the contents of this collection use [`set_cluster_security_groups`](Self::set_cluster_security_groups).
206 ///
207 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
208 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
209 /// <p>Constraints:</p>
210 /// <ul>
211 /// <li>
212 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
213 /// <li>
214 /// <p>First character must be a letter</p></li>
215 /// <li>
216 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
217 /// </ul>
218 pub fn cluster_security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
219 self.inner = self.inner.cluster_security_groups(input.into());
220 self
221 }
222 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
223 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
224 /// <p>Constraints:</p>
225 /// <ul>
226 /// <li>
227 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
228 /// <li>
229 /// <p>First character must be a letter</p></li>
230 /// <li>
231 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
232 /// </ul>
233 pub fn set_cluster_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
234 self.inner = self.inner.set_cluster_security_groups(input);
235 self
236 }
237 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
238 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
239 /// <p>Constraints:</p>
240 /// <ul>
241 /// <li>
242 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
243 /// <li>
244 /// <p>First character must be a letter</p></li>
245 /// <li>
246 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
247 /// </ul>
248 pub fn get_cluster_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
249 self.inner.get_cluster_security_groups()
250 }
251 ///
252 /// Appends an item to `VpcSecurityGroupIds`.
253 ///
254 /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
255 ///
256 /// <p>A list of virtual private cloud (VPC) security groups to be associated with the cluster. This change is asynchronously applied as soon as possible.</p>
257 pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
258 self.inner = self.inner.vpc_security_group_ids(input.into());
259 self
260 }
261 /// <p>A list of virtual private cloud (VPC) security groups to be associated with the cluster. This change is asynchronously applied as soon as possible.</p>
262 pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
263 self.inner = self.inner.set_vpc_security_group_ids(input);
264 self
265 }
266 /// <p>A list of virtual private cloud (VPC) security groups to be associated with the cluster. This change is asynchronously applied as soon as possible.</p>
267 pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
268 self.inner.get_vpc_security_group_ids()
269 }
270 /// <p>The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the <code>MasterUserPassword</code> element exists in the <code>PendingModifiedValues</code> element of the operation response.</p>
271 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
272 /// <p>Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.</p>
273 /// </note>
274 /// <p>Default: Uses existing setting.</p>
275 /// <p>Constraints:</p>
276 /// <ul>
277 /// <li>
278 /// <p>Must be between 8 and 64 characters in length.</p></li>
279 /// <li>
280 /// <p>Must contain at least one uppercase letter.</p></li>
281 /// <li>
282 /// <p>Must contain at least one lowercase letter.</p></li>
283 /// <li>
284 /// <p>Must contain one number.</p></li>
285 /// <li>
286 /// <p>Can be any printable ASCII character (ASCII code 33-126) except <code>'</code> (single quote), <code>"</code> (double quote), <code>\</code>, <code>/</code>, or <code>@</code>.</p></li>
287 /// </ul>
288 pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
289 self.inner = self.inner.master_user_password(input.into());
290 self
291 }
292 /// <p>The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the <code>MasterUserPassword</code> element exists in the <code>PendingModifiedValues</code> element of the operation response.</p>
293 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
294 /// <p>Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.</p>
295 /// </note>
296 /// <p>Default: Uses existing setting.</p>
297 /// <p>Constraints:</p>
298 /// <ul>
299 /// <li>
300 /// <p>Must be between 8 and 64 characters in length.</p></li>
301 /// <li>
302 /// <p>Must contain at least one uppercase letter.</p></li>
303 /// <li>
304 /// <p>Must contain at least one lowercase letter.</p></li>
305 /// <li>
306 /// <p>Must contain one number.</p></li>
307 /// <li>
308 /// <p>Can be any printable ASCII character (ASCII code 33-126) except <code>'</code> (single quote), <code>"</code> (double quote), <code>\</code>, <code>/</code>, or <code>@</code>.</p></li>
309 /// </ul>
310 pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
311 self.inner = self.inner.set_master_user_password(input);
312 self
313 }
314 /// <p>The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the <code>MasterUserPassword</code> element exists in the <code>PendingModifiedValues</code> element of the operation response.</p>
315 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
316 /// <p>Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.</p>
317 /// </note>
318 /// <p>Default: Uses existing setting.</p>
319 /// <p>Constraints:</p>
320 /// <ul>
321 /// <li>
322 /// <p>Must be between 8 and 64 characters in length.</p></li>
323 /// <li>
324 /// <p>Must contain at least one uppercase letter.</p></li>
325 /// <li>
326 /// <p>Must contain at least one lowercase letter.</p></li>
327 /// <li>
328 /// <p>Must contain one number.</p></li>
329 /// <li>
330 /// <p>Can be any printable ASCII character (ASCII code 33-126) except <code>'</code> (single quote), <code>"</code> (double quote), <code>\</code>, <code>/</code>, or <code>@</code>.</p></li>
331 /// </ul>
332 pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
333 self.inner.get_master_user_password()
334 }
335 /// <p>The name of the cluster parameter group to apply to this cluster. This change is applied only after the cluster is rebooted. To reboot a cluster use <code>RebootCluster</code>.</p>
336 /// <p>Default: Uses existing setting.</p>
337 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
338 pub fn cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
339 self.inner = self.inner.cluster_parameter_group_name(input.into());
340 self
341 }
342 /// <p>The name of the cluster parameter group to apply to this cluster. This change is applied only after the cluster is rebooted. To reboot a cluster use <code>RebootCluster</code>.</p>
343 /// <p>Default: Uses existing setting.</p>
344 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
345 pub fn set_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
346 self.inner = self.inner.set_cluster_parameter_group_name(input);
347 self
348 }
349 /// <p>The name of the cluster parameter group to apply to this cluster. This change is applied only after the cluster is rebooted. To reboot a cluster use <code>RebootCluster</code>.</p>
350 /// <p>Default: Uses existing setting.</p>
351 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
352 pub fn get_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
353 self.inner.get_cluster_parameter_group_name()
354 }
355 /// <p>The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <code>CreateClusterSnapshot</code>.</p>
356 /// <p>If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.</p>
357 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
358 /// <p>Default: Uses existing setting.</p>
359 /// <p>Constraints: Must be a value from 0 to 35.</p>
360 pub fn automated_snapshot_retention_period(mut self, input: i32) -> Self {
361 self.inner = self.inner.automated_snapshot_retention_period(input);
362 self
363 }
364 /// <p>The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <code>CreateClusterSnapshot</code>.</p>
365 /// <p>If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.</p>
366 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
367 /// <p>Default: Uses existing setting.</p>
368 /// <p>Constraints: Must be a value from 0 to 35.</p>
369 pub fn set_automated_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
370 self.inner = self.inner.set_automated_snapshot_retention_period(input);
371 self
372 }
373 /// <p>The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <code>CreateClusterSnapshot</code>.</p>
374 /// <p>If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.</p>
375 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
376 /// <p>Default: Uses existing setting.</p>
377 /// <p>Constraints: Must be a value from 0 to 35.</p>
378 pub fn get_automated_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
379 self.inner.get_automated_snapshot_retention_period()
380 }
381 /// <p>The default for number of days that a newly created manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. This value doesn't retroactively change the retention periods of existing manual snapshots.</p>
382 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
383 /// <p>The default value is -1.</p>
384 pub fn manual_snapshot_retention_period(mut self, input: i32) -> Self {
385 self.inner = self.inner.manual_snapshot_retention_period(input);
386 self
387 }
388 /// <p>The default for number of days that a newly created manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. This value doesn't retroactively change the retention periods of existing manual snapshots.</p>
389 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
390 /// <p>The default value is -1.</p>
391 pub fn set_manual_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
392 self.inner = self.inner.set_manual_snapshot_retention_period(input);
393 self
394 }
395 /// <p>The default for number of days that a newly created manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. This value doesn't retroactively change the retention periods of existing manual snapshots.</p>
396 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
397 /// <p>The default value is -1.</p>
398 pub fn get_manual_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
399 self.inner.get_manual_snapshot_retention_period()
400 }
401 /// <p>The weekly time range (in UTC) during which system maintenance can occur, if necessary. If system maintenance is necessary during the window, it may result in an outage.</p>
402 /// <p>This maintenance window change is made immediately. If the new maintenance window indicates the current time, there must be at least 120 minutes between the current time and end of the window in order to ensure that pending changes are applied.</p>
403 /// <p>Default: Uses existing setting.</p>
404 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
405 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
406 /// <p>Constraints: Must be at least 30 minutes.</p>
407 pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
408 self.inner = self.inner.preferred_maintenance_window(input.into());
409 self
410 }
411 /// <p>The weekly time range (in UTC) during which system maintenance can occur, if necessary. If system maintenance is necessary during the window, it may result in an outage.</p>
412 /// <p>This maintenance window change is made immediately. If the new maintenance window indicates the current time, there must be at least 120 minutes between the current time and end of the window in order to ensure that pending changes are applied.</p>
413 /// <p>Default: Uses existing setting.</p>
414 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
415 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
416 /// <p>Constraints: Must be at least 30 minutes.</p>
417 pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
418 self.inner = self.inner.set_preferred_maintenance_window(input);
419 self
420 }
421 /// <p>The weekly time range (in UTC) during which system maintenance can occur, if necessary. If system maintenance is necessary during the window, it may result in an outage.</p>
422 /// <p>This maintenance window change is made immediately. If the new maintenance window indicates the current time, there must be at least 120 minutes between the current time and end of the window in order to ensure that pending changes are applied.</p>
423 /// <p>Default: Uses existing setting.</p>
424 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
425 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
426 /// <p>Constraints: Must be at least 30 minutes.</p>
427 pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
428 self.inner.get_preferred_maintenance_window()
429 }
430 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
431 /// <p>For major version upgrades, if a non-default cluster parameter group is currently in use, a new cluster parameter group in the cluster parameter group family for the new version must be specified. The new cluster parameter group can be the default for that cluster parameter group family. For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
432 /// <p>Example: <code>1.0</code></p>
433 pub fn cluster_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
434 self.inner = self.inner.cluster_version(input.into());
435 self
436 }
437 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
438 /// <p>For major version upgrades, if a non-default cluster parameter group is currently in use, a new cluster parameter group in the cluster parameter group family for the new version must be specified. The new cluster parameter group can be the default for that cluster parameter group family. For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
439 /// <p>Example: <code>1.0</code></p>
440 pub fn set_cluster_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
441 self.inner = self.inner.set_cluster_version(input);
442 self
443 }
444 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
445 /// <p>For major version upgrades, if a non-default cluster parameter group is currently in use, a new cluster parameter group in the cluster parameter group family for the new version must be specified. The new cluster parameter group can be the default for that cluster parameter group family. For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
446 /// <p>Example: <code>1.0</code></p>
447 pub fn get_cluster_version(&self) -> &::std::option::Option<::std::string::String> {
448 self.inner.get_cluster_version()
449 }
450 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
451 /// <p>Default: <code>false</code></p>
452 pub fn allow_version_upgrade(mut self, input: bool) -> Self {
453 self.inner = self.inner.allow_version_upgrade(input);
454 self
455 }
456 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
457 /// <p>Default: <code>false</code></p>
458 pub fn set_allow_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
459 self.inner = self.inner.set_allow_version_upgrade(input);
460 self
461 }
462 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
463 /// <p>Default: <code>false</code></p>
464 pub fn get_allow_version_upgrade(&self) -> &::std::option::Option<bool> {
465 self.inner.get_allow_version_upgrade()
466 }
467 /// <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.</p>
468 pub fn hsm_client_certificate_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
469 self.inner = self.inner.hsm_client_certificate_identifier(input.into());
470 self
471 }
472 /// <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.</p>
473 pub fn set_hsm_client_certificate_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
474 self.inner = self.inner.set_hsm_client_certificate_identifier(input);
475 self
476 }
477 /// <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.</p>
478 pub fn get_hsm_client_certificate_identifier(&self) -> &::std::option::Option<::std::string::String> {
479 self.inner.get_hsm_client_certificate_identifier()
480 }
481 /// <p>Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
482 pub fn hsm_configuration_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
483 self.inner = self.inner.hsm_configuration_identifier(input.into());
484 self
485 }
486 /// <p>Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
487 pub fn set_hsm_configuration_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
488 self.inner = self.inner.set_hsm_configuration_identifier(input);
489 self
490 }
491 /// <p>Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
492 pub fn get_hsm_configuration_identifier(&self) -> &::std::option::Option<::std::string::String> {
493 self.inner.get_hsm_configuration_identifier()
494 }
495 /// <p>The new identifier for the cluster.</p>
496 /// <p>Constraints:</p>
497 /// <ul>
498 /// <li>
499 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
500 /// <li>
501 /// <p>Alphabetic characters must be lowercase.</p></li>
502 /// <li>
503 /// <p>First character must be a letter.</p></li>
504 /// <li>
505 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
506 /// <li>
507 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
508 /// </ul>
509 /// <p>Example: <code>examplecluster</code></p>
510 pub fn new_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
511 self.inner = self.inner.new_cluster_identifier(input.into());
512 self
513 }
514 /// <p>The new identifier for the cluster.</p>
515 /// <p>Constraints:</p>
516 /// <ul>
517 /// <li>
518 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
519 /// <li>
520 /// <p>Alphabetic characters must be lowercase.</p></li>
521 /// <li>
522 /// <p>First character must be a letter.</p></li>
523 /// <li>
524 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
525 /// <li>
526 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
527 /// </ul>
528 /// <p>Example: <code>examplecluster</code></p>
529 pub fn set_new_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
530 self.inner = self.inner.set_new_cluster_identifier(input);
531 self
532 }
533 /// <p>The new identifier for the cluster.</p>
534 /// <p>Constraints:</p>
535 /// <ul>
536 /// <li>
537 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
538 /// <li>
539 /// <p>Alphabetic characters must be lowercase.</p></li>
540 /// <li>
541 /// <p>First character must be a letter.</p></li>
542 /// <li>
543 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
544 /// <li>
545 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
546 /// </ul>
547 /// <p>Example: <code>examplecluster</code></p>
548 pub fn get_new_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
549 self.inner.get_new_cluster_identifier()
550 }
551 /// <p>If <code>true</code>, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.</p>
552 /// <p>Default: false</p>
553 pub fn publicly_accessible(mut self, input: bool) -> Self {
554 self.inner = self.inner.publicly_accessible(input);
555 self
556 }
557 /// <p>If <code>true</code>, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.</p>
558 /// <p>Default: false</p>
559 pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
560 self.inner = self.inner.set_publicly_accessible(input);
561 self
562 }
563 /// <p>If <code>true</code>, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.</p>
564 /// <p>Default: false</p>
565 pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
566 self.inner.get_publicly_accessible()
567 }
568 /// <p>The Elastic IP (EIP) address for the cluster.</p>
569 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms">Supported Platforms to Launch Your Cluster</a> in the Amazon Redshift Cluster Management Guide.</p>
570 pub fn elastic_ip(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
571 self.inner = self.inner.elastic_ip(input.into());
572 self
573 }
574 /// <p>The Elastic IP (EIP) address for the cluster.</p>
575 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms">Supported Platforms to Launch Your Cluster</a> in the Amazon Redshift Cluster Management Guide.</p>
576 pub fn set_elastic_ip(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
577 self.inner = self.inner.set_elastic_ip(input);
578 self
579 }
580 /// <p>The Elastic IP (EIP) address for the cluster.</p>
581 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms">Supported Platforms to Launch Your Cluster</a> in the Amazon Redshift Cluster Management Guide.</p>
582 pub fn get_elastic_ip(&self) -> &::std::option::Option<::std::string::String> {
583 self.inner.get_elastic_ip()
584 }
585 /// <p>An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p>
586 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
587 /// <p>Default: false</p>
588 pub fn enhanced_vpc_routing(mut self, input: bool) -> Self {
589 self.inner = self.inner.enhanced_vpc_routing(input);
590 self
591 }
592 /// <p>An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p>
593 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
594 /// <p>Default: false</p>
595 pub fn set_enhanced_vpc_routing(mut self, input: ::std::option::Option<bool>) -> Self {
596 self.inner = self.inner.set_enhanced_vpc_routing(input);
597 self
598 }
599 /// <p>An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p>
600 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
601 /// <p>Default: false</p>
602 pub fn get_enhanced_vpc_routing(&self) -> &::std::option::Option<bool> {
603 self.inner.get_enhanced_vpc_routing()
604 }
605 /// <p>The name for the maintenance track that you want to assign for the cluster. This name change is asynchronous. The new track name stays in the <code>PendingModifiedValues</code> for the cluster until the next maintenance window. When the maintenance track changes, the cluster is switched to the latest cluster release available for the maintenance track. At this point, the maintenance track name is applied.</p>
606 pub fn maintenance_track_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
607 self.inner = self.inner.maintenance_track_name(input.into());
608 self
609 }
610 /// <p>The name for the maintenance track that you want to assign for the cluster. This name change is asynchronous. The new track name stays in the <code>PendingModifiedValues</code> for the cluster until the next maintenance window. When the maintenance track changes, the cluster is switched to the latest cluster release available for the maintenance track. At this point, the maintenance track name is applied.</p>
611 pub fn set_maintenance_track_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
612 self.inner = self.inner.set_maintenance_track_name(input);
613 self
614 }
615 /// <p>The name for the maintenance track that you want to assign for the cluster. This name change is asynchronous. The new track name stays in the <code>PendingModifiedValues</code> for the cluster until the next maintenance window. When the maintenance track changes, the cluster is switched to the latest cluster release available for the maintenance track. At this point, the maintenance track name is applied.</p>
616 pub fn get_maintenance_track_name(&self) -> &::std::option::Option<::std::string::String> {
617 self.inner.get_maintenance_track_name()
618 }
619 /// <p>Indicates whether the cluster is encrypted. If the value is encrypted (true) and you provide a value for the <code>KmsKeyId</code> parameter, we encrypt the cluster with the provided <code>KmsKeyId</code>. If you don't provide a <code>KmsKeyId</code>, we encrypt with the default key.</p>
620 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
621 pub fn encrypted(mut self, input: bool) -> Self {
622 self.inner = self.inner.encrypted(input);
623 self
624 }
625 /// <p>Indicates whether the cluster is encrypted. If the value is encrypted (true) and you provide a value for the <code>KmsKeyId</code> parameter, we encrypt the cluster with the provided <code>KmsKeyId</code>. If you don't provide a <code>KmsKeyId</code>, we encrypt with the default key.</p>
626 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
627 pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
628 self.inner = self.inner.set_encrypted(input);
629 self
630 }
631 /// <p>Indicates whether the cluster is encrypted. If the value is encrypted (true) and you provide a value for the <code>KmsKeyId</code> parameter, we encrypt the cluster with the provided <code>KmsKeyId</code>. If you don't provide a <code>KmsKeyId</code>, we encrypt with the default key.</p>
632 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
633 pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
634 self.inner.get_encrypted()
635 }
636 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
637 pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
638 self.inner = self.inner.kms_key_id(input.into());
639 self
640 }
641 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
642 pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
643 self.inner = self.inner.set_kms_key_id(input);
644 self
645 }
646 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
647 pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
648 self.inner.get_kms_key_id()
649 }
650 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
651 pub fn availability_zone_relocation(mut self, input: bool) -> Self {
652 self.inner = self.inner.availability_zone_relocation(input);
653 self
654 }
655 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
656 pub fn set_availability_zone_relocation(mut self, input: ::std::option::Option<bool>) -> Self {
657 self.inner = self.inner.set_availability_zone_relocation(input);
658 self
659 }
660 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
661 pub fn get_availability_zone_relocation(&self) -> &::std::option::Option<bool> {
662 self.inner.get_availability_zone_relocation()
663 }
664 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
665 pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
666 self.inner = self.inner.availability_zone(input.into());
667 self
668 }
669 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
670 pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
671 self.inner = self.inner.set_availability_zone(input);
672 self
673 }
674 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
675 pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
676 self.inner.get_availability_zone()
677 }
678 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
679 /// <p>Valid Values:</p>
680 /// <ul>
681 /// <li>
682 /// <p>For clusters with ra3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with ra3 nodes, it isn't required that you change the port to these ranges.)</p></li>
683 /// <li>
684 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
685 /// </ul>
686 pub fn port(mut self, input: i32) -> Self {
687 self.inner = self.inner.port(input);
688 self
689 }
690 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
691 /// <p>Valid Values:</p>
692 /// <ul>
693 /// <li>
694 /// <p>For clusters with ra3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with ra3 nodes, it isn't required that you change the port to these ranges.)</p></li>
695 /// <li>
696 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
697 /// </ul>
698 pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
699 self.inner = self.inner.set_port(input);
700 self
701 }
702 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
703 /// <p>Valid Values:</p>
704 /// <ul>
705 /// <li>
706 /// <p>For clusters with ra3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with ra3 nodes, it isn't required that you change the port to these ranges.)</p></li>
707 /// <li>
708 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
709 /// </ul>
710 pub fn get_port(&self) -> &::std::option::Option<i32> {
711 self.inner.get_port()
712 }
713 /// <p>If <code>true</code>, Amazon Redshift uses Secrets Manager to manage this cluster's admin credentials. You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is true. If <code>ManageMasterPassword</code> is false or not set, Amazon Redshift uses <code>MasterUserPassword</code> for the admin user account's password.</p>
714 pub fn manage_master_password(mut self, input: bool) -> Self {
715 self.inner = self.inner.manage_master_password(input);
716 self
717 }
718 /// <p>If <code>true</code>, Amazon Redshift uses Secrets Manager to manage this cluster's admin credentials. You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is true. If <code>ManageMasterPassword</code> is false or not set, Amazon Redshift uses <code>MasterUserPassword</code> for the admin user account's password.</p>
719 pub fn set_manage_master_password(mut self, input: ::std::option::Option<bool>) -> Self {
720 self.inner = self.inner.set_manage_master_password(input);
721 self
722 }
723 /// <p>If <code>true</code>, Amazon Redshift uses Secrets Manager to manage this cluster's admin credentials. You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is true. If <code>ManageMasterPassword</code> is false or not set, Amazon Redshift uses <code>MasterUserPassword</code> for the admin user account's password.</p>
724 pub fn get_manage_master_password(&self) -> &::std::option::Option<bool> {
725 self.inner.get_manage_master_password()
726 }
727 /// <p>The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. You can only use this parameter if <code>ManageMasterPassword</code> is true.</p>
728 pub fn master_password_secret_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
729 self.inner = self.inner.master_password_secret_kms_key_id(input.into());
730 self
731 }
732 /// <p>The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. You can only use this parameter if <code>ManageMasterPassword</code> is true.</p>
733 pub fn set_master_password_secret_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
734 self.inner = self.inner.set_master_password_secret_kms_key_id(input);
735 self
736 }
737 /// <p>The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. You can only use this parameter if <code>ManageMasterPassword</code> is true.</p>
738 pub fn get_master_password_secret_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
739 self.inner.get_master_password_secret_kms_key_id()
740 }
741 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
742 pub fn ip_address_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
743 self.inner = self.inner.ip_address_type(input.into());
744 self
745 }
746 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
747 pub fn set_ip_address_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
748 self.inner = self.inner.set_ip_address_type(input);
749 self
750 }
751 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
752 pub fn get_ip_address_type(&self) -> &::std::option::Option<::std::string::String> {
753 self.inner.get_ip_address_type()
754 }
755 /// <p>If true and the cluster is currently only deployed in a single Availability Zone, the cluster will be modified to be deployed in two Availability Zones.</p>
756 pub fn multi_az(mut self, input: bool) -> Self {
757 self.inner = self.inner.multi_az(input);
758 self
759 }
760 /// <p>If true and the cluster is currently only deployed in a single Availability Zone, the cluster will be modified to be deployed in two Availability Zones.</p>
761 pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
762 self.inner = self.inner.set_multi_az(input);
763 self
764 }
765 /// <p>If true and the cluster is currently only deployed in a single Availability Zone, the cluster will be modified to be deployed in two Availability Zones.</p>
766 pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
767 self.inner.get_multi_az()
768 }
769}