aws_sdk_redshift/operation/create_cluster/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_cluster::_create_cluster_output::CreateClusterOutputBuilder;
3
4pub use crate::operation::create_cluster::_create_cluster_input::CreateClusterInputBuilder;
5
6impl crate::operation::create_cluster::builders::CreateClusterInputBuilder {
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::create_cluster::CreateClusterOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_cluster::CreateClusterError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_cluster();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateCluster`.
24///
25/// <p>Creates a new cluster with the specified parameters.</p>
26/// <p>To create a cluster in Virtual Private Cloud (VPC), you must provide a cluster subnet group name. The cluster subnet group identifies the subnets of your VPC that Amazon Redshift uses when creating the cluster. 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>
27/// <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>
28/// <ul>
29/// <li>
30/// <p>Creating a public cluster</p></li>
31/// <li>
32/// <p>Restoring a public cluster</p></li>
33/// <li>
34/// <p>Modifying a private cluster to be public</p></li>
35/// <li>
36/// <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>
37/// </ul>
38/// <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>
39#[derive(::std::clone::Clone, ::std::fmt::Debug)]
40pub struct CreateClusterFluentBuilder {
41 handle: ::std::sync::Arc<crate::client::Handle>,
42 inner: crate::operation::create_cluster::builders::CreateClusterInputBuilder,
43 config_override: ::std::option::Option<crate::config::Builder>,
44}
45impl
46 crate::client::customize::internal::CustomizableSend<
47 crate::operation::create_cluster::CreateClusterOutput,
48 crate::operation::create_cluster::CreateClusterError,
49 > for CreateClusterFluentBuilder
50{
51 fn send(
52 self,
53 config_override: crate::config::Builder,
54 ) -> crate::client::customize::internal::BoxFuture<
55 crate::client::customize::internal::SendResult<
56 crate::operation::create_cluster::CreateClusterOutput,
57 crate::operation::create_cluster::CreateClusterError,
58 >,
59 > {
60 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
61 }
62}
63impl CreateClusterFluentBuilder {
64 /// Creates a new `CreateClusterFluentBuilder`.
65 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
66 Self {
67 handle,
68 inner: ::std::default::Default::default(),
69 config_override: ::std::option::Option::None,
70 }
71 }
72 /// Access the CreateCluster as a reference.
73 pub fn as_input(&self) -> &crate::operation::create_cluster::builders::CreateClusterInputBuilder {
74 &self.inner
75 }
76 /// Sends the request and returns the response.
77 ///
78 /// If an error occurs, an `SdkError` will be returned with additional details that
79 /// can be matched against.
80 ///
81 /// By default, any retryable failures will be retried twice. Retry behavior
82 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
83 /// set when configuring the client.
84 pub async fn send(
85 self,
86 ) -> ::std::result::Result<
87 crate::operation::create_cluster::CreateClusterOutput,
88 ::aws_smithy_runtime_api::client::result::SdkError<
89 crate::operation::create_cluster::CreateClusterError,
90 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
91 >,
92 > {
93 let input = self
94 .inner
95 .build()
96 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
97 let runtime_plugins = crate::operation::create_cluster::CreateCluster::operation_runtime_plugins(
98 self.handle.runtime_plugins.clone(),
99 &self.handle.conf,
100 self.config_override,
101 );
102 crate::operation::create_cluster::CreateCluster::orchestrate(&runtime_plugins, input).await
103 }
104
105 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
106 pub fn customize(
107 self,
108 ) -> crate::client::customize::CustomizableOperation<
109 crate::operation::create_cluster::CreateClusterOutput,
110 crate::operation::create_cluster::CreateClusterError,
111 Self,
112 > {
113 crate::client::customize::CustomizableOperation::new(self)
114 }
115 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
116 self.set_config_override(::std::option::Option::Some(config_override.into()));
117 self
118 }
119
120 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
121 self.config_override = config_override;
122 self
123 }
124 /// <p>The name of the first database to be created when the cluster is created.</p>
125 /// <p>To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html">Create a Database</a> in the Amazon Redshift Database Developer Guide.</p>
126 /// <p>Default: <code>dev</code></p>
127 /// <p>Constraints:</p>
128 /// <ul>
129 /// <li>
130 /// <p>Must contain 1 to 64 alphanumeric characters.</p></li>
131 /// <li>
132 /// <p>Must contain only lowercase letters.</p></li>
133 /// <li>
134 /// <p>Cannot be a word that is reserved by the service. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
135 /// </ul>
136 pub fn db_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
137 self.inner = self.inner.db_name(input.into());
138 self
139 }
140 /// <p>The name of the first database to be created when the cluster is created.</p>
141 /// <p>To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html">Create a Database</a> in the Amazon Redshift Database Developer Guide.</p>
142 /// <p>Default: <code>dev</code></p>
143 /// <p>Constraints:</p>
144 /// <ul>
145 /// <li>
146 /// <p>Must contain 1 to 64 alphanumeric characters.</p></li>
147 /// <li>
148 /// <p>Must contain only lowercase letters.</p></li>
149 /// <li>
150 /// <p>Cannot be a word that is reserved by the service. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
151 /// </ul>
152 pub fn set_db_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153 self.inner = self.inner.set_db_name(input);
154 self
155 }
156 /// <p>The name of the first database to be created when the cluster is created.</p>
157 /// <p>To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html">Create a Database</a> in the Amazon Redshift Database Developer Guide.</p>
158 /// <p>Default: <code>dev</code></p>
159 /// <p>Constraints:</p>
160 /// <ul>
161 /// <li>
162 /// <p>Must contain 1 to 64 alphanumeric characters.</p></li>
163 /// <li>
164 /// <p>Must contain only lowercase letters.</p></li>
165 /// <li>
166 /// <p>Cannot be a word that is reserved by the service. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
167 /// </ul>
168 pub fn get_db_name(&self) -> &::std::option::Option<::std::string::String> {
169 self.inner.get_db_name()
170 }
171 /// <p>A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. The identifier also appears in the Amazon Redshift console.</p>
172 /// <p>Constraints:</p>
173 /// <ul>
174 /// <li>
175 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
176 /// <li>
177 /// <p>Alphabetic characters must be lowercase.</p></li>
178 /// <li>
179 /// <p>First character must be a letter.</p></li>
180 /// <li>
181 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
182 /// <li>
183 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
184 /// </ul>
185 /// <p>Example: <code>myexamplecluster</code></p>
186 pub fn cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
187 self.inner = self.inner.cluster_identifier(input.into());
188 self
189 }
190 /// <p>A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. The identifier also appears in the Amazon Redshift console.</p>
191 /// <p>Constraints:</p>
192 /// <ul>
193 /// <li>
194 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
195 /// <li>
196 /// <p>Alphabetic characters must be lowercase.</p></li>
197 /// <li>
198 /// <p>First character must be a letter.</p></li>
199 /// <li>
200 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
201 /// <li>
202 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
203 /// </ul>
204 /// <p>Example: <code>myexamplecluster</code></p>
205 pub fn set_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
206 self.inner = self.inner.set_cluster_identifier(input);
207 self
208 }
209 /// <p>A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. The identifier also appears in the Amazon Redshift console.</p>
210 /// <p>Constraints:</p>
211 /// <ul>
212 /// <li>
213 /// <p>Must contain from 1 to 63 alphanumeric characters or hyphens.</p></li>
214 /// <li>
215 /// <p>Alphabetic characters must be lowercase.</p></li>
216 /// <li>
217 /// <p>First character must be a letter.</p></li>
218 /// <li>
219 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
220 /// <li>
221 /// <p>Must be unique for all clusters within an Amazon Web Services account.</p></li>
222 /// </ul>
223 /// <p>Example: <code>myexamplecluster</code></p>
224 pub fn get_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
225 self.inner.get_cluster_identifier()
226 }
227 /// <p>The type of the cluster. When cluster type is specified as</p>
228 /// <ul>
229 /// <li>
230 /// <p><code>single-node</code>, the <b>NumberOfNodes</b> parameter is not required.</p></li>
231 /// <li>
232 /// <p><code>multi-node</code>, the <b>NumberOfNodes</b> parameter is required.</p></li>
233 /// </ul>
234 /// <p>Valid Values: <code>multi-node</code> | <code>single-node</code></p>
235 /// <p>Default: <code>multi-node</code></p>
236 pub fn cluster_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
237 self.inner = self.inner.cluster_type(input.into());
238 self
239 }
240 /// <p>The type of the cluster. When cluster type is specified as</p>
241 /// <ul>
242 /// <li>
243 /// <p><code>single-node</code>, the <b>NumberOfNodes</b> parameter is not required.</p></li>
244 /// <li>
245 /// <p><code>multi-node</code>, the <b>NumberOfNodes</b> parameter is required.</p></li>
246 /// </ul>
247 /// <p>Valid Values: <code>multi-node</code> | <code>single-node</code></p>
248 /// <p>Default: <code>multi-node</code></p>
249 pub fn set_cluster_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
250 self.inner = self.inner.set_cluster_type(input);
251 self
252 }
253 /// <p>The type of the cluster. When cluster type is specified as</p>
254 /// <ul>
255 /// <li>
256 /// <p><code>single-node</code>, the <b>NumberOfNodes</b> parameter is not required.</p></li>
257 /// <li>
258 /// <p><code>multi-node</code>, the <b>NumberOfNodes</b> parameter is required.</p></li>
259 /// </ul>
260 /// <p>Valid Values: <code>multi-node</code> | <code>single-node</code></p>
261 /// <p>Default: <code>multi-node</code></p>
262 pub fn get_cluster_type(&self) -> &::std::option::Option<::std::string::String> {
263 self.inner.get_cluster_type()
264 }
265 /// <p>The node type to be provisioned for the cluster. For information about node types, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
266 /// <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>
267 pub fn node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
268 self.inner = self.inner.node_type(input.into());
269 self
270 }
271 /// <p>The node type to be provisioned for the cluster. For information about node types, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
272 /// <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>
273 pub fn set_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
274 self.inner = self.inner.set_node_type(input);
275 self
276 }
277 /// <p>The node type to be provisioned for the cluster. For information about node types, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
278 /// <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>
279 pub fn get_node_type(&self) -> &::std::option::Option<::std::string::String> {
280 self.inner.get_node_type()
281 }
282 /// <p>The user name associated with the admin user account for the cluster that is being created.</p>
283 /// <p>Constraints:</p>
284 /// <ul>
285 /// <li>
286 /// <p>Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be <code>PUBLIC</code>.</p></li>
287 /// <li>
288 /// <p>Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.</p></li>
289 /// <li>
290 /// <p>The first character must be a letter.</p></li>
291 /// <li>
292 /// <p>Must not contain a colon (:) or a slash (/).</p></li>
293 /// <li>
294 /// <p>Cannot be a reserved word. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
295 /// </ul>
296 pub fn master_username(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
297 self.inner = self.inner.master_username(input.into());
298 self
299 }
300 /// <p>The user name associated with the admin user account for the cluster that is being created.</p>
301 /// <p>Constraints:</p>
302 /// <ul>
303 /// <li>
304 /// <p>Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be <code>PUBLIC</code>.</p></li>
305 /// <li>
306 /// <p>Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.</p></li>
307 /// <li>
308 /// <p>The first character must be a letter.</p></li>
309 /// <li>
310 /// <p>Must not contain a colon (:) or a slash (/).</p></li>
311 /// <li>
312 /// <p>Cannot be a reserved word. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
313 /// </ul>
314 pub fn set_master_username(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
315 self.inner = self.inner.set_master_username(input);
316 self
317 }
318 /// <p>The user name associated with the admin user account for the cluster that is being created.</p>
319 /// <p>Constraints:</p>
320 /// <ul>
321 /// <li>
322 /// <p>Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be <code>PUBLIC</code>.</p></li>
323 /// <li>
324 /// <p>Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.</p></li>
325 /// <li>
326 /// <p>The first character must be a letter.</p></li>
327 /// <li>
328 /// <p>Must not contain a colon (:) or a slash (/).</p></li>
329 /// <li>
330 /// <p>Cannot be a reserved word. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.</p></li>
331 /// </ul>
332 pub fn get_master_username(&self) -> &::std::option::Option<::std::string::String> {
333 self.inner.get_master_username()
334 }
335 /// <p>The password associated with the admin user account for the cluster that is being created.</p>
336 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p>
337 /// <p>Constraints:</p>
338 /// <ul>
339 /// <li>
340 /// <p>Must be between 8 and 64 characters in length.</p></li>
341 /// <li>
342 /// <p>Must contain at least one uppercase letter.</p></li>
343 /// <li>
344 /// <p>Must contain at least one lowercase letter.</p></li>
345 /// <li>
346 /// <p>Must contain one number.</p></li>
347 /// <li>
348 /// <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>
349 /// </ul>
350 pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
351 self.inner = self.inner.master_user_password(input.into());
352 self
353 }
354 /// <p>The password associated with the admin user account for the cluster that is being created.</p>
355 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p>
356 /// <p>Constraints:</p>
357 /// <ul>
358 /// <li>
359 /// <p>Must be between 8 and 64 characters in length.</p></li>
360 /// <li>
361 /// <p>Must contain at least one uppercase letter.</p></li>
362 /// <li>
363 /// <p>Must contain at least one lowercase letter.</p></li>
364 /// <li>
365 /// <p>Must contain one number.</p></li>
366 /// <li>
367 /// <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>
368 /// </ul>
369 pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
370 self.inner = self.inner.set_master_user_password(input);
371 self
372 }
373 /// <p>The password associated with the admin user account for the cluster that is being created.</p>
374 /// <p>You can't use <code>MasterUserPassword</code> if <code>ManageMasterPassword</code> is <code>true</code>.</p>
375 /// <p>Constraints:</p>
376 /// <ul>
377 /// <li>
378 /// <p>Must be between 8 and 64 characters in length.</p></li>
379 /// <li>
380 /// <p>Must contain at least one uppercase letter.</p></li>
381 /// <li>
382 /// <p>Must contain at least one lowercase letter.</p></li>
383 /// <li>
384 /// <p>Must contain one number.</p></li>
385 /// <li>
386 /// <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>
387 /// </ul>
388 pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
389 self.inner.get_master_user_password()
390 }
391 ///
392 /// Appends an item to `ClusterSecurityGroups`.
393 ///
394 /// To override the contents of this collection use [`set_cluster_security_groups`](Self::set_cluster_security_groups).
395 ///
396 /// <p>A list of security groups to be associated with this cluster.</p>
397 /// <p>Default: The default cluster security group for Amazon Redshift.</p>
398 pub fn cluster_security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
399 self.inner = self.inner.cluster_security_groups(input.into());
400 self
401 }
402 /// <p>A list of security groups to be associated with this cluster.</p>
403 /// <p>Default: The default cluster security group for Amazon Redshift.</p>
404 pub fn set_cluster_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
405 self.inner = self.inner.set_cluster_security_groups(input);
406 self
407 }
408 /// <p>A list of security groups to be associated with this cluster.</p>
409 /// <p>Default: The default cluster security group for Amazon Redshift.</p>
410 pub fn get_cluster_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
411 self.inner.get_cluster_security_groups()
412 }
413 ///
414 /// Appends an item to `VpcSecurityGroupIds`.
415 ///
416 /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
417 ///
418 /// <p>A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.</p>
419 /// <p>Default: The default VPC security group is associated with the cluster.</p>
420 pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
421 self.inner = self.inner.vpc_security_group_ids(input.into());
422 self
423 }
424 /// <p>A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.</p>
425 /// <p>Default: The default VPC security group is associated with the cluster.</p>
426 pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
427 self.inner = self.inner.set_vpc_security_group_ids(input);
428 self
429 }
430 /// <p>A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.</p>
431 /// <p>Default: The default VPC security group is associated with the cluster.</p>
432 pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
433 self.inner.get_vpc_security_group_ids()
434 }
435 /// <p>The name of a cluster subnet group to be associated with this cluster.</p>
436 /// <p>If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).</p>
437 pub fn cluster_subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
438 self.inner = self.inner.cluster_subnet_group_name(input.into());
439 self
440 }
441 /// <p>The name of a cluster subnet group to be associated with this cluster.</p>
442 /// <p>If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).</p>
443 pub fn set_cluster_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
444 self.inner = self.inner.set_cluster_subnet_group_name(input);
445 self
446 }
447 /// <p>The name of a cluster subnet group to be associated with this cluster.</p>
448 /// <p>If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).</p>
449 pub fn get_cluster_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
450 self.inner.get_cluster_subnet_group_name()
451 }
452 /// <p>The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency.</p>
453 /// <p>Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint.</p>
454 /// <p>Example: <code>us-east-2d</code></p>
455 /// <p>Constraint: The specified Availability Zone must be in the same region as the current endpoint.</p>
456 pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
457 self.inner = self.inner.availability_zone(input.into());
458 self
459 }
460 /// <p>The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency.</p>
461 /// <p>Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint.</p>
462 /// <p>Example: <code>us-east-2d</code></p>
463 /// <p>Constraint: The specified Availability Zone must be in the same region as the current endpoint.</p>
464 pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
465 self.inner = self.inner.set_availability_zone(input);
466 self
467 }
468 /// <p>The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency.</p>
469 /// <p>Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint.</p>
470 /// <p>Example: <code>us-east-2d</code></p>
471 /// <p>Constraint: The specified Availability Zone must be in the same region as the current endpoint.</p>
472 pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
473 self.inner.get_availability_zone()
474 }
475 /// <p>The weekly time range (in UTC) during which automated cluster maintenance can occur.</p>
476 /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
477 /// <p>Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. For more information about the time blocks for each region, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance Windows</a> in Amazon Redshift Cluster Management Guide.</p>
478 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
479 /// <p>Constraints: Minimum 30-minute window.</p>
480 pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
481 self.inner = self.inner.preferred_maintenance_window(input.into());
482 self
483 }
484 /// <p>The weekly time range (in UTC) during which automated cluster maintenance can occur.</p>
485 /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
486 /// <p>Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. For more information about the time blocks for each region, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance Windows</a> in Amazon Redshift Cluster Management Guide.</p>
487 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
488 /// <p>Constraints: Minimum 30-minute window.</p>
489 pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
490 self.inner = self.inner.set_preferred_maintenance_window(input);
491 self
492 }
493 /// <p>The weekly time range (in UTC) during which automated cluster maintenance can occur.</p>
494 /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
495 /// <p>Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. For more information about the time blocks for each region, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance Windows</a> in Amazon Redshift Cluster Management Guide.</p>
496 /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
497 /// <p>Constraints: Minimum 30-minute window.</p>
498 pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
499 self.inner.get_preferred_maintenance_window()
500 }
501 /// <p>The name of the parameter group to be associated with this cluster.</p>
502 /// <p>Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working with Amazon Redshift Parameter Groups</a></p>
503 /// <p>Constraints:</p>
504 /// <ul>
505 /// <li>
506 /// <p>Must be 1 to 255 alphanumeric characters or hyphens.</p></li>
507 /// <li>
508 /// <p>First character must be a letter.</p></li>
509 /// <li>
510 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
511 /// </ul>
512 pub fn cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
513 self.inner = self.inner.cluster_parameter_group_name(input.into());
514 self
515 }
516 /// <p>The name of the parameter group to be associated with this cluster.</p>
517 /// <p>Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working with Amazon Redshift Parameter Groups</a></p>
518 /// <p>Constraints:</p>
519 /// <ul>
520 /// <li>
521 /// <p>Must be 1 to 255 alphanumeric characters or hyphens.</p></li>
522 /// <li>
523 /// <p>First character must be a letter.</p></li>
524 /// <li>
525 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
526 /// </ul>
527 pub fn set_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
528 self.inner = self.inner.set_cluster_parameter_group_name(input);
529 self
530 }
531 /// <p>The name of the parameter group to be associated with this cluster.</p>
532 /// <p>Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working with Amazon Redshift Parameter Groups</a></p>
533 /// <p>Constraints:</p>
534 /// <ul>
535 /// <li>
536 /// <p>Must be 1 to 255 alphanumeric characters or hyphens.</p></li>
537 /// <li>
538 /// <p>First character must be a letter.</p></li>
539 /// <li>
540 /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
541 /// </ul>
542 pub fn get_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
543 self.inner.get_cluster_parameter_group_name()
544 }
545 /// <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>
546 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
547 /// <p>Default: <code>1</code></p>
548 /// <p>Constraints: Must be a value from 0 to 35.</p>
549 pub fn automated_snapshot_retention_period(mut self, input: i32) -> Self {
550 self.inner = self.inner.automated_snapshot_retention_period(input);
551 self
552 }
553 /// <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>
554 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
555 /// <p>Default: <code>1</code></p>
556 /// <p>Constraints: Must be a value from 0 to 35.</p>
557 pub fn set_automated_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
558 self.inner = self.inner.set_automated_snapshot_retention_period(input);
559 self
560 }
561 /// <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>
562 /// <p>You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.</p>
563 /// <p>Default: <code>1</code></p>
564 /// <p>Constraints: Must be a value from 0 to 35.</p>
565 pub fn get_automated_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
566 self.inner.get_automated_snapshot_retention_period()
567 }
568 /// <p>The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots.</p>
569 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
570 pub fn manual_snapshot_retention_period(mut self, input: i32) -> Self {
571 self.inner = self.inner.manual_snapshot_retention_period(input);
572 self
573 }
574 /// <p>The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots.</p>
575 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
576 pub fn set_manual_snapshot_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
577 self.inner = self.inner.set_manual_snapshot_retention_period(input);
578 self
579 }
580 /// <p>The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots.</p>
581 /// <p>The value must be either -1 or an integer between 1 and 3,653.</p>
582 pub fn get_manual_snapshot_retention_period(&self) -> &::std::option::Option<i32> {
583 self.inner.get_manual_snapshot_retention_period()
584 }
585 /// <p>The port number on which the cluster accepts incoming connections.</p>
586 /// <p>The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.</p>
587 /// <p>Default: <code>5439</code></p>
588 /// <p>Valid Values:</p>
589 /// <ul>
590 /// <li>
591 /// <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>
592 /// <li>
593 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
594 /// </ul>
595 pub fn port(mut self, input: i32) -> Self {
596 self.inner = self.inner.port(input);
597 self
598 }
599 /// <p>The port number on which the cluster accepts incoming connections.</p>
600 /// <p>The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.</p>
601 /// <p>Default: <code>5439</code></p>
602 /// <p>Valid Values:</p>
603 /// <ul>
604 /// <li>
605 /// <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>
606 /// <li>
607 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
608 /// </ul>
609 pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
610 self.inner = self.inner.set_port(input);
611 self
612 }
613 /// <p>The port number on which the cluster accepts incoming connections.</p>
614 /// <p>The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.</p>
615 /// <p>Default: <code>5439</code></p>
616 /// <p>Valid Values:</p>
617 /// <ul>
618 /// <li>
619 /// <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>
620 /// <li>
621 /// <p>For clusters with dc2 nodes - Select a port within the range <code>1150-65535</code>.</p></li>
622 /// </ul>
623 pub fn get_port(&self) -> &::std::option::Option<i32> {
624 self.inner.get_port()
625 }
626 /// <p>The version of the Amazon Redshift engine software that you want to deploy on the cluster.</p>
627 /// <p>The version selected runs on all the nodes in the cluster.</p>
628 /// <p>Constraints: Only version 1.0 is currently available.</p>
629 /// <p>Example: <code>1.0</code></p>
630 pub fn cluster_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
631 self.inner = self.inner.cluster_version(input.into());
632 self
633 }
634 /// <p>The version of the Amazon Redshift engine software that you want to deploy on the cluster.</p>
635 /// <p>The version selected runs on all the nodes in the cluster.</p>
636 /// <p>Constraints: Only version 1.0 is currently available.</p>
637 /// <p>Example: <code>1.0</code></p>
638 pub fn set_cluster_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
639 self.inner = self.inner.set_cluster_version(input);
640 self
641 }
642 /// <p>The version of the Amazon Redshift engine software that you want to deploy on the cluster.</p>
643 /// <p>The version selected runs on all the nodes in the cluster.</p>
644 /// <p>Constraints: Only version 1.0 is currently available.</p>
645 /// <p>Example: <code>1.0</code></p>
646 pub fn get_cluster_version(&self) -> &::std::option::Option<::std::string::String> {
647 self.inner.get_cluster_version()
648 }
649 /// <p>If <code>true</code>, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.</p>
650 /// <p>When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster.</p>
651 /// <p>Default: <code>true</code></p>
652 pub fn allow_version_upgrade(mut self, input: bool) -> Self {
653 self.inner = self.inner.allow_version_upgrade(input);
654 self
655 }
656 /// <p>If <code>true</code>, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.</p>
657 /// <p>When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster.</p>
658 /// <p>Default: <code>true</code></p>
659 pub fn set_allow_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
660 self.inner = self.inner.set_allow_version_upgrade(input);
661 self
662 }
663 /// <p>If <code>true</code>, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.</p>
664 /// <p>When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster.</p>
665 /// <p>Default: <code>true</code></p>
666 pub fn get_allow_version_upgrade(&self) -> &::std::option::Option<bool> {
667 self.inner.get_allow_version_upgrade()
668 }
669 /// <p>The number of compute nodes in the cluster. This parameter is required when the <b>ClusterType</b> parameter is specified as <code>multi-node</code>.</p>
670 /// <p>For information about determining how many nodes you need, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
671 /// <p>If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster.</p>
672 /// <p>Default: <code>1</code></p>
673 /// <p>Constraints: Value must be at least 1 and no more than 100.</p>
674 pub fn number_of_nodes(mut self, input: i32) -> Self {
675 self.inner = self.inner.number_of_nodes(input);
676 self
677 }
678 /// <p>The number of compute nodes in the cluster. This parameter is required when the <b>ClusterType</b> parameter is specified as <code>multi-node</code>.</p>
679 /// <p>For information about determining how many nodes you need, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
680 /// <p>If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster.</p>
681 /// <p>Default: <code>1</code></p>
682 /// <p>Constraints: Value must be at least 1 and no more than 100.</p>
683 pub fn set_number_of_nodes(mut self, input: ::std::option::Option<i32>) -> Self {
684 self.inner = self.inner.set_number_of_nodes(input);
685 self
686 }
687 /// <p>The number of compute nodes in the cluster. This parameter is required when the <b>ClusterType</b> parameter is specified as <code>multi-node</code>.</p>
688 /// <p>For information about determining how many nodes you need, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
689 /// <p>If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster.</p>
690 /// <p>Default: <code>1</code></p>
691 /// <p>Constraints: Value must be at least 1 and no more than 100.</p>
692 pub fn get_number_of_nodes(&self) -> &::std::option::Option<i32> {
693 self.inner.get_number_of_nodes()
694 }
695 /// <p>If <code>true</code>, the cluster can be accessed from a public network.</p>
696 /// <p>Default: false</p>
697 pub fn publicly_accessible(mut self, input: bool) -> Self {
698 self.inner = self.inner.publicly_accessible(input);
699 self
700 }
701 /// <p>If <code>true</code>, the cluster can be accessed from a public network.</p>
702 /// <p>Default: false</p>
703 pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
704 self.inner = self.inner.set_publicly_accessible(input);
705 self
706 }
707 /// <p>If <code>true</code>, the cluster can be accessed from a public network.</p>
708 /// <p>Default: false</p>
709 pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
710 self.inner.get_publicly_accessible()
711 }
712 /// <p>If <code>true</code>, the data in the cluster is encrypted at rest. If you set the value on this parameter to <code>false</code>, the request will fail.</p>
713 /// <p>Default: true</p>
714 pub fn encrypted(mut self, input: bool) -> Self {
715 self.inner = self.inner.encrypted(input);
716 self
717 }
718 /// <p>If <code>true</code>, the data in the cluster is encrypted at rest. If you set the value on this parameter to <code>false</code>, the request will fail.</p>
719 /// <p>Default: true</p>
720 pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
721 self.inner = self.inner.set_encrypted(input);
722 self
723 }
724 /// <p>If <code>true</code>, the data in the cluster is encrypted at rest. If you set the value on this parameter to <code>false</code>, the request will fail.</p>
725 /// <p>Default: true</p>
726 pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
727 self.inner.get_encrypted()
728 }
729 /// <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>
730 pub fn hsm_client_certificate_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
731 self.inner = self.inner.hsm_client_certificate_identifier(input.into());
732 self
733 }
734 /// <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>
735 pub fn set_hsm_client_certificate_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
736 self.inner = self.inner.set_hsm_client_certificate_identifier(input);
737 self
738 }
739 /// <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>
740 pub fn get_hsm_client_certificate_identifier(&self) -> &::std::option::Option<::std::string::String> {
741 self.inner.get_hsm_client_certificate_identifier()
742 }
743 /// <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>
744 pub fn hsm_configuration_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
745 self.inner = self.inner.hsm_configuration_identifier(input.into());
746 self
747 }
748 /// <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>
749 pub fn set_hsm_configuration_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
750 self.inner = self.inner.set_hsm_configuration_identifier(input);
751 self
752 }
753 /// <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>
754 pub fn get_hsm_configuration_identifier(&self) -> &::std::option::Option<::std::string::String> {
755 self.inner.get_hsm_configuration_identifier()
756 }
757 /// <p>The Elastic IP (EIP) address for the cluster.</p>
758 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. Don't specify the Elastic IP address for a publicly accessible cluster with availability zone relocation turned on. 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>
759 pub fn elastic_ip(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
760 self.inner = self.inner.elastic_ip(input.into());
761 self
762 }
763 /// <p>The Elastic IP (EIP) address for the cluster.</p>
764 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. Don't specify the Elastic IP address for a publicly accessible cluster with availability zone relocation turned on. 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>
765 pub fn set_elastic_ip(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
766 self.inner = self.inner.set_elastic_ip(input);
767 self
768 }
769 /// <p>The Elastic IP (EIP) address for the cluster.</p>
770 /// <p>Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. Don't specify the Elastic IP address for a publicly accessible cluster with availability zone relocation turned on. 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>
771 pub fn get_elastic_ip(&self) -> &::std::option::Option<::std::string::String> {
772 self.inner.get_elastic_ip()
773 }
774 ///
775 /// Appends an item to `Tags`.
776 ///
777 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
778 ///
779 /// <p>A list of tag instances.</p>
780 pub fn tags(mut self, input: crate::types::Tag) -> Self {
781 self.inner = self.inner.tags(input);
782 self
783 }
784 /// <p>A list of tag instances.</p>
785 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
786 self.inner = self.inner.set_tags(input);
787 self
788 }
789 /// <p>A list of tag instances.</p>
790 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
791 self.inner.get_tags()
792 }
793 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
794 pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
795 self.inner = self.inner.kms_key_id(input.into());
796 self
797 }
798 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
799 pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
800 self.inner = self.inner.set_kms_key_id(input);
801 self
802 }
803 /// <p>The Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.</p>
804 pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
805 self.inner.get_kms_key_id()
806 }
807 /// <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>
808 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
809 /// <p>Default: false</p>
810 pub fn enhanced_vpc_routing(mut self, input: bool) -> Self {
811 self.inner = self.inner.enhanced_vpc_routing(input);
812 self
813 }
814 /// <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>
815 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
816 /// <p>Default: false</p>
817 pub fn set_enhanced_vpc_routing(mut self, input: ::std::option::Option<bool>) -> Self {
818 self.inner = self.inner.set_enhanced_vpc_routing(input);
819 self
820 }
821 /// <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>
822 /// <p>If this option is <code>true</code>, enhanced VPC routing is enabled.</p>
823 /// <p>Default: false</p>
824 pub fn get_enhanced_vpc_routing(&self) -> &::std::option::Option<bool> {
825 self.inner.get_enhanced_vpc_routing()
826 }
827 /// <p>Reserved.</p>
828 pub fn additional_info(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
829 self.inner = self.inner.additional_info(input.into());
830 self
831 }
832 /// <p>Reserved.</p>
833 pub fn set_additional_info(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
834 self.inner = self.inner.set_additional_info(input);
835 self
836 }
837 /// <p>Reserved.</p>
838 pub fn get_additional_info(&self) -> &::std::option::Option<::std::string::String> {
839 self.inner.get_additional_info()
840 }
841 ///
842 /// Appends an item to `IamRoles`.
843 ///
844 /// To override the contents of this collection use [`set_iam_roles`](Self::set_iam_roles).
845 ///
846 /// <p>A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web Services services. You must supply the IAM roles in their Amazon Resource Name (ARN) format.</p>
847 /// <p>The maximum number of IAM roles that you can associate is subject to a quota. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html">Quotas and limits</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
848 pub fn iam_roles(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
849 self.inner = self.inner.iam_roles(input.into());
850 self
851 }
852 /// <p>A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web Services services. You must supply the IAM roles in their Amazon Resource Name (ARN) format.</p>
853 /// <p>The maximum number of IAM roles that you can associate is subject to a quota. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html">Quotas and limits</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
854 pub fn set_iam_roles(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
855 self.inner = self.inner.set_iam_roles(input);
856 self
857 }
858 /// <p>A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web Services services. You must supply the IAM roles in their Amazon Resource Name (ARN) format.</p>
859 /// <p>The maximum number of IAM roles that you can associate is subject to a quota. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html">Quotas and limits</a> in the <i>Amazon Redshift Cluster Management Guide</i>.</p>
860 pub fn get_iam_roles(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
861 self.inner.get_iam_roles()
862 }
863 /// <p>An optional parameter for the name of the maintenance track for the cluster. If you don't provide a maintenance track name, the cluster is assigned to the <code>current</code> track.</p>
864 pub fn maintenance_track_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
865 self.inner = self.inner.maintenance_track_name(input.into());
866 self
867 }
868 /// <p>An optional parameter for the name of the maintenance track for the cluster. If you don't provide a maintenance track name, the cluster is assigned to the <code>current</code> track.</p>
869 pub fn set_maintenance_track_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
870 self.inner = self.inner.set_maintenance_track_name(input);
871 self
872 }
873 /// <p>An optional parameter for the name of the maintenance track for the cluster. If you don't provide a maintenance track name, the cluster is assigned to the <code>current</code> track.</p>
874 pub fn get_maintenance_track_name(&self) -> &::std::option::Option<::std::string::String> {
875 self.inner.get_maintenance_track_name()
876 }
877 /// <p>A unique identifier for the snapshot schedule.</p>
878 pub fn snapshot_schedule_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
879 self.inner = self.inner.snapshot_schedule_identifier(input.into());
880 self
881 }
882 /// <p>A unique identifier for the snapshot schedule.</p>
883 pub fn set_snapshot_schedule_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
884 self.inner = self.inner.set_snapshot_schedule_identifier(input);
885 self
886 }
887 /// <p>A unique identifier for the snapshot schedule.</p>
888 pub fn get_snapshot_schedule_identifier(&self) -> &::std::option::Option<::std::string::String> {
889 self.inner.get_snapshot_schedule_identifier()
890 }
891 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.</p>
892 pub fn availability_zone_relocation(mut self, input: bool) -> Self {
893 self.inner = self.inner.availability_zone_relocation(input);
894 self
895 }
896 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.</p>
897 pub fn set_availability_zone_relocation(mut self, input: ::std::option::Option<bool>) -> Self {
898 self.inner = self.inner.set_availability_zone_relocation(input);
899 self
900 }
901 /// <p>The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.</p>
902 pub fn get_availability_zone_relocation(&self) -> &::std::option::Option<bool> {
903 self.inner.get_availability_zone_relocation()
904 }
905 /// <p>This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).</p>
906 pub fn aqua_configuration_status(mut self, input: crate::types::AquaConfigurationStatus) -> Self {
907 self.inner = self.inner.aqua_configuration_status(input);
908 self
909 }
910 /// <p>This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).</p>
911 pub fn set_aqua_configuration_status(mut self, input: ::std::option::Option<crate::types::AquaConfigurationStatus>) -> Self {
912 self.inner = self.inner.set_aqua_configuration_status(input);
913 self
914 }
915 /// <p>This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).</p>
916 pub fn get_aqua_configuration_status(&self) -> &::std::option::Option<crate::types::AquaConfigurationStatus> {
917 self.inner.get_aqua_configuration_status()
918 }
919 /// <p>The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created.</p>
920 pub fn default_iam_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
921 self.inner = self.inner.default_iam_role_arn(input.into());
922 self
923 }
924 /// <p>The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created.</p>
925 pub fn set_default_iam_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
926 self.inner = self.inner.set_default_iam_role_arn(input);
927 self
928 }
929 /// <p>The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created.</p>
930 pub fn get_default_iam_role_arn(&self) -> &::std::option::Option<::std::string::String> {
931 self.inner.get_default_iam_role_arn()
932 }
933 /// <p>A flag that specifies whether to load sample data once the cluster is created.</p>
934 pub fn load_sample_data(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
935 self.inner = self.inner.load_sample_data(input.into());
936 self
937 }
938 /// <p>A flag that specifies whether to load sample data once the cluster is created.</p>
939 pub fn set_load_sample_data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
940 self.inner = self.inner.set_load_sample_data(input);
941 self
942 }
943 /// <p>A flag that specifies whether to load sample data once the cluster is created.</p>
944 pub fn get_load_sample_data(&self) -> &::std::option::Option<::std::string::String> {
945 self.inner.get_load_sample_data()
946 }
947 /// <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>
948 pub fn manage_master_password(mut self, input: bool) -> Self {
949 self.inner = self.inner.manage_master_password(input);
950 self
951 }
952 /// <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>
953 pub fn set_manage_master_password(mut self, input: ::std::option::Option<bool>) -> Self {
954 self.inner = self.inner.set_manage_master_password(input);
955 self
956 }
957 /// <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>
958 pub fn get_manage_master_password(&self) -> &::std::option::Option<bool> {
959 self.inner.get_manage_master_password()
960 }
961 /// <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>
962 pub fn master_password_secret_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
963 self.inner = self.inner.master_password_secret_kms_key_id(input.into());
964 self
965 }
966 /// <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>
967 pub fn set_master_password_secret_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
968 self.inner = self.inner.set_master_password_secret_kms_key_id(input);
969 self
970 }
971 /// <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>
972 pub fn get_master_password_secret_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
973 self.inner.get_master_password_secret_kms_key_id()
974 }
975 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
976 pub fn ip_address_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
977 self.inner = self.inner.ip_address_type(input.into());
978 self
979 }
980 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
981 pub fn set_ip_address_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
982 self.inner = self.inner.set_ip_address_type(input);
983 self
984 }
985 /// <p>The IP address types that the cluster supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
986 pub fn get_ip_address_type(&self) -> &::std::option::Option<::std::string::String> {
987 self.inner.get_ip_address_type()
988 }
989 /// <p>If true, Amazon Redshift will deploy the cluster in two Availability Zones (AZ).</p>
990 pub fn multi_az(mut self, input: bool) -> Self {
991 self.inner = self.inner.multi_az(input);
992 self
993 }
994 /// <p>If true, Amazon Redshift will deploy the cluster in two Availability Zones (AZ).</p>
995 pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
996 self.inner = self.inner.set_multi_az(input);
997 self
998 }
999 /// <p>If true, Amazon Redshift will deploy the cluster in two Availability Zones (AZ).</p>
1000 pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
1001 self.inner.get_multi_az()
1002 }
1003 /// <p>The Amazon resource name (ARN) of the Amazon Redshift IAM Identity Center application.</p>
1004 pub fn redshift_idc_application_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1005 self.inner = self.inner.redshift_idc_application_arn(input.into());
1006 self
1007 }
1008 /// <p>The Amazon resource name (ARN) of the Amazon Redshift IAM Identity Center application.</p>
1009 pub fn set_redshift_idc_application_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1010 self.inner = self.inner.set_redshift_idc_application_arn(input);
1011 self
1012 }
1013 /// <p>The Amazon resource name (ARN) of the Amazon Redshift IAM Identity Center application.</p>
1014 pub fn get_redshift_idc_application_arn(&self) -> &::std::option::Option<::std::string::String> {
1015 self.inner.get_redshift_idc_application_arn()
1016 }
1017}