aws_sdk_redshift/operation/modify_cluster/_modify_cluster_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p></p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
6pub struct ModifyClusterInput {
7 /// <p>The unique identifier of the cluster to be modified.</p>
8 /// <p>Example: <code>examplecluster</code></p>
9 pub cluster_identifier: ::std::option::Option<::std::string::String>,
10 /// <p>The new cluster type.</p>
11 /// <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>
12 /// <p>Valid Values: <code> multi-node | single-node </code></p>
13 pub cluster_type: ::std::option::Option<::std::string::String>,
14 /// <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>
15 /// <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>
16 /// <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>
17 pub node_type: ::std::option::Option<::std::string::String>,
18 /// <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>
19 /// <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>
20 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
21 pub number_of_nodes: ::std::option::Option<i32>,
22 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
23 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
24 /// <p>Constraints:</p>
25 /// <ul>
26 /// <li>
27 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
28 /// <li>
29 /// <p>First character must be a letter</p></li>
30 /// <li>
31 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
32 /// </ul>
33 pub cluster_security_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
34 /// <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>
35 pub vpc_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
36 /// <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>
37 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
38 /// <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>
39 /// </note>
40 /// <p>Default: Uses existing setting.</p>
41 /// <p>Constraints:</p>
42 /// <ul>
43 /// <li>
44 /// <p>Must be between 8 and 64 characters in length.</p></li>
45 /// <li>
46 /// <p>Must contain at least one uppercase letter.</p></li>
47 /// <li>
48 /// <p>Must contain at least one lowercase letter.</p></li>
49 /// <li>
50 /// <p>Must contain one number.</p></li>
51 /// <li>
52 /// <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>
53 /// </ul>
54 pub master_user_password: ::std::option::Option<::std::string::String>,
55 /// <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>
56 /// <p>Default: Uses existing setting.</p>
57 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
58 pub cluster_parameter_group_name: ::std::option::Option<::std::string::String>,
59 /// <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>
60 /// <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>
61 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
62 /// <p>Default: Uses existing setting.</p>
63 /// <p>Constraints: Must be a value from 0 to 35.</p>
64 pub automated_snapshot_retention_period: ::std::option::Option<i32>,
65 /// <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>
66 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
67 /// <p>The default value is -1.</p>
68 pub manual_snapshot_retention_period: ::std::option::Option<i32>,
69 /// <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>
70 /// <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>
71 /// <p>Default: Uses existing setting.</p>
72 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
73 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
74 /// <p>Constraints: Must be at least 30 minutes.</p>
75 pub preferred_maintenance_window: ::std::option::Option<::std::string::String>,
76 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
77 /// <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>
78 /// <p>Example: <code>1.0</code></p>
79 pub cluster_version: ::std::option::Option<::std::string::String>,
80 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
81 /// <p>Default: <code>false</code></p>
82 pub allow_version_upgrade: ::std::option::Option<bool>,
83 /// <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>
84 pub hsm_client_certificate_identifier: ::std::option::Option<::std::string::String>,
85 /// <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>
86 pub hsm_configuration_identifier: ::std::option::Option<::std::string::String>,
87 /// <p>The new identifier for the cluster.</p>
88 /// <p>Constraints:</p>
89 /// <ul>
90 /// <li>
91 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
92 /// <li>
93 /// <p>Alphabetic characters must be lowercase.</p></li>
94 /// <li>
95 /// <p>First character must be a letter.</p></li>
96 /// <li>
97 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
98 /// <li>
99 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
100 /// </ul>
101 /// <p>Example: <code>examplecluster</code></p>
102 pub new_cluster_identifier: ::std::option::Option<::std::string::String>,
103 /// <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>
104 /// <p>Default: false</p>
105 pub publicly_accessible: ::std::option::Option<bool>,
106 /// <p>The Elastic IP (EIP) address for the cluster.</p>
107 /// <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>
108 pub elastic_ip: ::std::option::Option<::std::string::String>,
109 /// <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>
110 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
111 /// <p>Default: false</p>
112 pub enhanced_vpc_routing: ::std::option::Option<bool>,
113 /// <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>
114 pub maintenance_track_name: ::std::option::Option<::std::string::String>,
115 /// <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>
116 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
117 pub encrypted: ::std::option::Option<bool>,
118 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
119 pub kms_key_id: ::std::option::Option<::std::string::String>,
120 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
121 pub availability_zone_relocation: ::std::option::Option<bool>,
122 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
123 pub availability_zone: ::std::option::Option<::std::string::String>,
124 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
125 /// <p>Valid Values:</p>
126 /// <ul>
127 /// <li>
128 /// <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>
129 /// <li>
130 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
131 /// </ul>
132 pub port: ::std::option::Option<i32>,
133 /// <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>
134 pub manage_master_password: ::std::option::Option<bool>,
135 /// <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>
136 pub master_password_secret_kms_key_id: ::std::option::Option<::std::string::String>,
137 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
138 pub ip_address_type: ::std::option::Option<::std::string::String>,
139 /// <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>
140 pub multi_az: ::std::option::Option<bool>,
141 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
142 /// <p>Default: false</p>
143 pub extra_compute_for_automatic_optimization: ::std::option::Option<bool>,
144}
145impl ModifyClusterInput {
146 /// <p>The unique identifier of the cluster to be modified.</p>
147 /// <p>Example: <code>examplecluster</code></p>
148 pub fn cluster_identifier(&self) -> ::std::option::Option<&str> {
149 self.cluster_identifier.as_deref()
150 }
151 /// <p>The new cluster type.</p>
152 /// <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>
153 /// <p>Valid Values: <code> multi-node | single-node </code></p>
154 pub fn cluster_type(&self) -> ::std::option::Option<&str> {
155 self.cluster_type.as_deref()
156 }
157 /// <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>
158 /// <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>
159 /// <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>
160 pub fn node_type(&self) -> ::std::option::Option<&str> {
161 self.node_type.as_deref()
162 }
163 /// <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>
164 /// <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>
165 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
166 pub fn number_of_nodes(&self) -> ::std::option::Option<i32> {
167 self.number_of_nodes
168 }
169 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
170 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
171 /// <p>Constraints:</p>
172 /// <ul>
173 /// <li>
174 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
175 /// <li>
176 /// <p>First character must be a letter</p></li>
177 /// <li>
178 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
179 /// </ul>
180 ///
181 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.cluster_security_groups.is_none()`.
182 pub fn cluster_security_groups(&self) -> &[::std::string::String] {
183 self.cluster_security_groups.as_deref().unwrap_or_default()
184 }
185 /// <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>
186 ///
187 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.vpc_security_group_ids.is_none()`.
188 pub fn vpc_security_group_ids(&self) -> &[::std::string::String] {
189 self.vpc_security_group_ids.as_deref().unwrap_or_default()
190 }
191 /// <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>
192 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
193 /// <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>
194 /// </note>
195 /// <p>Default: Uses existing setting.</p>
196 /// <p>Constraints:</p>
197 /// <ul>
198 /// <li>
199 /// <p>Must be between 8 and 64 characters in length.</p></li>
200 /// <li>
201 /// <p>Must contain at least one uppercase letter.</p></li>
202 /// <li>
203 /// <p>Must contain at least one lowercase letter.</p></li>
204 /// <li>
205 /// <p>Must contain one number.</p></li>
206 /// <li>
207 /// <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>
208 /// </ul>
209 pub fn master_user_password(&self) -> ::std::option::Option<&str> {
210 self.master_user_password.as_deref()
211 }
212 /// <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>
213 /// <p>Default: Uses existing setting.</p>
214 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
215 pub fn cluster_parameter_group_name(&self) -> ::std::option::Option<&str> {
216 self.cluster_parameter_group_name.as_deref()
217 }
218 /// <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>
219 /// <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>
220 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
221 /// <p>Default: Uses existing setting.</p>
222 /// <p>Constraints: Must be a value from 0 to 35.</p>
223 pub fn automated_snapshot_retention_period(&self) -> ::std::option::Option<i32> {
224 self.automated_snapshot_retention_period
225 }
226 /// <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>
227 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
228 /// <p>The default value is -1.</p>
229 pub fn manual_snapshot_retention_period(&self) -> ::std::option::Option<i32> {
230 self.manual_snapshot_retention_period
231 }
232 /// <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>
233 /// <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>
234 /// <p>Default: Uses existing setting.</p>
235 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
236 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
237 /// <p>Constraints: Must be at least 30 minutes.</p>
238 pub fn preferred_maintenance_window(&self) -> ::std::option::Option<&str> {
239 self.preferred_maintenance_window.as_deref()
240 }
241 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
242 /// <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>
243 /// <p>Example: <code>1.0</code></p>
244 pub fn cluster_version(&self) -> ::std::option::Option<&str> {
245 self.cluster_version.as_deref()
246 }
247 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
248 /// <p>Default: <code>false</code></p>
249 pub fn allow_version_upgrade(&self) -> ::std::option::Option<bool> {
250 self.allow_version_upgrade
251 }
252 /// <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>
253 pub fn hsm_client_certificate_identifier(&self) -> ::std::option::Option<&str> {
254 self.hsm_client_certificate_identifier.as_deref()
255 }
256 /// <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>
257 pub fn hsm_configuration_identifier(&self) -> ::std::option::Option<&str> {
258 self.hsm_configuration_identifier.as_deref()
259 }
260 /// <p>The new identifier for the cluster.</p>
261 /// <p>Constraints:</p>
262 /// <ul>
263 /// <li>
264 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
265 /// <li>
266 /// <p>Alphabetic characters must be lowercase.</p></li>
267 /// <li>
268 /// <p>First character must be a letter.</p></li>
269 /// <li>
270 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
271 /// <li>
272 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
273 /// </ul>
274 /// <p>Example: <code>examplecluster</code></p>
275 pub fn new_cluster_identifier(&self) -> ::std::option::Option<&str> {
276 self.new_cluster_identifier.as_deref()
277 }
278 /// <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>
279 /// <p>Default: false</p>
280 pub fn publicly_accessible(&self) -> ::std::option::Option<bool> {
281 self.publicly_accessible
282 }
283 /// <p>The Elastic IP (EIP) address for the cluster.</p>
284 /// <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>
285 pub fn elastic_ip(&self) -> ::std::option::Option<&str> {
286 self.elastic_ip.as_deref()
287 }
288 /// <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>
289 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
290 /// <p>Default: false</p>
291 pub fn enhanced_vpc_routing(&self) -> ::std::option::Option<bool> {
292 self.enhanced_vpc_routing
293 }
294 /// <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>
295 pub fn maintenance_track_name(&self) -> ::std::option::Option<&str> {
296 self.maintenance_track_name.as_deref()
297 }
298 /// <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>
299 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
300 pub fn encrypted(&self) -> ::std::option::Option<bool> {
301 self.encrypted
302 }
303 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
304 pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
305 self.kms_key_id.as_deref()
306 }
307 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
308 pub fn availability_zone_relocation(&self) -> ::std::option::Option<bool> {
309 self.availability_zone_relocation
310 }
311 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
312 pub fn availability_zone(&self) -> ::std::option::Option<&str> {
313 self.availability_zone.as_deref()
314 }
315 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
316 /// <p>Valid Values:</p>
317 /// <ul>
318 /// <li>
319 /// <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>
320 /// <li>
321 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
322 /// </ul>
323 pub fn port(&self) -> ::std::option::Option<i32> {
324 self.port
325 }
326 /// <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>
327 pub fn manage_master_password(&self) -> ::std::option::Option<bool> {
328 self.manage_master_password
329 }
330 /// <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>
331 pub fn master_password_secret_kms_key_id(&self) -> ::std::option::Option<&str> {
332 self.master_password_secret_kms_key_id.as_deref()
333 }
334 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
335 pub fn ip_address_type(&self) -> ::std::option::Option<&str> {
336 self.ip_address_type.as_deref()
337 }
338 /// <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>
339 pub fn multi_az(&self) -> ::std::option::Option<bool> {
340 self.multi_az
341 }
342 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
343 /// <p>Default: false</p>
344 pub fn extra_compute_for_automatic_optimization(&self) -> ::std::option::Option<bool> {
345 self.extra_compute_for_automatic_optimization
346 }
347}
348impl ::std::fmt::Debug for ModifyClusterInput {
349 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
350 let mut formatter = f.debug_struct("ModifyClusterInput");
351 formatter.field("cluster_identifier", &self.cluster_identifier);
352 formatter.field("cluster_type", &self.cluster_type);
353 formatter.field("node_type", &self.node_type);
354 formatter.field("number_of_nodes", &self.number_of_nodes);
355 formatter.field("cluster_security_groups", &self.cluster_security_groups);
356 formatter.field("vpc_security_group_ids", &self.vpc_security_group_ids);
357 formatter.field("master_user_password", &"*** Sensitive Data Redacted ***");
358 formatter.field("cluster_parameter_group_name", &self.cluster_parameter_group_name);
359 formatter.field("automated_snapshot_retention_period", &self.automated_snapshot_retention_period);
360 formatter.field("manual_snapshot_retention_period", &self.manual_snapshot_retention_period);
361 formatter.field("preferred_maintenance_window", &self.preferred_maintenance_window);
362 formatter.field("cluster_version", &self.cluster_version);
363 formatter.field("allow_version_upgrade", &self.allow_version_upgrade);
364 formatter.field("hsm_client_certificate_identifier", &self.hsm_client_certificate_identifier);
365 formatter.field("hsm_configuration_identifier", &self.hsm_configuration_identifier);
366 formatter.field("new_cluster_identifier", &self.new_cluster_identifier);
367 formatter.field("publicly_accessible", &self.publicly_accessible);
368 formatter.field("elastic_ip", &self.elastic_ip);
369 formatter.field("enhanced_vpc_routing", &self.enhanced_vpc_routing);
370 formatter.field("maintenance_track_name", &self.maintenance_track_name);
371 formatter.field("encrypted", &self.encrypted);
372 formatter.field("kms_key_id", &self.kms_key_id);
373 formatter.field("availability_zone_relocation", &self.availability_zone_relocation);
374 formatter.field("availability_zone", &self.availability_zone);
375 formatter.field("port", &self.port);
376 formatter.field("manage_master_password", &self.manage_master_password);
377 formatter.field("master_password_secret_kms_key_id", &self.master_password_secret_kms_key_id);
378 formatter.field("ip_address_type", &self.ip_address_type);
379 formatter.field("multi_az", &self.multi_az);
380 formatter.field("extra_compute_for_automatic_optimization", &self.extra_compute_for_automatic_optimization);
381 formatter.finish()
382 }
383}
384impl ModifyClusterInput {
385 /// Creates a new builder-style object to manufacture [`ModifyClusterInput`](crate::operation::modify_cluster::ModifyClusterInput).
386 pub fn builder() -> crate::operation::modify_cluster::builders::ModifyClusterInputBuilder {
387 crate::operation::modify_cluster::builders::ModifyClusterInputBuilder::default()
388 }
389}
390
391/// A builder for [`ModifyClusterInput`](crate::operation::modify_cluster::ModifyClusterInput).
392#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
393#[non_exhaustive]
394pub struct ModifyClusterInputBuilder {
395 pub(crate) cluster_identifier: ::std::option::Option<::std::string::String>,
396 pub(crate) cluster_type: ::std::option::Option<::std::string::String>,
397 pub(crate) node_type: ::std::option::Option<::std::string::String>,
398 pub(crate) number_of_nodes: ::std::option::Option<i32>,
399 pub(crate) cluster_security_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
400 pub(crate) vpc_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
401 pub(crate) master_user_password: ::std::option::Option<::std::string::String>,
402 pub(crate) cluster_parameter_group_name: ::std::option::Option<::std::string::String>,
403 pub(crate) automated_snapshot_retention_period: ::std::option::Option<i32>,
404 pub(crate) manual_snapshot_retention_period: ::std::option::Option<i32>,
405 pub(crate) preferred_maintenance_window: ::std::option::Option<::std::string::String>,
406 pub(crate) cluster_version: ::std::option::Option<::std::string::String>,
407 pub(crate) allow_version_upgrade: ::std::option::Option<bool>,
408 pub(crate) hsm_client_certificate_identifier: ::std::option::Option<::std::string::String>,
409 pub(crate) hsm_configuration_identifier: ::std::option::Option<::std::string::String>,
410 pub(crate) new_cluster_identifier: ::std::option::Option<::std::string::String>,
411 pub(crate) publicly_accessible: ::std::option::Option<bool>,
412 pub(crate) elastic_ip: ::std::option::Option<::std::string::String>,
413 pub(crate) enhanced_vpc_routing: ::std::option::Option<bool>,
414 pub(crate) maintenance_track_name: ::std::option::Option<::std::string::String>,
415 pub(crate) encrypted: ::std::option::Option<bool>,
416 pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
417 pub(crate) availability_zone_relocation: ::std::option::Option<bool>,
418 pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
419 pub(crate) port: ::std::option::Option<i32>,
420 pub(crate) manage_master_password: ::std::option::Option<bool>,
421 pub(crate) master_password_secret_kms_key_id: ::std::option::Option<::std::string::String>,
422 pub(crate) ip_address_type: ::std::option::Option<::std::string::String>,
423 pub(crate) multi_az: ::std::option::Option<bool>,
424 pub(crate) extra_compute_for_automatic_optimization: ::std::option::Option<bool>,
425}
426impl ModifyClusterInputBuilder {
427 /// <p>The unique identifier of the cluster to be modified.</p>
428 /// <p>Example: <code>examplecluster</code></p>
429 /// This field is required.
430 pub fn cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
431 self.cluster_identifier = ::std::option::Option::Some(input.into());
432 self
433 }
434 /// <p>The unique identifier of the cluster to be modified.</p>
435 /// <p>Example: <code>examplecluster</code></p>
436 pub fn set_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
437 self.cluster_identifier = input;
438 self
439 }
440 /// <p>The unique identifier of the cluster to be modified.</p>
441 /// <p>Example: <code>examplecluster</code></p>
442 pub fn get_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
443 &self.cluster_identifier
444 }
445 /// <p>The new cluster type.</p>
446 /// <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>
447 /// <p>Valid Values: <code> multi-node | single-node </code></p>
448 pub fn cluster_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
449 self.cluster_type = ::std::option::Option::Some(input.into());
450 self
451 }
452 /// <p>The new cluster type.</p>
453 /// <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>
454 /// <p>Valid Values: <code> multi-node | single-node </code></p>
455 pub fn set_cluster_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
456 self.cluster_type = input;
457 self
458 }
459 /// <p>The new cluster type.</p>
460 /// <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>
461 /// <p>Valid Values: <code> multi-node | single-node </code></p>
462 pub fn get_cluster_type(&self) -> &::std::option::Option<::std::string::String> {
463 &self.cluster_type
464 }
465 /// <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>
466 /// <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>
467 /// <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>
468 pub fn node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
469 self.node_type = ::std::option::Option::Some(input.into());
470 self
471 }
472 /// <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>
473 /// <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>
474 /// <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>
475 pub fn set_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
476 self.node_type = input;
477 self
478 }
479 /// <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>
480 /// <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>
481 /// <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>
482 pub fn get_node_type(&self) -> &::std::option::Option<::std::string::String> {
483 &self.node_type
484 }
485 /// <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>
486 /// <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>
487 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
488 pub fn number_of_nodes(mut self, input: i32) -> Self {
489 self.number_of_nodes = ::std::option::Option::Some(input);
490 self
491 }
492 /// <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>
493 /// <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>
494 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
495 pub fn set_number_of_nodes(mut self, input: ::std::option::Option<i32>) -> Self {
496 self.number_of_nodes = input;
497 self
498 }
499 /// <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>
500 /// <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>
501 /// <p>Valid Values: Integer greater than <code>0</code>.</p>
502 pub fn get_number_of_nodes(&self) -> &::std::option::Option<i32> {
503 &self.number_of_nodes
504 }
505 /// Appends an item to `cluster_security_groups`.
506 ///
507 /// To override the contents of this collection use [`set_cluster_security_groups`](Self::set_cluster_security_groups).
508 ///
509 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
510 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
511 /// <p>Constraints:</p>
512 /// <ul>
513 /// <li>
514 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
515 /// <li>
516 /// <p>First character must be a letter</p></li>
517 /// <li>
518 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
519 /// </ul>
520 pub fn cluster_security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
521 let mut v = self.cluster_security_groups.unwrap_or_default();
522 v.push(input.into());
523 self.cluster_security_groups = ::std::option::Option::Some(v);
524 self
525 }
526 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
527 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
528 /// <p>Constraints:</p>
529 /// <ul>
530 /// <li>
531 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
532 /// <li>
533 /// <p>First character must be a letter</p></li>
534 /// <li>
535 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
536 /// </ul>
537 pub fn set_cluster_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
538 self.cluster_security_groups = input;
539 self
540 }
541 /// <p>A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.</p>
542 /// <p>Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.</p>
543 /// <p>Constraints:</p>
544 /// <ul>
545 /// <li>
546 /// <p>Must be 1 to 255 alphanumeric characters or hyphens</p></li>
547 /// <li>
548 /// <p>First character must be a letter</p></li>
549 /// <li>
550 /// <p>Cannot end with a hyphen or contain two consecutive hyphens</p></li>
551 /// </ul>
552 pub fn get_cluster_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
553 &self.cluster_security_groups
554 }
555 /// Appends an item to `vpc_security_group_ids`.
556 ///
557 /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
558 ///
559 /// <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>
560 pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
561 let mut v = self.vpc_security_group_ids.unwrap_or_default();
562 v.push(input.into());
563 self.vpc_security_group_ids = ::std::option::Option::Some(v);
564 self
565 }
566 /// <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>
567 pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
568 self.vpc_security_group_ids = input;
569 self
570 }
571 /// <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>
572 pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
573 &self.vpc_security_group_ids
574 }
575 /// <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>
576 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
577 /// <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>
578 /// </note>
579 /// <p>Default: Uses existing setting.</p>
580 /// <p>Constraints:</p>
581 /// <ul>
582 /// <li>
583 /// <p>Must be between 8 and 64 characters in length.</p></li>
584 /// <li>
585 /// <p>Must contain at least one uppercase letter.</p></li>
586 /// <li>
587 /// <p>Must contain at least one lowercase letter.</p></li>
588 /// <li>
589 /// <p>Must contain one number.</p></li>
590 /// <li>
591 /// <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>
592 /// </ul>
593 pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
594 self.master_user_password = ::std::option::Option::Some(input.into());
595 self
596 }
597 /// <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>
598 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
599 /// <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>
600 /// </note>
601 /// <p>Default: Uses existing setting.</p>
602 /// <p>Constraints:</p>
603 /// <ul>
604 /// <li>
605 /// <p>Must be between 8 and 64 characters in length.</p></li>
606 /// <li>
607 /// <p>Must contain at least one uppercase letter.</p></li>
608 /// <li>
609 /// <p>Must contain at least one lowercase letter.</p></li>
610 /// <li>
611 /// <p>Must contain one number.</p></li>
612 /// <li>
613 /// <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>
614 /// </ul>
615 pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
616 self.master_user_password = input;
617 self
618 }
619 /// <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>
620 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p><note>
621 /// <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>
622 /// </note>
623 /// <p>Default: Uses existing setting.</p>
624 /// <p>Constraints:</p>
625 /// <ul>
626 /// <li>
627 /// <p>Must be between 8 and 64 characters in length.</p></li>
628 /// <li>
629 /// <p>Must contain at least one uppercase letter.</p></li>
630 /// <li>
631 /// <p>Must contain at least one lowercase letter.</p></li>
632 /// <li>
633 /// <p>Must contain one number.</p></li>
634 /// <li>
635 /// <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>
636 /// </ul>
637 pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
638 &self.master_user_password
639 }
640 /// <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>
641 /// <p>Default: Uses existing setting.</p>
642 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
643 pub fn cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
644 self.cluster_parameter_group_name = ::std::option::Option::Some(input.into());
645 self
646 }
647 /// <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>
648 /// <p>Default: Uses existing setting.</p>
649 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
650 pub fn set_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
651 self.cluster_parameter_group_name = input;
652 self
653 }
654 /// <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>
655 /// <p>Default: Uses existing setting.</p>
656 /// <p>Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.</p>
657 pub fn get_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
658 &self.cluster_parameter_group_name
659 }
660 /// <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>
661 /// <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>
662 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
663 /// <p>Default: Uses existing setting.</p>
664 /// <p>Constraints: Must be a value from 0 to 35.</p>
665 pub fn automated_snapshot_retention_period(mut self, input: i32) -> Self {
666 self.automated_snapshot_retention_period = ::std::option::Option::Some(input);
667 self
668 }
669 /// <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>
670 /// <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>
671 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
672 /// <p>Default: Uses existing setting.</p>
673 /// <p>Constraints: Must be a value from 0 to 35.</p>
674 pub fn set_automated_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
675 self.automated_snapshot_retention_period = input;
676 self
677 }
678 /// <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>
679 /// <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>
680 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
681 /// <p>Default: Uses existing setting.</p>
682 /// <p>Constraints: Must be a value from 0 to 35.</p>
683 pub fn get_automated_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
684 &self.automated_snapshot_retention_period
685 }
686 /// <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>
687 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
688 /// <p>The default value is -1.</p>
689 pub fn manual_snapshot_retention_period(mut self, input: i32) -> Self {
690 self.manual_snapshot_retention_period = ::std::option::Option::Some(input);
691 self
692 }
693 /// <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>
694 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
695 /// <p>The default value is -1.</p>
696 pub fn set_manual_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
697 self.manual_snapshot_retention_period = input;
698 self
699 }
700 /// <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>
701 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
702 /// <p>The default value is -1.</p>
703 pub fn get_manual_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
704 &self.manual_snapshot_retention_period
705 }
706 /// <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>
707 /// <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>
708 /// <p>Default: Uses existing setting.</p>
709 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
710 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
711 /// <p>Constraints: Must be at least 30 minutes.</p>
712 pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
713 self.preferred_maintenance_window = ::std::option::Option::Some(input.into());
714 self
715 }
716 /// <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>
717 /// <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>
718 /// <p>Default: Uses existing setting.</p>
719 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
720 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
721 /// <p>Constraints: Must be at least 30 minutes.</p>
722 pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
723 self.preferred_maintenance_window = input;
724 self
725 }
726 /// <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>
727 /// <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>
728 /// <p>Default: Uses existing setting.</p>
729 /// <p>Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>.</p>
730 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
731 /// <p>Constraints: Must be at least 30 minutes.</p>
732 pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
733 &self.preferred_maintenance_window
734 }
735 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
736 /// <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>
737 /// <p>Example: <code>1.0</code></p>
738 pub fn cluster_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
739 self.cluster_version = ::std::option::Option::Some(input.into());
740 self
741 }
742 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
743 /// <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>
744 /// <p>Example: <code>1.0</code></p>
745 pub fn set_cluster_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
746 self.cluster_version = input;
747 self
748 }
749 /// <p>The new version number of the Amazon Redshift engine to upgrade to.</p>
750 /// <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>
751 /// <p>Example: <code>1.0</code></p>
752 pub fn get_cluster_version(&self) -> &::std::option::Option<::std::string::String> {
753 &self.cluster_version
754 }
755 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
756 /// <p>Default: <code>false</code></p>
757 pub fn allow_version_upgrade(mut self, input: bool) -> Self {
758 self.allow_version_upgrade = ::std::option::Option::Some(input);
759 self
760 }
761 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
762 /// <p>Default: <code>false</code></p>
763 pub fn set_allow_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
764 self.allow_version_upgrade = input;
765 self
766 }
767 /// <p>If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.</p>
768 /// <p>Default: <code>false</code></p>
769 pub fn get_allow_version_upgrade(&self) -> &::std::option::Option<bool> {
770 &self.allow_version_upgrade
771 }
772 /// <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>
773 pub fn hsm_client_certificate_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
774 self.hsm_client_certificate_identifier = ::std::option::Option::Some(input.into());
775 self
776 }
777 /// <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>
778 pub fn set_hsm_client_certificate_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
779 self.hsm_client_certificate_identifier = input;
780 self
781 }
782 /// <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>
783 pub fn get_hsm_client_certificate_identifier(&self) -> &::std::option::Option<::std::string::String> {
784 &self.hsm_client_certificate_identifier
785 }
786 /// <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>
787 pub fn hsm_configuration_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
788 self.hsm_configuration_identifier = ::std::option::Option::Some(input.into());
789 self
790 }
791 /// <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>
792 pub fn set_hsm_configuration_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
793 self.hsm_configuration_identifier = input;
794 self
795 }
796 /// <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>
797 pub fn get_hsm_configuration_identifier(&self) -> &::std::option::Option<::std::string::String> {
798 &self.hsm_configuration_identifier
799 }
800 /// <p>The new identifier for the cluster.</p>
801 /// <p>Constraints:</p>
802 /// <ul>
803 /// <li>
804 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
805 /// <li>
806 /// <p>Alphabetic characters must be lowercase.</p></li>
807 /// <li>
808 /// <p>First character must be a letter.</p></li>
809 /// <li>
810 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
811 /// <li>
812 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
813 /// </ul>
814 /// <p>Example: <code>examplecluster</code></p>
815 pub fn new_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
816 self.new_cluster_identifier = ::std::option::Option::Some(input.into());
817 self
818 }
819 /// <p>The new identifier for the cluster.</p>
820 /// <p>Constraints:</p>
821 /// <ul>
822 /// <li>
823 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
824 /// <li>
825 /// <p>Alphabetic characters must be lowercase.</p></li>
826 /// <li>
827 /// <p>First character must be a letter.</p></li>
828 /// <li>
829 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
830 /// <li>
831 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
832 /// </ul>
833 /// <p>Example: <code>examplecluster</code></p>
834 pub fn set_new_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
835 self.new_cluster_identifier = input;
836 self
837 }
838 /// <p>The new identifier for the cluster.</p>
839 /// <p>Constraints:</p>
840 /// <ul>
841 /// <li>
842 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
843 /// <li>
844 /// <p>Alphabetic characters must be lowercase.</p></li>
845 /// <li>
846 /// <p>First character must be a letter.</p></li>
847 /// <li>
848 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
849 /// <li>
850 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
851 /// </ul>
852 /// <p>Example: <code>examplecluster</code></p>
853 pub fn get_new_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
854 &self.new_cluster_identifier
855 }
856 /// <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>
857 /// <p>Default: false</p>
858 pub fn publicly_accessible(mut self, input: bool) -> Self {
859 self.publicly_accessible = ::std::option::Option::Some(input);
860 self
861 }
862 /// <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>
863 /// <p>Default: false</p>
864 pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
865 self.publicly_accessible = input;
866 self
867 }
868 /// <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>
869 /// <p>Default: false</p>
870 pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
871 &self.publicly_accessible
872 }
873 /// <p>The Elastic IP (EIP) address for the cluster.</p>
874 /// <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>
875 pub fn elastic_ip(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
876 self.elastic_ip = ::std::option::Option::Some(input.into());
877 self
878 }
879 /// <p>The Elastic IP (EIP) address for the cluster.</p>
880 /// <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>
881 pub fn set_elastic_ip(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
882 self.elastic_ip = input;
883 self
884 }
885 /// <p>The Elastic IP (EIP) address for the cluster.</p>
886 /// <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>
887 pub fn get_elastic_ip(&self) -> &::std::option::Option<::std::string::String> {
888 &self.elastic_ip
889 }
890 /// <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>
891 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
892 /// <p>Default: false</p>
893 pub fn enhanced_vpc_routing(mut self, input: bool) -> Self {
894 self.enhanced_vpc_routing = ::std::option::Option::Some(input);
895 self
896 }
897 /// <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>
898 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
899 /// <p>Default: false</p>
900 pub fn set_enhanced_vpc_routing(mut self, input: ::std::option::Option<bool>) -> Self {
901 self.enhanced_vpc_routing = input;
902 self
903 }
904 /// <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>
905 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
906 /// <p>Default: false</p>
907 pub fn get_enhanced_vpc_routing(&self) -> &::std::option::Option<bool> {
908 &self.enhanced_vpc_routing
909 }
910 /// <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>
911 pub fn maintenance_track_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
912 self.maintenance_track_name = ::std::option::Option::Some(input.into());
913 self
914 }
915 /// <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>
916 pub fn set_maintenance_track_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
917 self.maintenance_track_name = input;
918 self
919 }
920 /// <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>
921 pub fn get_maintenance_track_name(&self) -> &::std::option::Option<::std::string::String> {
922 &self.maintenance_track_name
923 }
924 /// <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>
925 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
926 pub fn encrypted(mut self, input: bool) -> Self {
927 self.encrypted = ::std::option::Option::Some(input);
928 self
929 }
930 /// <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>
931 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
932 pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
933 self.encrypted = input;
934 self
935 }
936 /// <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>
937 /// <p>If the value is not encrypted (false), then the cluster is decrypted.</p>
938 pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
939 &self.encrypted
940 }
941 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
942 pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
943 self.kms_key_id = ::std::option::Option::Some(input.into());
944 self
945 }
946 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
947 pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
948 self.kms_key_id = input;
949 self
950 }
951 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
952 pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
953 &self.kms_key_id
954 }
955 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
956 pub fn availability_zone_relocation(mut self, input: bool) -> Self {
957 self.availability_zone_relocation = ::std::option::Option::Some(input);
958 self
959 }
960 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
961 pub fn set_availability_zone_relocation(mut self, input: ::std::option::Option<bool>) -> Self {
962 self.availability_zone_relocation = input;
963 self
964 }
965 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.</p>
966 pub fn get_availability_zone_relocation(&self) -> &::std::option::Option<bool> {
967 &self.availability_zone_relocation
968 }
969 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
970 pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
971 self.availability_zone = ::std::option::Option::Some(input.into());
972 self
973 }
974 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
975 pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
976 self.availability_zone = input;
977 self
978 }
979 /// <p>The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.</p>
980 pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
981 &self.availability_zone
982 }
983 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
984 /// <p>Valid Values:</p>
985 /// <ul>
986 /// <li>
987 /// <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>
988 /// <li>
989 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
990 /// </ul>
991 pub fn port(mut self, input: i32) -> Self {
992 self.port = ::std::option::Option::Some(input);
993 self
994 }
995 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
996 /// <p>Valid Values:</p>
997 /// <ul>
998 /// <li>
999 /// <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>
1000 /// <li>
1001 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
1002 /// </ul>
1003 pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
1004 self.port = input;
1005 self
1006 }
1007 /// <p>The option to change the port of an Amazon Redshift cluster.</p>
1008 /// <p>Valid Values:</p>
1009 /// <ul>
1010 /// <li>
1011 /// <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>
1012 /// <li>
1013 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
1014 /// </ul>
1015 pub fn get_port(&self) -> &::std::option::Option<i32> {
1016 &self.port
1017 }
1018 /// <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>
1019 pub fn manage_master_password(mut self, input: bool) -> Self {
1020 self.manage_master_password = ::std::option::Option::Some(input);
1021 self
1022 }
1023 /// <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>
1024 pub fn set_manage_master_password(mut self, input: ::std::option::Option<bool>) -> Self {
1025 self.manage_master_password = input;
1026 self
1027 }
1028 /// <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>
1029 pub fn get_manage_master_password(&self) -> &::std::option::Option<bool> {
1030 &self.manage_master_password
1031 }
1032 /// <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>
1033 pub fn master_password_secret_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1034 self.master_password_secret_kms_key_id = ::std::option::Option::Some(input.into());
1035 self
1036 }
1037 /// <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>
1038 pub fn set_master_password_secret_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1039 self.master_password_secret_kms_key_id = input;
1040 self
1041 }
1042 /// <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>
1043 pub fn get_master_password_secret_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
1044 &self.master_password_secret_kms_key_id
1045 }
1046 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
1047 pub fn ip_address_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1048 self.ip_address_type = ::std::option::Option::Some(input.into());
1049 self
1050 }
1051 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
1052 pub fn set_ip_address_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1053 self.ip_address_type = input;
1054 self
1055 }
1056 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
1057 pub fn get_ip_address_type(&self) -> &::std::option::Option<::std::string::String> {
1058 &self.ip_address_type
1059 }
1060 /// <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>
1061 pub fn multi_az(mut self, input: bool) -> Self {
1062 self.multi_az = ::std::option::Option::Some(input);
1063 self
1064 }
1065 /// <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>
1066 pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
1067 self.multi_az = input;
1068 self
1069 }
1070 /// <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>
1071 pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
1072 &self.multi_az
1073 }
1074 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
1075 /// <p>Default: false</p>
1076 pub fn extra_compute_for_automatic_optimization(mut self, input: bool) -> Self {
1077 self.extra_compute_for_automatic_optimization = ::std::option::Option::Some(input);
1078 self
1079 }
1080 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
1081 /// <p>Default: false</p>
1082 pub fn set_extra_compute_for_automatic_optimization(mut self, input: ::std::option::Option<bool>) -> Self {
1083 self.extra_compute_for_automatic_optimization = input;
1084 self
1085 }
1086 /// <p>If <code>true</code>, allocates additional compute resources for running automatic optimization operations.</p>
1087 /// <p>Default: false</p>
1088 pub fn get_extra_compute_for_automatic_optimization(&self) -> &::std::option::Option<bool> {
1089 &self.extra_compute_for_automatic_optimization
1090 }
1091 /// Consumes the builder and constructs a [`ModifyClusterInput`](crate::operation::modify_cluster::ModifyClusterInput).
1092 pub fn build(
1093 self,
1094 ) -> ::std::result::Result<crate::operation::modify_cluster::ModifyClusterInput, ::aws_smithy_types::error::operation::BuildError> {
1095 ::std::result::Result::Ok(crate::operation::modify_cluster::ModifyClusterInput {
1096 cluster_identifier: self.cluster_identifier,
1097 cluster_type: self.cluster_type,
1098 node_type: self.node_type,
1099 number_of_nodes: self.number_of_nodes,
1100 cluster_security_groups: self.cluster_security_groups,
1101 vpc_security_group_ids: self.vpc_security_group_ids,
1102 master_user_password: self.master_user_password,
1103 cluster_parameter_group_name: self.cluster_parameter_group_name,
1104 automated_snapshot_retention_period: self.automated_snapshot_retention_period,
1105 manual_snapshot_retention_period: self.manual_snapshot_retention_period,
1106 preferred_maintenance_window: self.preferred_maintenance_window,
1107 cluster_version: self.cluster_version,
1108 allow_version_upgrade: self.allow_version_upgrade,
1109 hsm_client_certificate_identifier: self.hsm_client_certificate_identifier,
1110 hsm_configuration_identifier: self.hsm_configuration_identifier,
1111 new_cluster_identifier: self.new_cluster_identifier,
1112 publicly_accessible: self.publicly_accessible,
1113 elastic_ip: self.elastic_ip,
1114 enhanced_vpc_routing: self.enhanced_vpc_routing,
1115 maintenance_track_name: self.maintenance_track_name,
1116 encrypted: self.encrypted,
1117 kms_key_id: self.kms_key_id,
1118 availability_zone_relocation: self.availability_zone_relocation,
1119 availability_zone: self.availability_zone,
1120 port: self.port,
1121 manage_master_password: self.manage_master_password,
1122 master_password_secret_kms_key_id: self.master_password_secret_kms_key_id,
1123 ip_address_type: self.ip_address_type,
1124 multi_az: self.multi_az,
1125 extra_compute_for_automatic_optimization: self.extra_compute_for_automatic_optimization,
1126 })
1127 }
1128}
1129impl ::std::fmt::Debug for ModifyClusterInputBuilder {
1130 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1131 let mut formatter = f.debug_struct("ModifyClusterInputBuilder");
1132 formatter.field("cluster_identifier", &self.cluster_identifier);
1133 formatter.field("cluster_type", &self.cluster_type);
1134 formatter.field("node_type", &self.node_type);
1135 formatter.field("number_of_nodes", &self.number_of_nodes);
1136 formatter.field("cluster_security_groups", &self.cluster_security_groups);
1137 formatter.field("vpc_security_group_ids", &self.vpc_security_group_ids);
1138 formatter.field("master_user_password", &"*** Sensitive Data Redacted ***");
1139 formatter.field("cluster_parameter_group_name", &self.cluster_parameter_group_name);
1140 formatter.field("automated_snapshot_retention_period", &self.automated_snapshot_retention_period);
1141 formatter.field("manual_snapshot_retention_period", &self.manual_snapshot_retention_period);
1142 formatter.field("preferred_maintenance_window", &self.preferred_maintenance_window);
1143 formatter.field("cluster_version", &self.cluster_version);
1144 formatter.field("allow_version_upgrade", &self.allow_version_upgrade);
1145 formatter.field("hsm_client_certificate_identifier", &self.hsm_client_certificate_identifier);
1146 formatter.field("hsm_configuration_identifier", &self.hsm_configuration_identifier);
1147 formatter.field("new_cluster_identifier", &self.new_cluster_identifier);
1148 formatter.field("publicly_accessible", &self.publicly_accessible);
1149 formatter.field("elastic_ip", &self.elastic_ip);
1150 formatter.field("enhanced_vpc_routing", &self.enhanced_vpc_routing);
1151 formatter.field("maintenance_track_name", &self.maintenance_track_name);
1152 formatter.field("encrypted", &self.encrypted);
1153 formatter.field("kms_key_id", &self.kms_key_id);
1154 formatter.field("availability_zone_relocation", &self.availability_zone_relocation);
1155 formatter.field("availability_zone", &self.availability_zone);
1156 formatter.field("port", &self.port);
1157 formatter.field("manage_master_password", &self.manage_master_password);
1158 formatter.field("master_password_secret_kms_key_id", &self.master_password_secret_kms_key_id);
1159 formatter.field("ip_address_type", &self.ip_address_type);
1160 formatter.field("multi_az", &self.multi_az);
1161 formatter.field("extra_compute_for_automatic_optimization", &self.extra_compute_for_automatic_optimization);
1162 formatter.finish()
1163 }
1164}