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_input::ModifyClusterInputBuilder;
3
4pub use crate::operation::modify_cluster::_modify_cluster_output::ModifyClusterOutputBuilder;
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>rg.large</code> | <code>rg.xlarge</code> | <code>rg.4xlarge</code> | <code>rg.12xlarge</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>rg.large</code> | <code>rg.xlarge</code> | <code>rg.4xlarge</code> | <code>rg.12xlarge</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>rg.large</code> | <code>rg.xlarge</code> | <code>rg.4xlarge</code> | <code>rg.12xlarge</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>
272 /// <p>If your admin user account is locked, this operation also unlocks your account and resets the failed-login counter. This option is available only when account lockout security is enabled for the cluster.</p><note>
273 /// <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>
274 /// </note>
275 /// <p>Default: Uses existing setting.</p>
276 /// <p>Constraints:</p>
277 /// <ul>
278 /// <li>
279 /// <p>Must be between 8 and 64 characters in length.</p></li>
280 /// <li>
281 /// <p>Must contain at least one uppercase letter.</p></li>
282 /// <li>
283 /// <p>Must contain at least one lowercase letter.</p></li>
284 /// <li>
285 /// <p>Must contain one number.</p></li>
286 /// <li>
287 /// <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>
288 /// </ul>
289 pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
290 self.inner = self.inner.master_user_password(input.into());
291 self
292 }
293 /// <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>
294 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p>
295 /// <p>If your admin user account is locked, this operation also unlocks your account and resets the failed-login counter. This option is available only when account lockout security is enabled for the cluster.</p><note>
296 /// <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>
297 /// </note>
298 /// <p>Default: Uses existing setting.</p>
299 /// <p>Constraints:</p>
300 /// <ul>
301 /// <li>
302 /// <p>Must be between 8 and 64 characters in length.</p></li>
303 /// <li>
304 /// <p>Must contain at least one uppercase letter.</p></li>
305 /// <li>
306 /// <p>Must contain at least one lowercase letter.</p></li>
307 /// <li>
308 /// <p>Must contain one number.</p></li>
309 /// <li>
310 /// <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>
311 /// </ul>
312 pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
313 self.inner = self.inner.set_master_user_password(input);
314 self
315 }
316 /// <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>
317 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p>
318 /// <p>If your admin user account is locked, this operation also unlocks your account and resets the failed-login counter. This option is available only when account lockout security is enabled for the cluster.</p><note>
319 /// <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>
320 /// </note>
321 /// <p>Default: Uses existing setting.</p>
322 /// <p>Constraints:</p>
323 /// <ul>
324 /// <li>
325 /// <p>Must be between 8 and 64 characters in length.</p></li>
326 /// <li>
327 /// <p>Must contain at least one uppercase letter.</p></li>
328 /// <li>
329 /// <p>Must contain at least one lowercase letter.</p></li>
330 /// <li>
331 /// <p>Must contain one number.</p></li>
332 /// <li>
333 /// <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>
334 /// </ul>
335 pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
336 self.inner.get_master_user_password()
337 }
338 /// <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>
339 /// <p>Default: Uses existing setting.</p>
340 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
341 pub fn cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
342 self.inner = self.inner.cluster_parameter_group_name(input.into());
343 self
344 }
345 /// <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>
346 /// <p>Default: Uses existing setting.</p>
347 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
348 pub fn set_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
349 self.inner = self.inner.set_cluster_parameter_group_name(input);
350 self
351 }
352 /// <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>
353 /// <p>Default: Uses existing setting.</p>
354 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
355 pub fn get_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
356 self.inner.get_cluster_parameter_group_name()
357 }
358 /// <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>
359 /// <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>
360 /// <p>You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.</p>
361 /// <p>Default: Uses existing setting.</p>
362 /// <p>Constraints: Must be a value from 0 to 35.</p>
363 pub fn automated_snapshot_retention_period(mut self, input: i32) -> Self {
364 self.inner = self.inner.automated_snapshot_retention_period(input);
365 self
366 }
367 /// <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>
368 /// <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>
369 /// <p>You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.</p>
370 /// <p>Default: Uses existing setting.</p>
371 /// <p>Constraints: Must be a value from 0 to 35.</p>
372 pub fn set_automated_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
373 self.inner = self.inner.set_automated_snapshot_retention_period(input);
374 self
375 }
376 /// <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>
377 /// <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>
378 /// <p>You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.</p>
379 /// <p>Default: Uses existing setting.</p>
380 /// <p>Constraints: Must be a value from 0 to 35.</p>
381 pub fn get_automated_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
382 self.inner.get_automated_snapshot_retention_period()
383 }
384 /// <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>
385 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
386 /// <p>The default value is -1.</p>
387 pub fn manual_snapshot_retention_period(mut self, input: i32) -> Self {
388 self.inner = self.inner.manual_snapshot_retention_period(input);
389 self
390 }
391 /// <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>
392 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
393 /// <p>The default value is -1.</p>
394 pub fn set_manual_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
395 self.inner = self.inner.set_manual_snapshot_retention_period(input);
396 self
397 }
398 /// <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>
399 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
400 /// <p>The default value is -1.</p>
401 pub fn get_manual_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
402 self.inner.get_manual_snapshot_retention_period()
403 }
404 /// <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>
405 /// <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>
406 /// <p>Default: Uses existing setting.</p>
407 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
408 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
409 /// <p>Constraints: Must be at least 30 minutes.</p>
410 pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
411 self.inner = self.inner.preferred_maintenance_window(input.into());
412 self
413 }
414 /// <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>
415 /// <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>
416 /// <p>Default: Uses existing setting.</p>
417 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
418 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
419 /// <p>Constraints: Must be at least 30 minutes.</p>
420 pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
421 self.inner = self.inner.set_preferred_maintenance_window(input);
422 self
423 }
424 /// <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>
425 /// <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>
426 /// <p>Default: Uses existing setting.</p>
427 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
428 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
429 /// <p>Constraints: Must be at least 30 minutes.</p>
430 pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
431 self.inner.get_preferred_maintenance_window()
432 }
433 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
434 /// <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>
435 /// <p>Example: <code>1.0</code></p>
436 pub fn cluster_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
437 self.inner = self.inner.cluster_version(input.into());
438 self
439 }
440 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
441 /// <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>
442 /// <p>Example: <code>1.0</code></p>
443 pub fn set_cluster_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
444 self.inner = self.inner.set_cluster_version(input);
445 self
446 }
447 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
448 /// <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>
449 /// <p>Example: <code>1.0</code></p>
450 pub fn get_cluster_version(&self) -> &::std::option::Option<::std::string::String> {
451 self.inner.get_cluster_version()
452 }
453 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
454 /// <p>Default: <code>false</code></p>
455 pub fn allow_version_upgrade(mut self, input: bool) -> Self {
456 self.inner = self.inner.allow_version_upgrade(input);
457 self
458 }
459 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
460 /// <p>Default: <code>false</code></p>
461 pub fn set_allow_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
462 self.inner = self.inner.set_allow_version_upgrade(input);
463 self
464 }
465 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
466 /// <p>Default: <code>false</code></p>
467 pub fn get_allow_version_upgrade(&self) -> &::std::option::Option<bool> {
468 self.inner.get_allow_version_upgrade()
469 }
470 /// <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>
471 pub fn hsm_client_certificate_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
472 self.inner = self.inner.hsm_client_certificate_identifier(input.into());
473 self
474 }
475 /// <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>
476 pub fn set_hsm_client_certificate_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
477 self.inner = self.inner.set_hsm_client_certificate_identifier(input);
478 self
479 }
480 /// <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>
481 pub fn get_hsm_client_certificate_identifier(&self) -> &::std::option::Option<::std::string::String> {
482 self.inner.get_hsm_client_certificate_identifier()
483 }
484 /// <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>
485 pub fn hsm_configuration_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
486 self.inner = self.inner.hsm_configuration_identifier(input.into());
487 self
488 }
489 /// <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>
490 pub fn set_hsm_configuration_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
491 self.inner = self.inner.set_hsm_configuration_identifier(input);
492 self
493 }
494 /// <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>
495 pub fn get_hsm_configuration_identifier(&self) -> &::std::option::Option<::std::string::String> {
496 self.inner.get_hsm_configuration_identifier()
497 }
498 /// <p>The new identifier for the cluster.</p>
499 /// <p>Constraints:</p>
500 /// <ul>
501 /// <li>
502 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
503 /// <li>
504 /// <p>Alphabetic characters must be lowercase.</p></li>
505 /// <li>
506 /// <p>First character must be a letter.</p></li>
507 /// <li>
508 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
509 /// <li>
510 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
511 /// </ul>
512 /// <p>Example: <code>examplecluster</code></p>
513 pub fn new_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
514 self.inner = self.inner.new_cluster_identifier(input.into());
515 self
516 }
517 /// <p>The new identifier for the cluster.</p>
518 /// <p>Constraints:</p>
519 /// <ul>
520 /// <li>
521 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
522 /// <li>
523 /// <p>Alphabetic characters must be lowercase.</p></li>
524 /// <li>
525 /// <p>First character must be a letter.</p></li>
526 /// <li>
527 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
528 /// <li>
529 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
530 /// </ul>
531 /// <p>Example: <code>examplecluster</code></p>
532 pub fn set_new_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
533 self.inner = self.inner.set_new_cluster_identifier(input);
534 self
535 }
536 /// <p>The new identifier for the cluster.</p>
537 /// <p>Constraints:</p>
538 /// <ul>
539 /// <li>
540 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
541 /// <li>
542 /// <p>Alphabetic characters must be lowercase.</p></li>
543 /// <li>
544 /// <p>First character must be a letter.</p></li>
545 /// <li>
546 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
547 /// <li>
548 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
549 /// </ul>
550 /// <p>Example: <code>examplecluster</code></p>
551 pub fn get_new_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
552 self.inner.get_new_cluster_identifier()
553 }
554 /// <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>
555 /// <p>Default: false</p>
556 pub fn publicly_accessible(mut self, input: bool) -> Self {
557 self.inner = self.inner.publicly_accessible(input);
558 self
559 }
560 /// <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>
561 /// <p>Default: false</p>
562 pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
563 self.inner = self.inner.set_publicly_accessible(input);
564 self
565 }
566 /// <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>
567 /// <p>Default: false</p>
568 pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
569 self.inner.get_publicly_accessible()
570 }
571 /// <p>The Elastic IP (EIP) address for the cluster.</p>
572 /// <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>
573 pub fn elastic_ip(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
574 self.inner = self.inner.elastic_ip(input.into());
575 self
576 }
577 /// <p>The Elastic IP (EIP) address for the cluster.</p>
578 /// <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>
579 pub fn set_elastic_ip(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
580 self.inner = self.inner.set_elastic_ip(input);
581 self
582 }
583 /// <p>The Elastic IP (EIP) address for the cluster.</p>
584 /// <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>
585 pub fn get_elastic_ip(&self) -> &::std::option::Option<::std::string::String> {
586 self.inner.get_elastic_ip()
587 }
588 /// <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>
589 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
590 /// <p>Default: false</p>
591 pub fn enhanced_vpc_routing(mut self, input: bool) -> Self {
592 self.inner = self.inner.enhanced_vpc_routing(input);
593 self
594 }
595 /// <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>
596 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
597 /// <p>Default: false</p>
598 pub fn set_enhanced_vpc_routing(mut self, input: ::std::option::Option<bool>) -> Self {
599 self.inner = self.inner.set_enhanced_vpc_routing(input);
600 self
601 }
602 /// <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>
603 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
604 /// <p>Default: false</p>
605 pub fn get_enhanced_vpc_routing(&self) -> &::std::option::Option<bool> {
606 self.inner.get_enhanced_vpc_routing()
607 }
608 /// <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>
609 pub fn maintenance_track_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
610 self.inner = self.inner.maintenance_track_name(input.into());
611 self
612 }
613 /// <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>
614 pub fn set_maintenance_track_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
615 self.inner = self.inner.set_maintenance_track_name(input);
616 self
617 }
618 /// <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>
619 pub fn get_maintenance_track_name(&self) -> &::std::option::Option<::std::string::String> {
620 self.inner.get_maintenance_track_name()
621 }
622 /// <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>
623 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
624 pub fn encrypted(mut self, input: bool) -> Self {
625 self.inner = self.inner.encrypted(input);
626 self
627 }
628 /// <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>
629 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
630 pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
631 self.inner = self.inner.set_encrypted(input);
632 self
633 }
634 /// <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>
635 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
636 pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
637 self.inner.get_encrypted()
638 }
639 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
640 pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
641 self.inner = self.inner.kms_key_id(input.into());
642 self
643 }
644 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
645 pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
646 self.inner = self.inner.set_kms_key_id(input);
647 self
648 }
649 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
650 pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
651 self.inner.get_kms_key_id()
652 }
653 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
654 pub fn availability_zone_relocation(mut self, input: bool) -> Self {
655 self.inner = self.inner.availability_zone_relocation(input);
656 self
657 }
658 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
659 pub fn set_availability_zone_relocation(mut self, input: ::std::option::Option<bool>) -> Self {
660 self.inner = self.inner.set_availability_zone_relocation(input);
661 self
662 }
663 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
664 pub fn get_availability_zone_relocation(&self) -> &::std::option::Option<bool> {
665 self.inner.get_availability_zone_relocation()
666 }
667 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
668 pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
669 self.inner = self.inner.availability_zone(input.into());
670 self
671 }
672 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
673 pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
674 self.inner = self.inner.set_availability_zone(input);
675 self
676 }
677 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
678 pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
679 self.inner.get_availability_zone()
680 }
681 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
682 /// <p>Valid Values:</p>
683 /// <ul>
684 /// <li>
685 /// <p>For clusters with RG or RA3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with RG or RA3 nodes, it isn't required that you change the port to these ranges.)</p></li>
686 /// <li>
687 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
688 /// </ul>
689 pub fn port(mut self, input: i32) -> Self {
690 self.inner = self.inner.port(input);
691 self
692 }
693 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
694 /// <p>Valid Values:</p>
695 /// <ul>
696 /// <li>
697 /// <p>For clusters with RG or RA3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with RG or RA3 nodes, it isn't required that you change the port to these ranges.)</p></li>
698 /// <li>
699 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
700 /// </ul>
701 pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
702 self.inner = self.inner.set_port(input);
703 self
704 }
705 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
706 /// <p>Valid Values:</p>
707 /// <ul>
708 /// <li>
709 /// <p>For clusters with RG or RA3 nodes - Select a port within the ranges <code>5431-5455</code> or <code>8191-8215</code>. (If you have an existing cluster with RG or RA3 nodes, it isn't required that you change the port to these ranges.)</p></li>
710 /// <li>
711 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
712 /// </ul>
713 pub fn get_port(&self) -> &::std::option::Option<i32> {
714 self.inner.get_port()
715 }
716 /// <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>
717 pub fn manage_master_password(mut self, input: bool) -> Self {
718 self.inner = self.inner.manage_master_password(input);
719 self
720 }
721 /// <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>
722 pub fn set_manage_master_password(mut self, input: ::std::option::Option<bool>) -> Self {
723 self.inner = self.inner.set_manage_master_password(input);
724 self
725 }
726 /// <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>
727 pub fn get_manage_master_password(&self) -> &::std::option::Option<bool> {
728 self.inner.get_manage_master_password()
729 }
730 /// <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>
731 pub fn master_password_secret_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
732 self.inner = self.inner.master_password_secret_kms_key_id(input.into());
733 self
734 }
735 /// <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>
736 pub fn set_master_password_secret_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
737 self.inner = self.inner.set_master_password_secret_kms_key_id(input);
738 self
739 }
740 /// <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>
741 pub fn get_master_password_secret_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
742 self.inner.get_master_password_secret_kms_key_id()
743 }
744 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
745 pub fn ip_address_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
746 self.inner = self.inner.ip_address_type(input.into());
747 self
748 }
749 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
750 pub fn set_ip_address_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
751 self.inner = self.inner.set_ip_address_type(input);
752 self
753 }
754 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
755 pub fn get_ip_address_type(&self) -> &::std::option::Option<::std::string::String> {
756 self.inner.get_ip_address_type()
757 }
758 /// <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>
759 pub fn multi_az(mut self, input: bool) -> Self {
760 self.inner = self.inner.multi_az(input);
761 self
762 }
763 /// <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>
764 pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
765 self.inner = self.inner.set_multi_az(input);
766 self
767 }
768 /// <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>
769 pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
770 self.inner.get_multi_az()
771 }
772 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
773 /// <p>Default: false</p>
774 pub fn extra_compute_for_automatic_optimization(mut self, input: bool) -> Self {
775 self.inner = self.inner.extra_compute_for_automatic_optimization(input);
776 self
777 }
778 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
779 /// <p>Default: false</p>
780 pub fn set_extra_compute_for_automatic_optimization(mut self, input: ::std::option::Option<bool>) -> Self {
781 self.inner = self.inner.set_extra_compute_for_automatic_optimization(input);
782 self
783 }
784 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
785 /// <p>Default: false</p>
786 pub fn get_extra_compute_for_automatic_optimization(&self) -> &::std::option::Option<bool> {
787 self.inner.get_extra_compute_for_automatic_optimization()
788 }
789}