1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/redshift/Redshift_EXPORTS.h>
8 #include <aws/redshift/RedshiftRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/redshift/model/AquaConfigurationStatus.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Redshift
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p/><p><h3>See Also:</h3>   <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshotMessage">AWS
24    * API Reference</a></p>
25    */
26   class AWS_REDSHIFT_API RestoreFromClusterSnapshotRequest : public RedshiftRequest
27   {
28   public:
29     RestoreFromClusterSnapshotRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "RestoreFromClusterSnapshot"; }
36 
37     Aws::String SerializePayload() const override;
38 
39   protected:
40     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
41 
42   public:
43 
44     /**
45      * <p>The identifier of the cluster that will be created from restoring the
46      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
47      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
48      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
49      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
50      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
51      * </li> </ul>
52      */
GetClusterIdentifier()53     inline const Aws::String& GetClusterIdentifier() const{ return m_clusterIdentifier; }
54 
55     /**
56      * <p>The identifier of the cluster that will be created from restoring the
57      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
58      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
59      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
60      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
61      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
62      * </li> </ul>
63      */
ClusterIdentifierHasBeenSet()64     inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; }
65 
66     /**
67      * <p>The identifier of the cluster that will be created from restoring the
68      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
69      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
70      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
71      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
72      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
73      * </li> </ul>
74      */
SetClusterIdentifier(const Aws::String & value)75     inline void SetClusterIdentifier(const Aws::String& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = value; }
76 
77     /**
78      * <p>The identifier of the cluster that will be created from restoring the
79      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
80      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
81      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
82      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
83      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
84      * </li> </ul>
85      */
SetClusterIdentifier(Aws::String && value)86     inline void SetClusterIdentifier(Aws::String&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::move(value); }
87 
88     /**
89      * <p>The identifier of the cluster that will be created from restoring the
90      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
91      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
92      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
93      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
94      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
95      * </li> </ul>
96      */
SetClusterIdentifier(const char * value)97     inline void SetClusterIdentifier(const char* value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier.assign(value); }
98 
99     /**
100      * <p>The identifier of the cluster that will be created from restoring the
101      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
102      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
103      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
104      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
105      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
106      * </li> </ul>
107      */
WithClusterIdentifier(const Aws::String & value)108     inline RestoreFromClusterSnapshotRequest& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;}
109 
110     /**
111      * <p>The identifier of the cluster that will be created from restoring the
112      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
113      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
114      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
115      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
116      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
117      * </li> </ul>
118      */
WithClusterIdentifier(Aws::String && value)119     inline RestoreFromClusterSnapshotRequest& WithClusterIdentifier(Aws::String&& value) { SetClusterIdentifier(std::move(value)); return *this;}
120 
121     /**
122      * <p>The identifier of the cluster that will be created from restoring the
123      * snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must contain from 1 to 63
124      * alphanumeric characters or hyphens.</p> </li> <li> <p>Alphabetic characters must
125      * be lowercase.</p> </li> <li> <p>First character must be a letter.</p> </li> <li>
126      * <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> <li>
127      * <p>Must be unique for all clusters within an Amazon Web Services account.</p>
128      * </li> </ul>
129      */
WithClusterIdentifier(const char * value)130     inline RestoreFromClusterSnapshotRequest& WithClusterIdentifier(const char* value) { SetClusterIdentifier(value); return *this;}
131 
132 
133     /**
134      * <p>The name of the snapshot from which to create the new cluster. This parameter
135      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
136      */
GetSnapshotIdentifier()137     inline const Aws::String& GetSnapshotIdentifier() const{ return m_snapshotIdentifier; }
138 
139     /**
140      * <p>The name of the snapshot from which to create the new cluster. This parameter
141      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
142      */
SnapshotIdentifierHasBeenSet()143     inline bool SnapshotIdentifierHasBeenSet() const { return m_snapshotIdentifierHasBeenSet; }
144 
145     /**
146      * <p>The name of the snapshot from which to create the new cluster. This parameter
147      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
148      */
SetSnapshotIdentifier(const Aws::String & value)149     inline void SetSnapshotIdentifier(const Aws::String& value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier = value; }
150 
151     /**
152      * <p>The name of the snapshot from which to create the new cluster. This parameter
153      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
154      */
SetSnapshotIdentifier(Aws::String && value)155     inline void SetSnapshotIdentifier(Aws::String&& value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier = std::move(value); }
156 
157     /**
158      * <p>The name of the snapshot from which to create the new cluster. This parameter
159      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
160      */
SetSnapshotIdentifier(const char * value)161     inline void SetSnapshotIdentifier(const char* value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier.assign(value); }
162 
163     /**
164      * <p>The name of the snapshot from which to create the new cluster. This parameter
165      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
166      */
WithSnapshotIdentifier(const Aws::String & value)167     inline RestoreFromClusterSnapshotRequest& WithSnapshotIdentifier(const Aws::String& value) { SetSnapshotIdentifier(value); return *this;}
168 
169     /**
170      * <p>The name of the snapshot from which to create the new cluster. This parameter
171      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
172      */
WithSnapshotIdentifier(Aws::String && value)173     inline RestoreFromClusterSnapshotRequest& WithSnapshotIdentifier(Aws::String&& value) { SetSnapshotIdentifier(std::move(value)); return *this;}
174 
175     /**
176      * <p>The name of the snapshot from which to create the new cluster. This parameter
177      * isn't case sensitive.</p> <p>Example: <code>my-snapshot-id</code> </p>
178      */
WithSnapshotIdentifier(const char * value)179     inline RestoreFromClusterSnapshotRequest& WithSnapshotIdentifier(const char* value) { SetSnapshotIdentifier(value); return *this;}
180 
181 
182     /**
183      * <p>The name of the cluster the source snapshot was created from. This parameter
184      * is required if your IAM user has a policy containing a snapshot resource element
185      * that specifies anything other than * for the cluster name.</p>
186      */
GetSnapshotClusterIdentifier()187     inline const Aws::String& GetSnapshotClusterIdentifier() const{ return m_snapshotClusterIdentifier; }
188 
189     /**
190      * <p>The name of the cluster the source snapshot was created from. This parameter
191      * is required if your IAM user has a policy containing a snapshot resource element
192      * that specifies anything other than * for the cluster name.</p>
193      */
SnapshotClusterIdentifierHasBeenSet()194     inline bool SnapshotClusterIdentifierHasBeenSet() const { return m_snapshotClusterIdentifierHasBeenSet; }
195 
196     /**
197      * <p>The name of the cluster the source snapshot was created from. This parameter
198      * is required if your IAM user has a policy containing a snapshot resource element
199      * that specifies anything other than * for the cluster name.</p>
200      */
SetSnapshotClusterIdentifier(const Aws::String & value)201     inline void SetSnapshotClusterIdentifier(const Aws::String& value) { m_snapshotClusterIdentifierHasBeenSet = true; m_snapshotClusterIdentifier = value; }
202 
203     /**
204      * <p>The name of the cluster the source snapshot was created from. This parameter
205      * is required if your IAM user has a policy containing a snapshot resource element
206      * that specifies anything other than * for the cluster name.</p>
207      */
SetSnapshotClusterIdentifier(Aws::String && value)208     inline void SetSnapshotClusterIdentifier(Aws::String&& value) { m_snapshotClusterIdentifierHasBeenSet = true; m_snapshotClusterIdentifier = std::move(value); }
209 
210     /**
211      * <p>The name of the cluster the source snapshot was created from. This parameter
212      * is required if your IAM user has a policy containing a snapshot resource element
213      * that specifies anything other than * for the cluster name.</p>
214      */
SetSnapshotClusterIdentifier(const char * value)215     inline void SetSnapshotClusterIdentifier(const char* value) { m_snapshotClusterIdentifierHasBeenSet = true; m_snapshotClusterIdentifier.assign(value); }
216 
217     /**
218      * <p>The name of the cluster the source snapshot was created from. This parameter
219      * is required if your IAM user has a policy containing a snapshot resource element
220      * that specifies anything other than * for the cluster name.</p>
221      */
WithSnapshotClusterIdentifier(const Aws::String & value)222     inline RestoreFromClusterSnapshotRequest& WithSnapshotClusterIdentifier(const Aws::String& value) { SetSnapshotClusterIdentifier(value); return *this;}
223 
224     /**
225      * <p>The name of the cluster the source snapshot was created from. This parameter
226      * is required if your IAM user has a policy containing a snapshot resource element
227      * that specifies anything other than * for the cluster name.</p>
228      */
WithSnapshotClusterIdentifier(Aws::String && value)229     inline RestoreFromClusterSnapshotRequest& WithSnapshotClusterIdentifier(Aws::String&& value) { SetSnapshotClusterIdentifier(std::move(value)); return *this;}
230 
231     /**
232      * <p>The name of the cluster the source snapshot was created from. This parameter
233      * is required if your IAM user has a policy containing a snapshot resource element
234      * that specifies anything other than * for the cluster name.</p>
235      */
WithSnapshotClusterIdentifier(const char * value)236     inline RestoreFromClusterSnapshotRequest& WithSnapshotClusterIdentifier(const char* value) { SetSnapshotClusterIdentifier(value); return *this;}
237 
238 
239     /**
240      * <p>The port number on which the cluster accepts connections.</p> <p>Default: The
241      * same port as the original cluster.</p> <p>Constraints: Must be between
242      * <code>1115</code> and <code>65535</code>.</p>
243      */
GetPort()244     inline int GetPort() const{ return m_port; }
245 
246     /**
247      * <p>The port number on which the cluster accepts connections.</p> <p>Default: The
248      * same port as the original cluster.</p> <p>Constraints: Must be between
249      * <code>1115</code> and <code>65535</code>.</p>
250      */
PortHasBeenSet()251     inline bool PortHasBeenSet() const { return m_portHasBeenSet; }
252 
253     /**
254      * <p>The port number on which the cluster accepts connections.</p> <p>Default: The
255      * same port as the original cluster.</p> <p>Constraints: Must be between
256      * <code>1115</code> and <code>65535</code>.</p>
257      */
SetPort(int value)258     inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; }
259 
260     /**
261      * <p>The port number on which the cluster accepts connections.</p> <p>Default: The
262      * same port as the original cluster.</p> <p>Constraints: Must be between
263      * <code>1115</code> and <code>65535</code>.</p>
264      */
WithPort(int value)265     inline RestoreFromClusterSnapshotRequest& WithPort(int value) { SetPort(value); return *this;}
266 
267 
268     /**
269      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
270      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
271      * <code>us-east-2a</code> </p>
272      */
GetAvailabilityZone()273     inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; }
274 
275     /**
276      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
277      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
278      * <code>us-east-2a</code> </p>
279      */
AvailabilityZoneHasBeenSet()280     inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; }
281 
282     /**
283      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
284      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
285      * <code>us-east-2a</code> </p>
286      */
SetAvailabilityZone(const Aws::String & value)287     inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; }
288 
289     /**
290      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
291      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
292      * <code>us-east-2a</code> </p>
293      */
SetAvailabilityZone(Aws::String && value)294     inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); }
295 
296     /**
297      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
298      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
299      * <code>us-east-2a</code> </p>
300      */
SetAvailabilityZone(const char * value)301     inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); }
302 
303     /**
304      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
305      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
306      * <code>us-east-2a</code> </p>
307      */
WithAvailabilityZone(const Aws::String & value)308     inline RestoreFromClusterSnapshotRequest& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;}
309 
310     /**
311      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
312      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
313      * <code>us-east-2a</code> </p>
314      */
WithAvailabilityZone(Aws::String && value)315     inline RestoreFromClusterSnapshotRequest& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;}
316 
317     /**
318      * <p>The Amazon EC2 Availability Zone in which to restore the cluster.</p>
319      * <p>Default: A random, system-chosen Availability Zone.</p> <p>Example:
320      * <code>us-east-2a</code> </p>
321      */
WithAvailabilityZone(const char * value)322     inline RestoreFromClusterSnapshotRequest& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;}
323 
324 
325     /**
326      * <p>If <code>true</code>, major version upgrades can be applied during the
327      * maintenance window to the Amazon Redshift engine that is running on the cluster.
328      * </p> <p>Default: <code>true</code> </p>
329      */
GetAllowVersionUpgrade()330     inline bool GetAllowVersionUpgrade() const{ return m_allowVersionUpgrade; }
331 
332     /**
333      * <p>If <code>true</code>, major version upgrades can be applied during the
334      * maintenance window to the Amazon Redshift engine that is running on the cluster.
335      * </p> <p>Default: <code>true</code> </p>
336      */
AllowVersionUpgradeHasBeenSet()337     inline bool AllowVersionUpgradeHasBeenSet() const { return m_allowVersionUpgradeHasBeenSet; }
338 
339     /**
340      * <p>If <code>true</code>, major version upgrades can be applied during the
341      * maintenance window to the Amazon Redshift engine that is running on the cluster.
342      * </p> <p>Default: <code>true</code> </p>
343      */
SetAllowVersionUpgrade(bool value)344     inline void SetAllowVersionUpgrade(bool value) { m_allowVersionUpgradeHasBeenSet = true; m_allowVersionUpgrade = value; }
345 
346     /**
347      * <p>If <code>true</code>, major version upgrades can be applied during the
348      * maintenance window to the Amazon Redshift engine that is running on the cluster.
349      * </p> <p>Default: <code>true</code> </p>
350      */
WithAllowVersionUpgrade(bool value)351     inline RestoreFromClusterSnapshotRequest& WithAllowVersionUpgrade(bool value) { SetAllowVersionUpgrade(value); return *this;}
352 
353 
354     /**
355      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
356      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
357      * provide subnet group name where you want the cluster restored.</p>
358      */
GetClusterSubnetGroupName()359     inline const Aws::String& GetClusterSubnetGroupName() const{ return m_clusterSubnetGroupName; }
360 
361     /**
362      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
363      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
364      * provide subnet group name where you want the cluster restored.</p>
365      */
ClusterSubnetGroupNameHasBeenSet()366     inline bool ClusterSubnetGroupNameHasBeenSet() const { return m_clusterSubnetGroupNameHasBeenSet; }
367 
368     /**
369      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
370      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
371      * provide subnet group name where you want the cluster restored.</p>
372      */
SetClusterSubnetGroupName(const Aws::String & value)373     inline void SetClusterSubnetGroupName(const Aws::String& value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName = value; }
374 
375     /**
376      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
377      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
378      * provide subnet group name where you want the cluster restored.</p>
379      */
SetClusterSubnetGroupName(Aws::String && value)380     inline void SetClusterSubnetGroupName(Aws::String&& value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName = std::move(value); }
381 
382     /**
383      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
384      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
385      * provide subnet group name where you want the cluster restored.</p>
386      */
SetClusterSubnetGroupName(const char * value)387     inline void SetClusterSubnetGroupName(const char* value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName.assign(value); }
388 
389     /**
390      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
391      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
392      * provide subnet group name where you want the cluster restored.</p>
393      */
WithClusterSubnetGroupName(const Aws::String & value)394     inline RestoreFromClusterSnapshotRequest& WithClusterSubnetGroupName(const Aws::String& value) { SetClusterSubnetGroupName(value); return *this;}
395 
396     /**
397      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
398      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
399      * provide subnet group name where you want the cluster restored.</p>
400      */
WithClusterSubnetGroupName(Aws::String && value)401     inline RestoreFromClusterSnapshotRequest& WithClusterSubnetGroupName(Aws::String&& value) { SetClusterSubnetGroupName(std::move(value)); return *this;}
402 
403     /**
404      * <p>The name of the subnet group where you want to cluster restored.</p> <p>A
405      * snapshot of cluster in VPC can be restored only in VPC. Therefore, you must
406      * provide subnet group name where you want the cluster restored.</p>
407      */
WithClusterSubnetGroupName(const char * value)408     inline RestoreFromClusterSnapshotRequest& WithClusterSubnetGroupName(const char* value) { SetClusterSubnetGroupName(value); return *this;}
409 
410 
411     /**
412      * <p>If <code>true</code>, the cluster can be accessed from a public network. </p>
413      */
GetPubliclyAccessible()414     inline bool GetPubliclyAccessible() const{ return m_publiclyAccessible; }
415 
416     /**
417      * <p>If <code>true</code>, the cluster can be accessed from a public network. </p>
418      */
PubliclyAccessibleHasBeenSet()419     inline bool PubliclyAccessibleHasBeenSet() const { return m_publiclyAccessibleHasBeenSet; }
420 
421     /**
422      * <p>If <code>true</code>, the cluster can be accessed from a public network. </p>
423      */
SetPubliclyAccessible(bool value)424     inline void SetPubliclyAccessible(bool value) { m_publiclyAccessibleHasBeenSet = true; m_publiclyAccessible = value; }
425 
426     /**
427      * <p>If <code>true</code>, the cluster can be accessed from a public network. </p>
428      */
WithPubliclyAccessible(bool value)429     inline RestoreFromClusterSnapshotRequest& WithPubliclyAccessible(bool value) { SetPubliclyAccessible(value); return *this;}
430 
431 
432     /**
433      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
434      * if you are restoring a snapshot you do not own, optional if you own the
435      * snapshot.</p>
436      */
GetOwnerAccount()437     inline const Aws::String& GetOwnerAccount() const{ return m_ownerAccount; }
438 
439     /**
440      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
441      * if you are restoring a snapshot you do not own, optional if you own the
442      * snapshot.</p>
443      */
OwnerAccountHasBeenSet()444     inline bool OwnerAccountHasBeenSet() const { return m_ownerAccountHasBeenSet; }
445 
446     /**
447      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
448      * if you are restoring a snapshot you do not own, optional if you own the
449      * snapshot.</p>
450      */
SetOwnerAccount(const Aws::String & value)451     inline void SetOwnerAccount(const Aws::String& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = value; }
452 
453     /**
454      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
455      * if you are restoring a snapshot you do not own, optional if you own the
456      * snapshot.</p>
457      */
SetOwnerAccount(Aws::String && value)458     inline void SetOwnerAccount(Aws::String&& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = std::move(value); }
459 
460     /**
461      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
462      * if you are restoring a snapshot you do not own, optional if you own the
463      * snapshot.</p>
464      */
SetOwnerAccount(const char * value)465     inline void SetOwnerAccount(const char* value) { m_ownerAccountHasBeenSet = true; m_ownerAccount.assign(value); }
466 
467     /**
468      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
469      * if you are restoring a snapshot you do not own, optional if you own the
470      * snapshot.</p>
471      */
WithOwnerAccount(const Aws::String & value)472     inline RestoreFromClusterSnapshotRequest& WithOwnerAccount(const Aws::String& value) { SetOwnerAccount(value); return *this;}
473 
474     /**
475      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
476      * if you are restoring a snapshot you do not own, optional if you own the
477      * snapshot.</p>
478      */
WithOwnerAccount(Aws::String && value)479     inline RestoreFromClusterSnapshotRequest& WithOwnerAccount(Aws::String&& value) { SetOwnerAccount(std::move(value)); return *this;}
480 
481     /**
482      * <p>The Amazon Web Services account used to create or copy the snapshot. Required
483      * if you are restoring a snapshot you do not own, optional if you own the
484      * snapshot.</p>
485      */
WithOwnerAccount(const char * value)486     inline RestoreFromClusterSnapshotRequest& WithOwnerAccount(const char* value) { SetOwnerAccount(value); return *this;}
487 
488 
489     /**
490      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
491      * uses to retrieve the data encryption keys stored in an HSM.</p>
492      */
GetHsmClientCertificateIdentifier()493     inline const Aws::String& GetHsmClientCertificateIdentifier() const{ return m_hsmClientCertificateIdentifier; }
494 
495     /**
496      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
497      * uses to retrieve the data encryption keys stored in an HSM.</p>
498      */
HsmClientCertificateIdentifierHasBeenSet()499     inline bool HsmClientCertificateIdentifierHasBeenSet() const { return m_hsmClientCertificateIdentifierHasBeenSet; }
500 
501     /**
502      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
503      * uses to retrieve the data encryption keys stored in an HSM.</p>
504      */
SetHsmClientCertificateIdentifier(const Aws::String & value)505     inline void SetHsmClientCertificateIdentifier(const Aws::String& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = value; }
506 
507     /**
508      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
509      * uses to retrieve the data encryption keys stored in an HSM.</p>
510      */
SetHsmClientCertificateIdentifier(Aws::String && value)511     inline void SetHsmClientCertificateIdentifier(Aws::String&& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = std::move(value); }
512 
513     /**
514      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
515      * uses to retrieve the data encryption keys stored in an HSM.</p>
516      */
SetHsmClientCertificateIdentifier(const char * value)517     inline void SetHsmClientCertificateIdentifier(const char* value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier.assign(value); }
518 
519     /**
520      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
521      * uses to retrieve the data encryption keys stored in an HSM.</p>
522      */
WithHsmClientCertificateIdentifier(const Aws::String & value)523     inline RestoreFromClusterSnapshotRequest& WithHsmClientCertificateIdentifier(const Aws::String& value) { SetHsmClientCertificateIdentifier(value); return *this;}
524 
525     /**
526      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
527      * uses to retrieve the data encryption keys stored in an HSM.</p>
528      */
WithHsmClientCertificateIdentifier(Aws::String && value)529     inline RestoreFromClusterSnapshotRequest& WithHsmClientCertificateIdentifier(Aws::String&& value) { SetHsmClientCertificateIdentifier(std::move(value)); return *this;}
530 
531     /**
532      * <p>Specifies the name of the HSM client certificate the Amazon Redshift cluster
533      * uses to retrieve the data encryption keys stored in an HSM.</p>
534      */
WithHsmClientCertificateIdentifier(const char * value)535     inline RestoreFromClusterSnapshotRequest& WithHsmClientCertificateIdentifier(const char* value) { SetHsmClientCertificateIdentifier(value); return *this;}
536 
537 
538     /**
539      * <p>Specifies the name of the HSM configuration that contains the information the
540      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
541      */
GetHsmConfigurationIdentifier()542     inline const Aws::String& GetHsmConfigurationIdentifier() const{ return m_hsmConfigurationIdentifier; }
543 
544     /**
545      * <p>Specifies the name of the HSM configuration that contains the information the
546      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
547      */
HsmConfigurationIdentifierHasBeenSet()548     inline bool HsmConfigurationIdentifierHasBeenSet() const { return m_hsmConfigurationIdentifierHasBeenSet; }
549 
550     /**
551      * <p>Specifies the name of the HSM configuration that contains the information the
552      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
553      */
SetHsmConfigurationIdentifier(const Aws::String & value)554     inline void SetHsmConfigurationIdentifier(const Aws::String& value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier = value; }
555 
556     /**
557      * <p>Specifies the name of the HSM configuration that contains the information the
558      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
559      */
SetHsmConfigurationIdentifier(Aws::String && value)560     inline void SetHsmConfigurationIdentifier(Aws::String&& value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier = std::move(value); }
561 
562     /**
563      * <p>Specifies the name of the HSM configuration that contains the information the
564      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
565      */
SetHsmConfigurationIdentifier(const char * value)566     inline void SetHsmConfigurationIdentifier(const char* value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier.assign(value); }
567 
568     /**
569      * <p>Specifies the name of the HSM configuration that contains the information the
570      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
571      */
WithHsmConfigurationIdentifier(const Aws::String & value)572     inline RestoreFromClusterSnapshotRequest& WithHsmConfigurationIdentifier(const Aws::String& value) { SetHsmConfigurationIdentifier(value); return *this;}
573 
574     /**
575      * <p>Specifies the name of the HSM configuration that contains the information the
576      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
577      */
WithHsmConfigurationIdentifier(Aws::String && value)578     inline RestoreFromClusterSnapshotRequest& WithHsmConfigurationIdentifier(Aws::String&& value) { SetHsmConfigurationIdentifier(std::move(value)); return *this;}
579 
580     /**
581      * <p>Specifies the name of the HSM configuration that contains the information the
582      * Amazon Redshift cluster can use to retrieve and store keys in an HSM.</p>
583      */
WithHsmConfigurationIdentifier(const char * value)584     inline RestoreFromClusterSnapshotRequest& WithHsmConfigurationIdentifier(const char* value) { SetHsmConfigurationIdentifier(value); return *this;}
585 
586 
587     /**
588      * <p>The elastic IP (EIP) address for the cluster.</p>
589      */
GetElasticIp()590     inline const Aws::String& GetElasticIp() const{ return m_elasticIp; }
591 
592     /**
593      * <p>The elastic IP (EIP) address for the cluster.</p>
594      */
ElasticIpHasBeenSet()595     inline bool ElasticIpHasBeenSet() const { return m_elasticIpHasBeenSet; }
596 
597     /**
598      * <p>The elastic IP (EIP) address for the cluster.</p>
599      */
SetElasticIp(const Aws::String & value)600     inline void SetElasticIp(const Aws::String& value) { m_elasticIpHasBeenSet = true; m_elasticIp = value; }
601 
602     /**
603      * <p>The elastic IP (EIP) address for the cluster.</p>
604      */
SetElasticIp(Aws::String && value)605     inline void SetElasticIp(Aws::String&& value) { m_elasticIpHasBeenSet = true; m_elasticIp = std::move(value); }
606 
607     /**
608      * <p>The elastic IP (EIP) address for the cluster.</p>
609      */
SetElasticIp(const char * value)610     inline void SetElasticIp(const char* value) { m_elasticIpHasBeenSet = true; m_elasticIp.assign(value); }
611 
612     /**
613      * <p>The elastic IP (EIP) address for the cluster.</p>
614      */
WithElasticIp(const Aws::String & value)615     inline RestoreFromClusterSnapshotRequest& WithElasticIp(const Aws::String& value) { SetElasticIp(value); return *this;}
616 
617     /**
618      * <p>The elastic IP (EIP) address for the cluster.</p>
619      */
WithElasticIp(Aws::String && value)620     inline RestoreFromClusterSnapshotRequest& WithElasticIp(Aws::String&& value) { SetElasticIp(std::move(value)); return *this;}
621 
622     /**
623      * <p>The elastic IP (EIP) address for the cluster.</p>
624      */
WithElasticIp(const char * value)625     inline RestoreFromClusterSnapshotRequest& WithElasticIp(const char* value) { SetElasticIp(value); return *this;}
626 
627 
628     /**
629      * <p>The name of the parameter group to be associated with this cluster.</p>
630      * <p>Default: The default Amazon Redshift cluster parameter group. For information
631      * about the default parameter group, go to <a
632      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
633      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
634      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
635      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
636      * contain two consecutive hyphens.</p> </li> </ul>
637      */
GetClusterParameterGroupName()638     inline const Aws::String& GetClusterParameterGroupName() const{ return m_clusterParameterGroupName; }
639 
640     /**
641      * <p>The name of the parameter group to be associated with this cluster.</p>
642      * <p>Default: The default Amazon Redshift cluster parameter group. For information
643      * about the default parameter group, go to <a
644      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
645      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
646      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
647      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
648      * contain two consecutive hyphens.</p> </li> </ul>
649      */
ClusterParameterGroupNameHasBeenSet()650     inline bool ClusterParameterGroupNameHasBeenSet() const { return m_clusterParameterGroupNameHasBeenSet; }
651 
652     /**
653      * <p>The name of the parameter group to be associated with this cluster.</p>
654      * <p>Default: The default Amazon Redshift cluster parameter group. For information
655      * about the default parameter group, go to <a
656      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
657      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
658      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
659      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
660      * contain two consecutive hyphens.</p> </li> </ul>
661      */
SetClusterParameterGroupName(const Aws::String & value)662     inline void SetClusterParameterGroupName(const Aws::String& value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName = value; }
663 
664     /**
665      * <p>The name of the parameter group to be associated with this cluster.</p>
666      * <p>Default: The default Amazon Redshift cluster parameter group. For information
667      * about the default parameter group, go to <a
668      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
669      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
670      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
671      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
672      * contain two consecutive hyphens.</p> </li> </ul>
673      */
SetClusterParameterGroupName(Aws::String && value)674     inline void SetClusterParameterGroupName(Aws::String&& value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName = std::move(value); }
675 
676     /**
677      * <p>The name of the parameter group to be associated with this cluster.</p>
678      * <p>Default: The default Amazon Redshift cluster parameter group. For information
679      * about the default parameter group, go to <a
680      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
681      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
682      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
683      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
684      * contain two consecutive hyphens.</p> </li> </ul>
685      */
SetClusterParameterGroupName(const char * value)686     inline void SetClusterParameterGroupName(const char* value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName.assign(value); }
687 
688     /**
689      * <p>The name of the parameter group to be associated with this cluster.</p>
690      * <p>Default: The default Amazon Redshift cluster parameter group. For information
691      * about the default parameter group, go to <a
692      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
693      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
694      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
695      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
696      * contain two consecutive hyphens.</p> </li> </ul>
697      */
WithClusterParameterGroupName(const Aws::String & value)698     inline RestoreFromClusterSnapshotRequest& WithClusterParameterGroupName(const Aws::String& value) { SetClusterParameterGroupName(value); return *this;}
699 
700     /**
701      * <p>The name of the parameter group to be associated with this cluster.</p>
702      * <p>Default: The default Amazon Redshift cluster parameter group. For information
703      * about the default parameter group, go to <a
704      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
705      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
706      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
707      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
708      * contain two consecutive hyphens.</p> </li> </ul>
709      */
WithClusterParameterGroupName(Aws::String && value)710     inline RestoreFromClusterSnapshotRequest& WithClusterParameterGroupName(Aws::String&& value) { SetClusterParameterGroupName(std::move(value)); return *this;}
711 
712     /**
713      * <p>The name of the parameter group to be associated with this cluster.</p>
714      * <p>Default: The default Amazon Redshift cluster parameter group. For information
715      * about the default parameter group, go to <a
716      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working
717      * with Amazon Redshift Parameter Groups</a>.</p> <p>Constraints:</p> <ul> <li>
718      * <p>Must be 1 to 255 alphanumeric characters or hyphens.</p> </li> <li> <p>First
719      * character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or
720      * contain two consecutive hyphens.</p> </li> </ul>
721      */
WithClusterParameterGroupName(const char * value)722     inline RestoreFromClusterSnapshotRequest& WithClusterParameterGroupName(const char* value) { SetClusterParameterGroupName(value); return *this;}
723 
724 
725     /**
726      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
727      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
728      * groups only apply to clusters outside of VPCs.</p>
729      */
GetClusterSecurityGroups()730     inline const Aws::Vector<Aws::String>& GetClusterSecurityGroups() const{ return m_clusterSecurityGroups; }
731 
732     /**
733      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
734      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
735      * groups only apply to clusters outside of VPCs.</p>
736      */
ClusterSecurityGroupsHasBeenSet()737     inline bool ClusterSecurityGroupsHasBeenSet() const { return m_clusterSecurityGroupsHasBeenSet; }
738 
739     /**
740      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
741      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
742      * groups only apply to clusters outside of VPCs.</p>
743      */
SetClusterSecurityGroups(const Aws::Vector<Aws::String> & value)744     inline void SetClusterSecurityGroups(const Aws::Vector<Aws::String>& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups = value; }
745 
746     /**
747      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
748      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
749      * groups only apply to clusters outside of VPCs.</p>
750      */
SetClusterSecurityGroups(Aws::Vector<Aws::String> && value)751     inline void SetClusterSecurityGroups(Aws::Vector<Aws::String>&& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups = std::move(value); }
752 
753     /**
754      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
755      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
756      * groups only apply to clusters outside of VPCs.</p>
757      */
WithClusterSecurityGroups(const Aws::Vector<Aws::String> & value)758     inline RestoreFromClusterSnapshotRequest& WithClusterSecurityGroups(const Aws::Vector<Aws::String>& value) { SetClusterSecurityGroups(value); return *this;}
759 
760     /**
761      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
762      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
763      * groups only apply to clusters outside of VPCs.</p>
764      */
WithClusterSecurityGroups(Aws::Vector<Aws::String> && value)765     inline RestoreFromClusterSnapshotRequest& WithClusterSecurityGroups(Aws::Vector<Aws::String>&& value) { SetClusterSecurityGroups(std::move(value)); return *this;}
766 
767     /**
768      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
769      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
770      * groups only apply to clusters outside of VPCs.</p>
771      */
AddClusterSecurityGroups(const Aws::String & value)772     inline RestoreFromClusterSnapshotRequest& AddClusterSecurityGroups(const Aws::String& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(value); return *this; }
773 
774     /**
775      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
776      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
777      * groups only apply to clusters outside of VPCs.</p>
778      */
AddClusterSecurityGroups(Aws::String && value)779     inline RestoreFromClusterSnapshotRequest& AddClusterSecurityGroups(Aws::String&& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(std::move(value)); return *this; }
780 
781     /**
782      * <p>A list of security groups to be associated with this cluster.</p> <p>Default:
783      * The default cluster security group for Amazon Redshift.</p> <p>Cluster security
784      * groups only apply to clusters outside of VPCs.</p>
785      */
AddClusterSecurityGroups(const char * value)786     inline RestoreFromClusterSnapshotRequest& AddClusterSecurityGroups(const char* value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(value); return *this; }
787 
788 
789     /**
790      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
791      * the cluster.</p> <p>Default: The default VPC security group is associated with
792      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
793      */
GetVpcSecurityGroupIds()794     inline const Aws::Vector<Aws::String>& GetVpcSecurityGroupIds() const{ return m_vpcSecurityGroupIds; }
795 
796     /**
797      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
798      * the cluster.</p> <p>Default: The default VPC security group is associated with
799      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
800      */
VpcSecurityGroupIdsHasBeenSet()801     inline bool VpcSecurityGroupIdsHasBeenSet() const { return m_vpcSecurityGroupIdsHasBeenSet; }
802 
803     /**
804      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
805      * the cluster.</p> <p>Default: The default VPC security group is associated with
806      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
807      */
SetVpcSecurityGroupIds(const Aws::Vector<Aws::String> & value)808     inline void SetVpcSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = value; }
809 
810     /**
811      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
812      * the cluster.</p> <p>Default: The default VPC security group is associated with
813      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
814      */
SetVpcSecurityGroupIds(Aws::Vector<Aws::String> && value)815     inline void SetVpcSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = std::move(value); }
816 
817     /**
818      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
819      * the cluster.</p> <p>Default: The default VPC security group is associated with
820      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
821      */
WithVpcSecurityGroupIds(const Aws::Vector<Aws::String> & value)822     inline RestoreFromClusterSnapshotRequest& WithVpcSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetVpcSecurityGroupIds(value); return *this;}
823 
824     /**
825      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
826      * the cluster.</p> <p>Default: The default VPC security group is associated with
827      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
828      */
WithVpcSecurityGroupIds(Aws::Vector<Aws::String> && value)829     inline RestoreFromClusterSnapshotRequest& WithVpcSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetVpcSecurityGroupIds(std::move(value)); return *this;}
830 
831     /**
832      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
833      * the cluster.</p> <p>Default: The default VPC security group is associated with
834      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
835      */
AddVpcSecurityGroupIds(const Aws::String & value)836     inline RestoreFromClusterSnapshotRequest& AddVpcSecurityGroupIds(const Aws::String& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; }
837 
838     /**
839      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
840      * the cluster.</p> <p>Default: The default VPC security group is associated with
841      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
842      */
AddVpcSecurityGroupIds(Aws::String && value)843     inline RestoreFromClusterSnapshotRequest& AddVpcSecurityGroupIds(Aws::String&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(std::move(value)); return *this; }
844 
845     /**
846      * <p>A list of Virtual Private Cloud (VPC) security groups to be associated with
847      * the cluster.</p> <p>Default: The default VPC security group is associated with
848      * the cluster.</p> <p>VPC security groups only apply to clusters in VPCs.</p>
849      */
AddVpcSecurityGroupIds(const char * value)850     inline RestoreFromClusterSnapshotRequest& AddVpcSecurityGroupIds(const char* value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; }
851 
852 
853     /**
854      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
855      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
856      * The value selected for the cluster from which the snapshot was taken. For more
857      * information about the time blocks for each region, see <a
858      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
859      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
860      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
861      * window.</p>
862      */
GetPreferredMaintenanceWindow()863     inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; }
864 
865     /**
866      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
867      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
868      * The value selected for the cluster from which the snapshot was taken. For more
869      * information about the time blocks for each region, see <a
870      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
871      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
872      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
873      * window.</p>
874      */
PreferredMaintenanceWindowHasBeenSet()875     inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; }
876 
877     /**
878      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
879      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
880      * The value selected for the cluster from which the snapshot was taken. For more
881      * information about the time blocks for each region, see <a
882      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
883      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
884      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
885      * window.</p>
886      */
SetPreferredMaintenanceWindow(const Aws::String & value)887     inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; }
888 
889     /**
890      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
891      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
892      * The value selected for the cluster from which the snapshot was taken. For more
893      * information about the time blocks for each region, see <a
894      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
895      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
896      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
897      * window.</p>
898      */
SetPreferredMaintenanceWindow(Aws::String && value)899     inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); }
900 
901     /**
902      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
903      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
904      * The value selected for the cluster from which the snapshot was taken. For more
905      * information about the time blocks for each region, see <a
906      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
907      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
908      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
909      * window.</p>
910      */
SetPreferredMaintenanceWindow(const char * value)911     inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); }
912 
913     /**
914      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
915      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
916      * The value selected for the cluster from which the snapshot was taken. For more
917      * information about the time blocks for each region, see <a
918      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
919      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
920      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
921      * window.</p>
922      */
WithPreferredMaintenanceWindow(const Aws::String & value)923     inline RestoreFromClusterSnapshotRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;}
924 
925     /**
926      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
927      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
928      * The value selected for the cluster from which the snapshot was taken. For more
929      * information about the time blocks for each region, see <a
930      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
931      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
932      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
933      * window.</p>
934      */
WithPreferredMaintenanceWindow(Aws::String && value)935     inline RestoreFromClusterSnapshotRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;}
936 
937     /**
938      * <p>The weekly time range (in UTC) during which automated cluster maintenance can
939      * occur.</p> <p> Format: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> Default:
940      * The value selected for the cluster from which the snapshot was taken. For more
941      * information about the time blocks for each region, see <a
942      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance
943      * Windows</a> in Amazon Redshift Cluster Management Guide. </p> <p>Valid Days: Mon
944      * | Tue | Wed | Thu | Fri | Sat | Sun</p> <p>Constraints: Minimum 30-minute
945      * window.</p>
946      */
WithPreferredMaintenanceWindow(const char * value)947     inline RestoreFromClusterSnapshotRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;}
948 
949 
950     /**
951      * <p>The number of days that automated snapshots are retained. If the value is 0,
952      * automated snapshots are disabled. Even if automated snapshots are disabled, you
953      * can still create manual snapshots when you want with
954      * <a>CreateClusterSnapshot</a>. </p> <p>You can't disable automated snapshots for
955      * RA3 node types. Set the automated retention period from 1-35 days.</p>
956      * <p>Default: The value selected for the cluster from which the snapshot was
957      * taken.</p> <p>Constraints: Must be a value from 0 to 35.</p>
958      */
GetAutomatedSnapshotRetentionPeriod()959     inline int GetAutomatedSnapshotRetentionPeriod() const{ return m_automatedSnapshotRetentionPeriod; }
960 
961     /**
962      * <p>The number of days that automated snapshots are retained. If the value is 0,
963      * automated snapshots are disabled. Even if automated snapshots are disabled, you
964      * can still create manual snapshots when you want with
965      * <a>CreateClusterSnapshot</a>. </p> <p>You can't disable automated snapshots for
966      * RA3 node types. Set the automated retention period from 1-35 days.</p>
967      * <p>Default: The value selected for the cluster from which the snapshot was
968      * taken.</p> <p>Constraints: Must be a value from 0 to 35.</p>
969      */
AutomatedSnapshotRetentionPeriodHasBeenSet()970     inline bool AutomatedSnapshotRetentionPeriodHasBeenSet() const { return m_automatedSnapshotRetentionPeriodHasBeenSet; }
971 
972     /**
973      * <p>The number of days that automated snapshots are retained. If the value is 0,
974      * automated snapshots are disabled. Even if automated snapshots are disabled, you
975      * can still create manual snapshots when you want with
976      * <a>CreateClusterSnapshot</a>. </p> <p>You can't disable automated snapshots for
977      * RA3 node types. Set the automated retention period from 1-35 days.</p>
978      * <p>Default: The value selected for the cluster from which the snapshot was
979      * taken.</p> <p>Constraints: Must be a value from 0 to 35.</p>
980      */
SetAutomatedSnapshotRetentionPeriod(int value)981     inline void SetAutomatedSnapshotRetentionPeriod(int value) { m_automatedSnapshotRetentionPeriodHasBeenSet = true; m_automatedSnapshotRetentionPeriod = value; }
982 
983     /**
984      * <p>The number of days that automated snapshots are retained. If the value is 0,
985      * automated snapshots are disabled. Even if automated snapshots are disabled, you
986      * can still create manual snapshots when you want with
987      * <a>CreateClusterSnapshot</a>. </p> <p>You can't disable automated snapshots for
988      * RA3 node types. Set the automated retention period from 1-35 days.</p>
989      * <p>Default: The value selected for the cluster from which the snapshot was
990      * taken.</p> <p>Constraints: Must be a value from 0 to 35.</p>
991      */
WithAutomatedSnapshotRetentionPeriod(int value)992     inline RestoreFromClusterSnapshotRequest& WithAutomatedSnapshotRetentionPeriod(int value) { SetAutomatedSnapshotRetentionPeriod(value); return *this;}
993 
994 
995     /**
996      * <p>The default number of days to retain a manual snapshot. If the value is -1,
997      * the snapshot is retained indefinitely. This setting doesn't change the retention
998      * period of existing snapshots.</p> <p>The value must be either -1 or an integer
999      * between 1 and 3,653.</p>
1000      */
GetManualSnapshotRetentionPeriod()1001     inline int GetManualSnapshotRetentionPeriod() const{ return m_manualSnapshotRetentionPeriod; }
1002 
1003     /**
1004      * <p>The default number of days to retain a manual snapshot. If the value is -1,
1005      * the snapshot is retained indefinitely. This setting doesn't change the retention
1006      * period of existing snapshots.</p> <p>The value must be either -1 or an integer
1007      * between 1 and 3,653.</p>
1008      */
ManualSnapshotRetentionPeriodHasBeenSet()1009     inline bool ManualSnapshotRetentionPeriodHasBeenSet() const { return m_manualSnapshotRetentionPeriodHasBeenSet; }
1010 
1011     /**
1012      * <p>The default number of days to retain a manual snapshot. If the value is -1,
1013      * the snapshot is retained indefinitely. This setting doesn't change the retention
1014      * period of existing snapshots.</p> <p>The value must be either -1 or an integer
1015      * between 1 and 3,653.</p>
1016      */
SetManualSnapshotRetentionPeriod(int value)1017     inline void SetManualSnapshotRetentionPeriod(int value) { m_manualSnapshotRetentionPeriodHasBeenSet = true; m_manualSnapshotRetentionPeriod = value; }
1018 
1019     /**
1020      * <p>The default number of days to retain a manual snapshot. If the value is -1,
1021      * the snapshot is retained indefinitely. This setting doesn't change the retention
1022      * period of existing snapshots.</p> <p>The value must be either -1 or an integer
1023      * between 1 and 3,653.</p>
1024      */
WithManualSnapshotRetentionPeriod(int value)1025     inline RestoreFromClusterSnapshotRequest& WithManualSnapshotRetentionPeriod(int value) { SetManualSnapshotRetentionPeriod(value); return *this;}
1026 
1027 
1028     /**
1029      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1030      * to use to encrypt data in the cluster that you restore from a shared
1031      * snapshot.</p>
1032      */
GetKmsKeyId()1033     inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; }
1034 
1035     /**
1036      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1037      * to use to encrypt data in the cluster that you restore from a shared
1038      * snapshot.</p>
1039      */
KmsKeyIdHasBeenSet()1040     inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; }
1041 
1042     /**
1043      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1044      * to use to encrypt data in the cluster that you restore from a shared
1045      * snapshot.</p>
1046      */
SetKmsKeyId(const Aws::String & value)1047     inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; }
1048 
1049     /**
1050      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1051      * to use to encrypt data in the cluster that you restore from a shared
1052      * snapshot.</p>
1053      */
SetKmsKeyId(Aws::String && value)1054     inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); }
1055 
1056     /**
1057      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1058      * to use to encrypt data in the cluster that you restore from a shared
1059      * snapshot.</p>
1060      */
SetKmsKeyId(const char * value)1061     inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); }
1062 
1063     /**
1064      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1065      * to use to encrypt data in the cluster that you restore from a shared
1066      * snapshot.</p>
1067      */
WithKmsKeyId(const Aws::String & value)1068     inline RestoreFromClusterSnapshotRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;}
1069 
1070     /**
1071      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1072      * to use to encrypt data in the cluster that you restore from a shared
1073      * snapshot.</p>
1074      */
WithKmsKeyId(Aws::String && value)1075     inline RestoreFromClusterSnapshotRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;}
1076 
1077     /**
1078      * <p>The Key Management Service (KMS) key ID of the encryption key that you want
1079      * to use to encrypt data in the cluster that you restore from a shared
1080      * snapshot.</p>
1081      */
WithKmsKeyId(const char * value)1082     inline RestoreFromClusterSnapshotRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;}
1083 
1084 
1085     /**
1086      * <p>The node type that the restored cluster will be provisioned with.</p>
1087      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1088      * can modify this if you are using any DS node type. In that case, you can choose
1089      * to restore into another DS node type of the same size. For example, you can
1090      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1091      * a DC instance type, you must restore into that same instance type and size. In
1092      * other words, you can only restore a dc1.large instance type into another
1093      * dc1.large instance type or dc2.large instance type. You can't restore
1094      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1095      * to a dc2.8large cluster. For more information about node types, see <a
1096      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1097      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1098      * Guide</i>. </p>
1099      */
GetNodeType()1100     inline const Aws::String& GetNodeType() const{ return m_nodeType; }
1101 
1102     /**
1103      * <p>The node type that the restored cluster will be provisioned with.</p>
1104      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1105      * can modify this if you are using any DS node type. In that case, you can choose
1106      * to restore into another DS node type of the same size. For example, you can
1107      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1108      * a DC instance type, you must restore into that same instance type and size. In
1109      * other words, you can only restore a dc1.large instance type into another
1110      * dc1.large instance type or dc2.large instance type. You can't restore
1111      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1112      * to a dc2.8large cluster. For more information about node types, see <a
1113      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1114      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1115      * Guide</i>. </p>
1116      */
NodeTypeHasBeenSet()1117     inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; }
1118 
1119     /**
1120      * <p>The node type that the restored cluster will be provisioned with.</p>
1121      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1122      * can modify this if you are using any DS node type. In that case, you can choose
1123      * to restore into another DS node type of the same size. For example, you can
1124      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1125      * a DC instance type, you must restore into that same instance type and size. In
1126      * other words, you can only restore a dc1.large instance type into another
1127      * dc1.large instance type or dc2.large instance type. You can't restore
1128      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1129      * to a dc2.8large cluster. For more information about node types, see <a
1130      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1131      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1132      * Guide</i>. </p>
1133      */
SetNodeType(const Aws::String & value)1134     inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; }
1135 
1136     /**
1137      * <p>The node type that the restored cluster will be provisioned with.</p>
1138      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1139      * can modify this if you are using any DS node type. In that case, you can choose
1140      * to restore into another DS node type of the same size. For example, you can
1141      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1142      * a DC instance type, you must restore into that same instance type and size. In
1143      * other words, you can only restore a dc1.large instance type into another
1144      * dc1.large instance type or dc2.large instance type. You can't restore
1145      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1146      * to a dc2.8large cluster. For more information about node types, see <a
1147      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1148      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1149      * Guide</i>. </p>
1150      */
SetNodeType(Aws::String && value)1151     inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); }
1152 
1153     /**
1154      * <p>The node type that the restored cluster will be provisioned with.</p>
1155      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1156      * can modify this if you are using any DS node type. In that case, you can choose
1157      * to restore into another DS node type of the same size. For example, you can
1158      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1159      * a DC instance type, you must restore into that same instance type and size. In
1160      * other words, you can only restore a dc1.large instance type into another
1161      * dc1.large instance type or dc2.large instance type. You can't restore
1162      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1163      * to a dc2.8large cluster. For more information about node types, see <a
1164      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1165      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1166      * Guide</i>. </p>
1167      */
SetNodeType(const char * value)1168     inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); }
1169 
1170     /**
1171      * <p>The node type that the restored cluster will be provisioned with.</p>
1172      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1173      * can modify this if you are using any DS node type. In that case, you can choose
1174      * to restore into another DS node type of the same size. For example, you can
1175      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1176      * a DC instance type, you must restore into that same instance type and size. In
1177      * other words, you can only restore a dc1.large instance type into another
1178      * dc1.large instance type or dc2.large instance type. You can't restore
1179      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1180      * to a dc2.8large cluster. For more information about node types, see <a
1181      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1182      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1183      * Guide</i>. </p>
1184      */
WithNodeType(const Aws::String & value)1185     inline RestoreFromClusterSnapshotRequest& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;}
1186 
1187     /**
1188      * <p>The node type that the restored cluster will be provisioned with.</p>
1189      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1190      * can modify this if you are using any DS node type. In that case, you can choose
1191      * to restore into another DS node type of the same size. For example, you can
1192      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1193      * a DC instance type, you must restore into that same instance type and size. In
1194      * other words, you can only restore a dc1.large instance type into another
1195      * dc1.large instance type or dc2.large instance type. You can't restore
1196      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1197      * to a dc2.8large cluster. For more information about node types, see <a
1198      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1199      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1200      * Guide</i>. </p>
1201      */
WithNodeType(Aws::String && value)1202     inline RestoreFromClusterSnapshotRequest& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;}
1203 
1204     /**
1205      * <p>The node type that the restored cluster will be provisioned with.</p>
1206      * <p>Default: The node type of the cluster from which the snapshot was taken. You
1207      * can modify this if you are using any DS node type. In that case, you can choose
1208      * to restore into another DS node type of the same size. For example, you can
1209      * restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have
1210      * a DC instance type, you must restore into that same instance type and size. In
1211      * other words, you can only restore a dc1.large instance type into another
1212      * dc1.large instance type or dc2.large instance type. You can't restore
1213      * dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize
1214      * to a dc2.8large cluster. For more information about node types, see <a
1215      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes">
1216      * About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management
1217      * Guide</i>. </p>
1218      */
WithNodeType(const char * value)1219     inline RestoreFromClusterSnapshotRequest& WithNodeType(const char* value) { SetNodeType(value); return *this;}
1220 
1221 
1222     /**
1223      * <p>An option that specifies whether to create the cluster with enhanced VPC
1224      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
1225      * must be in a VPC. For more information, see <a
1226      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
1227      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
1228      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
1229      * false</p>
1230      */
GetEnhancedVpcRouting()1231     inline bool GetEnhancedVpcRouting() const{ return m_enhancedVpcRouting; }
1232 
1233     /**
1234      * <p>An option that specifies whether to create the cluster with enhanced VPC
1235      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
1236      * must be in a VPC. For more information, see <a
1237      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
1238      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
1239      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
1240      * false</p>
1241      */
EnhancedVpcRoutingHasBeenSet()1242     inline bool EnhancedVpcRoutingHasBeenSet() const { return m_enhancedVpcRoutingHasBeenSet; }
1243 
1244     /**
1245      * <p>An option that specifies whether to create the cluster with enhanced VPC
1246      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
1247      * must be in a VPC. For more information, see <a
1248      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
1249      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
1250      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
1251      * false</p>
1252      */
SetEnhancedVpcRouting(bool value)1253     inline void SetEnhancedVpcRouting(bool value) { m_enhancedVpcRoutingHasBeenSet = true; m_enhancedVpcRouting = value; }
1254 
1255     /**
1256      * <p>An option that specifies whether to create the cluster with enhanced VPC
1257      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
1258      * must be in a VPC. For more information, see <a
1259      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
1260      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
1261      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
1262      * false</p>
1263      */
WithEnhancedVpcRouting(bool value)1264     inline RestoreFromClusterSnapshotRequest& WithEnhancedVpcRouting(bool value) { SetEnhancedVpcRouting(value); return *this;}
1265 
1266 
1267     /**
1268      * <p>Reserved.</p>
1269      */
GetAdditionalInfo()1270     inline const Aws::String& GetAdditionalInfo() const{ return m_additionalInfo; }
1271 
1272     /**
1273      * <p>Reserved.</p>
1274      */
AdditionalInfoHasBeenSet()1275     inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; }
1276 
1277     /**
1278      * <p>Reserved.</p>
1279      */
SetAdditionalInfo(const Aws::String & value)1280     inline void SetAdditionalInfo(const Aws::String& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = value; }
1281 
1282     /**
1283      * <p>Reserved.</p>
1284      */
SetAdditionalInfo(Aws::String && value)1285     inline void SetAdditionalInfo(Aws::String&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::move(value); }
1286 
1287     /**
1288      * <p>Reserved.</p>
1289      */
SetAdditionalInfo(const char * value)1290     inline void SetAdditionalInfo(const char* value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.assign(value); }
1291 
1292     /**
1293      * <p>Reserved.</p>
1294      */
WithAdditionalInfo(const Aws::String & value)1295     inline RestoreFromClusterSnapshotRequest& WithAdditionalInfo(const Aws::String& value) { SetAdditionalInfo(value); return *this;}
1296 
1297     /**
1298      * <p>Reserved.</p>
1299      */
WithAdditionalInfo(Aws::String && value)1300     inline RestoreFromClusterSnapshotRequest& WithAdditionalInfo(Aws::String&& value) { SetAdditionalInfo(std::move(value)); return *this;}
1301 
1302     /**
1303      * <p>Reserved.</p>
1304      */
WithAdditionalInfo(const char * value)1305     inline RestoreFromClusterSnapshotRequest& WithAdditionalInfo(const char* value) { SetAdditionalInfo(value); return *this;}
1306 
1307 
1308     /**
1309      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1310      * cluster to access other Amazon Web Services services. You must supply the IAM
1311      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1312      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1313      * associated at any time.</p>
1314      */
GetIamRoles()1315     inline const Aws::Vector<Aws::String>& GetIamRoles() const{ return m_iamRoles; }
1316 
1317     /**
1318      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1319      * cluster to access other Amazon Web Services services. You must supply the IAM
1320      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1321      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1322      * associated at any time.</p>
1323      */
IamRolesHasBeenSet()1324     inline bool IamRolesHasBeenSet() const { return m_iamRolesHasBeenSet; }
1325 
1326     /**
1327      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1328      * cluster to access other Amazon Web Services services. You must supply the IAM
1329      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1330      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1331      * associated at any time.</p>
1332      */
SetIamRoles(const Aws::Vector<Aws::String> & value)1333     inline void SetIamRoles(const Aws::Vector<Aws::String>& value) { m_iamRolesHasBeenSet = true; m_iamRoles = value; }
1334 
1335     /**
1336      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1337      * cluster to access other Amazon Web Services services. You must supply the IAM
1338      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1339      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1340      * associated at any time.</p>
1341      */
SetIamRoles(Aws::Vector<Aws::String> && value)1342     inline void SetIamRoles(Aws::Vector<Aws::String>&& value) { m_iamRolesHasBeenSet = true; m_iamRoles = std::move(value); }
1343 
1344     /**
1345      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1346      * cluster to access other Amazon Web Services services. You must supply the IAM
1347      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1348      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1349      * associated at any time.</p>
1350      */
WithIamRoles(const Aws::Vector<Aws::String> & value)1351     inline RestoreFromClusterSnapshotRequest& WithIamRoles(const Aws::Vector<Aws::String>& value) { SetIamRoles(value); return *this;}
1352 
1353     /**
1354      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1355      * cluster to access other Amazon Web Services services. You must supply the IAM
1356      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1357      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1358      * associated at any time.</p>
1359      */
WithIamRoles(Aws::Vector<Aws::String> && value)1360     inline RestoreFromClusterSnapshotRequest& WithIamRoles(Aws::Vector<Aws::String>&& value) { SetIamRoles(std::move(value)); return *this;}
1361 
1362     /**
1363      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1364      * cluster to access other Amazon Web Services services. You must supply the IAM
1365      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1366      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1367      * associated at any time.</p>
1368      */
AddIamRoles(const Aws::String & value)1369     inline RestoreFromClusterSnapshotRequest& AddIamRoles(const Aws::String& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(value); return *this; }
1370 
1371     /**
1372      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1373      * cluster to access other Amazon Web Services services. You must supply the IAM
1374      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1375      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1376      * associated at any time.</p>
1377      */
AddIamRoles(Aws::String && value)1378     inline RestoreFromClusterSnapshotRequest& AddIamRoles(Aws::String&& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(std::move(value)); return *this; }
1379 
1380     /**
1381      * <p>A list of Identity and Access Management (IAM) roles that can be used by the
1382      * cluster to access other Amazon Web Services services. You must supply the IAM
1383      * roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM
1384      * roles in a single request.</p> <p>A cluster can have up to 10 IAM roles
1385      * associated at any time.</p>
1386      */
AddIamRoles(const char * value)1387     inline RestoreFromClusterSnapshotRequest& AddIamRoles(const char* value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(value); return *this; }
1388 
1389 
1390     /**
1391      * <p>The name of the maintenance track for the restored cluster. When you take a
1392      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1393      * cluster. The snapshot might be on a different track than the cluster that was
1394      * the source for the snapshot. For example, suppose that you take a snapshot of a
1395      * cluster that is on the current track and then change the cluster to be on the
1396      * trailing track. In this case, the snapshot and the source cluster are on
1397      * different tracks.</p>
1398      */
GetMaintenanceTrackName()1399     inline const Aws::String& GetMaintenanceTrackName() const{ return m_maintenanceTrackName; }
1400 
1401     /**
1402      * <p>The name of the maintenance track for the restored cluster. When you take a
1403      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1404      * cluster. The snapshot might be on a different track than the cluster that was
1405      * the source for the snapshot. For example, suppose that you take a snapshot of a
1406      * cluster that is on the current track and then change the cluster to be on the
1407      * trailing track. In this case, the snapshot and the source cluster are on
1408      * different tracks.</p>
1409      */
MaintenanceTrackNameHasBeenSet()1410     inline bool MaintenanceTrackNameHasBeenSet() const { return m_maintenanceTrackNameHasBeenSet; }
1411 
1412     /**
1413      * <p>The name of the maintenance track for the restored cluster. When you take a
1414      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1415      * cluster. The snapshot might be on a different track than the cluster that was
1416      * the source for the snapshot. For example, suppose that you take a snapshot of a
1417      * cluster that is on the current track and then change the cluster to be on the
1418      * trailing track. In this case, the snapshot and the source cluster are on
1419      * different tracks.</p>
1420      */
SetMaintenanceTrackName(const Aws::String & value)1421     inline void SetMaintenanceTrackName(const Aws::String& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = value; }
1422 
1423     /**
1424      * <p>The name of the maintenance track for the restored cluster. When you take a
1425      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1426      * cluster. The snapshot might be on a different track than the cluster that was
1427      * the source for the snapshot. For example, suppose that you take a snapshot of a
1428      * cluster that is on the current track and then change the cluster to be on the
1429      * trailing track. In this case, the snapshot and the source cluster are on
1430      * different tracks.</p>
1431      */
SetMaintenanceTrackName(Aws::String && value)1432     inline void SetMaintenanceTrackName(Aws::String&& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = std::move(value); }
1433 
1434     /**
1435      * <p>The name of the maintenance track for the restored cluster. When you take a
1436      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1437      * cluster. The snapshot might be on a different track than the cluster that was
1438      * the source for the snapshot. For example, suppose that you take a snapshot of a
1439      * cluster that is on the current track and then change the cluster to be on the
1440      * trailing track. In this case, the snapshot and the source cluster are on
1441      * different tracks.</p>
1442      */
SetMaintenanceTrackName(const char * value)1443     inline void SetMaintenanceTrackName(const char* value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName.assign(value); }
1444 
1445     /**
1446      * <p>The name of the maintenance track for the restored cluster. When you take a
1447      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1448      * cluster. The snapshot might be on a different track than the cluster that was
1449      * the source for the snapshot. For example, suppose that you take a snapshot of a
1450      * cluster that is on the current track and then change the cluster to be on the
1451      * trailing track. In this case, the snapshot and the source cluster are on
1452      * different tracks.</p>
1453      */
WithMaintenanceTrackName(const Aws::String & value)1454     inline RestoreFromClusterSnapshotRequest& WithMaintenanceTrackName(const Aws::String& value) { SetMaintenanceTrackName(value); return *this;}
1455 
1456     /**
1457      * <p>The name of the maintenance track for the restored cluster. When you take a
1458      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1459      * cluster. The snapshot might be on a different track than the cluster that was
1460      * the source for the snapshot. For example, suppose that you take a snapshot of a
1461      * cluster that is on the current track and then change the cluster to be on the
1462      * trailing track. In this case, the snapshot and the source cluster are on
1463      * different tracks.</p>
1464      */
WithMaintenanceTrackName(Aws::String && value)1465     inline RestoreFromClusterSnapshotRequest& WithMaintenanceTrackName(Aws::String&& value) { SetMaintenanceTrackName(std::move(value)); return *this;}
1466 
1467     /**
1468      * <p>The name of the maintenance track for the restored cluster. When you take a
1469      * snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the
1470      * cluster. The snapshot might be on a different track than the cluster that was
1471      * the source for the snapshot. For example, suppose that you take a snapshot of a
1472      * cluster that is on the current track and then change the cluster to be on the
1473      * trailing track. In this case, the snapshot and the source cluster are on
1474      * different tracks.</p>
1475      */
WithMaintenanceTrackName(const char * value)1476     inline RestoreFromClusterSnapshotRequest& WithMaintenanceTrackName(const char* value) { SetMaintenanceTrackName(value); return *this;}
1477 
1478 
1479     /**
1480      * <p>A unique identifier for the snapshot schedule.</p>
1481      */
GetSnapshotScheduleIdentifier()1482     inline const Aws::String& GetSnapshotScheduleIdentifier() const{ return m_snapshotScheduleIdentifier; }
1483 
1484     /**
1485      * <p>A unique identifier for the snapshot schedule.</p>
1486      */
SnapshotScheduleIdentifierHasBeenSet()1487     inline bool SnapshotScheduleIdentifierHasBeenSet() const { return m_snapshotScheduleIdentifierHasBeenSet; }
1488 
1489     /**
1490      * <p>A unique identifier for the snapshot schedule.</p>
1491      */
SetSnapshotScheduleIdentifier(const Aws::String & value)1492     inline void SetSnapshotScheduleIdentifier(const Aws::String& value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier = value; }
1493 
1494     /**
1495      * <p>A unique identifier for the snapshot schedule.</p>
1496      */
SetSnapshotScheduleIdentifier(Aws::String && value)1497     inline void SetSnapshotScheduleIdentifier(Aws::String&& value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier = std::move(value); }
1498 
1499     /**
1500      * <p>A unique identifier for the snapshot schedule.</p>
1501      */
SetSnapshotScheduleIdentifier(const char * value)1502     inline void SetSnapshotScheduleIdentifier(const char* value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier.assign(value); }
1503 
1504     /**
1505      * <p>A unique identifier for the snapshot schedule.</p>
1506      */
WithSnapshotScheduleIdentifier(const Aws::String & value)1507     inline RestoreFromClusterSnapshotRequest& WithSnapshotScheduleIdentifier(const Aws::String& value) { SetSnapshotScheduleIdentifier(value); return *this;}
1508 
1509     /**
1510      * <p>A unique identifier for the snapshot schedule.</p>
1511      */
WithSnapshotScheduleIdentifier(Aws::String && value)1512     inline RestoreFromClusterSnapshotRequest& WithSnapshotScheduleIdentifier(Aws::String&& value) { SetSnapshotScheduleIdentifier(std::move(value)); return *this;}
1513 
1514     /**
1515      * <p>A unique identifier for the snapshot schedule.</p>
1516      */
WithSnapshotScheduleIdentifier(const char * value)1517     inline RestoreFromClusterSnapshotRequest& WithSnapshotScheduleIdentifier(const char* value) { SetSnapshotScheduleIdentifier(value); return *this;}
1518 
1519 
1520     /**
1521      * <p>The number of nodes specified when provisioning the restored cluster.</p>
1522      */
GetNumberOfNodes()1523     inline int GetNumberOfNodes() const{ return m_numberOfNodes; }
1524 
1525     /**
1526      * <p>The number of nodes specified when provisioning the restored cluster.</p>
1527      */
NumberOfNodesHasBeenSet()1528     inline bool NumberOfNodesHasBeenSet() const { return m_numberOfNodesHasBeenSet; }
1529 
1530     /**
1531      * <p>The number of nodes specified when provisioning the restored cluster.</p>
1532      */
SetNumberOfNodes(int value)1533     inline void SetNumberOfNodes(int value) { m_numberOfNodesHasBeenSet = true; m_numberOfNodes = value; }
1534 
1535     /**
1536      * <p>The number of nodes specified when provisioning the restored cluster.</p>
1537      */
WithNumberOfNodes(int value)1538     inline RestoreFromClusterSnapshotRequest& WithNumberOfNodes(int value) { SetNumberOfNodes(value); return *this;}
1539 
1540 
1541     /**
1542      * <p>The option to enable relocation for an Amazon Redshift cluster between
1543      * Availability Zones after the cluster is restored.</p>
1544      */
GetAvailabilityZoneRelocation()1545     inline bool GetAvailabilityZoneRelocation() const{ return m_availabilityZoneRelocation; }
1546 
1547     /**
1548      * <p>The option to enable relocation for an Amazon Redshift cluster between
1549      * Availability Zones after the cluster is restored.</p>
1550      */
AvailabilityZoneRelocationHasBeenSet()1551     inline bool AvailabilityZoneRelocationHasBeenSet() const { return m_availabilityZoneRelocationHasBeenSet; }
1552 
1553     /**
1554      * <p>The option to enable relocation for an Amazon Redshift cluster between
1555      * Availability Zones after the cluster is restored.</p>
1556      */
SetAvailabilityZoneRelocation(bool value)1557     inline void SetAvailabilityZoneRelocation(bool value) { m_availabilityZoneRelocationHasBeenSet = true; m_availabilityZoneRelocation = value; }
1558 
1559     /**
1560      * <p>The option to enable relocation for an Amazon Redshift cluster between
1561      * Availability Zones after the cluster is restored.</p>
1562      */
WithAvailabilityZoneRelocation(bool value)1563     inline RestoreFromClusterSnapshotRequest& WithAvailabilityZoneRelocation(bool value) { SetAvailabilityZoneRelocation(value); return *this;}
1564 
1565 
1566     /**
1567      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1568      * Query Accelerator) after the cluster is restored. Possible values include the
1569      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1570      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1571      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1572      * determines whether to use AQUA.</p> </li> </ul>
1573      */
GetAquaConfigurationStatus()1574     inline const AquaConfigurationStatus& GetAquaConfigurationStatus() const{ return m_aquaConfigurationStatus; }
1575 
1576     /**
1577      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1578      * Query Accelerator) after the cluster is restored. Possible values include the
1579      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1580      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1581      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1582      * determines whether to use AQUA.</p> </li> </ul>
1583      */
AquaConfigurationStatusHasBeenSet()1584     inline bool AquaConfigurationStatusHasBeenSet() const { return m_aquaConfigurationStatusHasBeenSet; }
1585 
1586     /**
1587      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1588      * Query Accelerator) after the cluster is restored. Possible values include the
1589      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1590      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1591      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1592      * determines whether to use AQUA.</p> </li> </ul>
1593      */
SetAquaConfigurationStatus(const AquaConfigurationStatus & value)1594     inline void SetAquaConfigurationStatus(const AquaConfigurationStatus& value) { m_aquaConfigurationStatusHasBeenSet = true; m_aquaConfigurationStatus = value; }
1595 
1596     /**
1597      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1598      * Query Accelerator) after the cluster is restored. Possible values include the
1599      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1600      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1601      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1602      * determines whether to use AQUA.</p> </li> </ul>
1603      */
SetAquaConfigurationStatus(AquaConfigurationStatus && value)1604     inline void SetAquaConfigurationStatus(AquaConfigurationStatus&& value) { m_aquaConfigurationStatusHasBeenSet = true; m_aquaConfigurationStatus = std::move(value); }
1605 
1606     /**
1607      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1608      * Query Accelerator) after the cluster is restored. Possible values include the
1609      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1610      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1611      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1612      * determines whether to use AQUA.</p> </li> </ul>
1613      */
WithAquaConfigurationStatus(const AquaConfigurationStatus & value)1614     inline RestoreFromClusterSnapshotRequest& WithAquaConfigurationStatus(const AquaConfigurationStatus& value) { SetAquaConfigurationStatus(value); return *this;}
1615 
1616     /**
1617      * <p>The value represents how the cluster is configured to use AQUA (Advanced
1618      * Query Accelerator) after the cluster is restored. Possible values include the
1619      * following.</p> <ul> <li> <p>enabled - Use AQUA if it is available for the
1620      * current Amazon Web Services Region and Amazon Redshift node type.</p> </li> <li>
1621      * <p>disabled - Don't use AQUA. </p> </li> <li> <p>auto - Amazon Redshift
1622      * determines whether to use AQUA.</p> </li> </ul>
1623      */
WithAquaConfigurationStatus(AquaConfigurationStatus && value)1624     inline RestoreFromClusterSnapshotRequest& WithAquaConfigurationStatus(AquaConfigurationStatus&& value) { SetAquaConfigurationStatus(std::move(value)); return *this;}
1625 
1626   private:
1627 
1628     Aws::String m_clusterIdentifier;
1629     bool m_clusterIdentifierHasBeenSet;
1630 
1631     Aws::String m_snapshotIdentifier;
1632     bool m_snapshotIdentifierHasBeenSet;
1633 
1634     Aws::String m_snapshotClusterIdentifier;
1635     bool m_snapshotClusterIdentifierHasBeenSet;
1636 
1637     int m_port;
1638     bool m_portHasBeenSet;
1639 
1640     Aws::String m_availabilityZone;
1641     bool m_availabilityZoneHasBeenSet;
1642 
1643     bool m_allowVersionUpgrade;
1644     bool m_allowVersionUpgradeHasBeenSet;
1645 
1646     Aws::String m_clusterSubnetGroupName;
1647     bool m_clusterSubnetGroupNameHasBeenSet;
1648 
1649     bool m_publiclyAccessible;
1650     bool m_publiclyAccessibleHasBeenSet;
1651 
1652     Aws::String m_ownerAccount;
1653     bool m_ownerAccountHasBeenSet;
1654 
1655     Aws::String m_hsmClientCertificateIdentifier;
1656     bool m_hsmClientCertificateIdentifierHasBeenSet;
1657 
1658     Aws::String m_hsmConfigurationIdentifier;
1659     bool m_hsmConfigurationIdentifierHasBeenSet;
1660 
1661     Aws::String m_elasticIp;
1662     bool m_elasticIpHasBeenSet;
1663 
1664     Aws::String m_clusterParameterGroupName;
1665     bool m_clusterParameterGroupNameHasBeenSet;
1666 
1667     Aws::Vector<Aws::String> m_clusterSecurityGroups;
1668     bool m_clusterSecurityGroupsHasBeenSet;
1669 
1670     Aws::Vector<Aws::String> m_vpcSecurityGroupIds;
1671     bool m_vpcSecurityGroupIdsHasBeenSet;
1672 
1673     Aws::String m_preferredMaintenanceWindow;
1674     bool m_preferredMaintenanceWindowHasBeenSet;
1675 
1676     int m_automatedSnapshotRetentionPeriod;
1677     bool m_automatedSnapshotRetentionPeriodHasBeenSet;
1678 
1679     int m_manualSnapshotRetentionPeriod;
1680     bool m_manualSnapshotRetentionPeriodHasBeenSet;
1681 
1682     Aws::String m_kmsKeyId;
1683     bool m_kmsKeyIdHasBeenSet;
1684 
1685     Aws::String m_nodeType;
1686     bool m_nodeTypeHasBeenSet;
1687 
1688     bool m_enhancedVpcRouting;
1689     bool m_enhancedVpcRoutingHasBeenSet;
1690 
1691     Aws::String m_additionalInfo;
1692     bool m_additionalInfoHasBeenSet;
1693 
1694     Aws::Vector<Aws::String> m_iamRoles;
1695     bool m_iamRolesHasBeenSet;
1696 
1697     Aws::String m_maintenanceTrackName;
1698     bool m_maintenanceTrackNameHasBeenSet;
1699 
1700     Aws::String m_snapshotScheduleIdentifier;
1701     bool m_snapshotScheduleIdentifierHasBeenSet;
1702 
1703     int m_numberOfNodes;
1704     bool m_numberOfNodesHasBeenSet;
1705 
1706     bool m_availabilityZoneRelocation;
1707     bool m_availabilityZoneRelocationHasBeenSet;
1708 
1709     AquaConfigurationStatus m_aquaConfigurationStatus;
1710     bool m_aquaConfigurationStatusHasBeenSet;
1711   };
1712 
1713 } // namespace Model
1714 } // namespace Redshift
1715 } // namespace Aws
1716