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/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Xml
17 {
18   class XmlNode;
19 } // namespace Xml
20 } // namespace Utils
21 namespace Redshift
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Describes cluster attributes that are in a pending state. A change to one or
28    * more the attributes was requested and is in progress or will be
29    * applied.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PendingModifiedValues">AWS
31    * API Reference</a></p>
32    */
33   class AWS_REDSHIFT_API PendingModifiedValues
34   {
35   public:
36     PendingModifiedValues();
37     PendingModifiedValues(const Aws::Utils::Xml::XmlNode& xmlNode);
38     PendingModifiedValues& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
39 
40     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
41     void OutputToStream(Aws::OStream& oStream, const char* location) const;
42 
43 
44     /**
45      * <p>The pending or in-progress change of the admin user password for the
46      * cluster.</p>
47      */
GetMasterUserPassword()48     inline const Aws::String& GetMasterUserPassword() const{ return m_masterUserPassword; }
49 
50     /**
51      * <p>The pending or in-progress change of the admin user password for the
52      * cluster.</p>
53      */
MasterUserPasswordHasBeenSet()54     inline bool MasterUserPasswordHasBeenSet() const { return m_masterUserPasswordHasBeenSet; }
55 
56     /**
57      * <p>The pending or in-progress change of the admin user password for the
58      * cluster.</p>
59      */
SetMasterUserPassword(const Aws::String & value)60     inline void SetMasterUserPassword(const Aws::String& value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword = value; }
61 
62     /**
63      * <p>The pending or in-progress change of the admin user password for the
64      * cluster.</p>
65      */
SetMasterUserPassword(Aws::String && value)66     inline void SetMasterUserPassword(Aws::String&& value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword = std::move(value); }
67 
68     /**
69      * <p>The pending or in-progress change of the admin user password for the
70      * cluster.</p>
71      */
SetMasterUserPassword(const char * value)72     inline void SetMasterUserPassword(const char* value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword.assign(value); }
73 
74     /**
75      * <p>The pending or in-progress change of the admin user password for the
76      * cluster.</p>
77      */
WithMasterUserPassword(const Aws::String & value)78     inline PendingModifiedValues& WithMasterUserPassword(const Aws::String& value) { SetMasterUserPassword(value); return *this;}
79 
80     /**
81      * <p>The pending or in-progress change of the admin user password for the
82      * cluster.</p>
83      */
WithMasterUserPassword(Aws::String && value)84     inline PendingModifiedValues& WithMasterUserPassword(Aws::String&& value) { SetMasterUserPassword(std::move(value)); return *this;}
85 
86     /**
87      * <p>The pending or in-progress change of the admin user password for the
88      * cluster.</p>
89      */
WithMasterUserPassword(const char * value)90     inline PendingModifiedValues& WithMasterUserPassword(const char* value) { SetMasterUserPassword(value); return *this;}
91 
92 
93     /**
94      * <p>The pending or in-progress change of the cluster's node type.</p>
95      */
GetNodeType()96     inline const Aws::String& GetNodeType() const{ return m_nodeType; }
97 
98     /**
99      * <p>The pending or in-progress change of the cluster's node type.</p>
100      */
NodeTypeHasBeenSet()101     inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; }
102 
103     /**
104      * <p>The pending or in-progress change of the cluster's node type.</p>
105      */
SetNodeType(const Aws::String & value)106     inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; }
107 
108     /**
109      * <p>The pending or in-progress change of the cluster's node type.</p>
110      */
SetNodeType(Aws::String && value)111     inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); }
112 
113     /**
114      * <p>The pending or in-progress change of the cluster's node type.</p>
115      */
SetNodeType(const char * value)116     inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); }
117 
118     /**
119      * <p>The pending or in-progress change of the cluster's node type.</p>
120      */
WithNodeType(const Aws::String & value)121     inline PendingModifiedValues& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;}
122 
123     /**
124      * <p>The pending or in-progress change of the cluster's node type.</p>
125      */
WithNodeType(Aws::String && value)126     inline PendingModifiedValues& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;}
127 
128     /**
129      * <p>The pending or in-progress change of the cluster's node type.</p>
130      */
WithNodeType(const char * value)131     inline PendingModifiedValues& WithNodeType(const char* value) { SetNodeType(value); return *this;}
132 
133 
134     /**
135      * <p>The pending or in-progress change of the number of nodes in the cluster.</p>
136      */
GetNumberOfNodes()137     inline int GetNumberOfNodes() const{ return m_numberOfNodes; }
138 
139     /**
140      * <p>The pending or in-progress change of the number of nodes in the cluster.</p>
141      */
NumberOfNodesHasBeenSet()142     inline bool NumberOfNodesHasBeenSet() const { return m_numberOfNodesHasBeenSet; }
143 
144     /**
145      * <p>The pending or in-progress change of the number of nodes in the cluster.</p>
146      */
SetNumberOfNodes(int value)147     inline void SetNumberOfNodes(int value) { m_numberOfNodesHasBeenSet = true; m_numberOfNodes = value; }
148 
149     /**
150      * <p>The pending or in-progress change of the number of nodes in the cluster.</p>
151      */
WithNumberOfNodes(int value)152     inline PendingModifiedValues& WithNumberOfNodes(int value) { SetNumberOfNodes(value); return *this;}
153 
154 
155     /**
156      * <p>The pending or in-progress change of the cluster type.</p>
157      */
GetClusterType()158     inline const Aws::String& GetClusterType() const{ return m_clusterType; }
159 
160     /**
161      * <p>The pending or in-progress change of the cluster type.</p>
162      */
ClusterTypeHasBeenSet()163     inline bool ClusterTypeHasBeenSet() const { return m_clusterTypeHasBeenSet; }
164 
165     /**
166      * <p>The pending or in-progress change of the cluster type.</p>
167      */
SetClusterType(const Aws::String & value)168     inline void SetClusterType(const Aws::String& value) { m_clusterTypeHasBeenSet = true; m_clusterType = value; }
169 
170     /**
171      * <p>The pending or in-progress change of the cluster type.</p>
172      */
SetClusterType(Aws::String && value)173     inline void SetClusterType(Aws::String&& value) { m_clusterTypeHasBeenSet = true; m_clusterType = std::move(value); }
174 
175     /**
176      * <p>The pending or in-progress change of the cluster type.</p>
177      */
SetClusterType(const char * value)178     inline void SetClusterType(const char* value) { m_clusterTypeHasBeenSet = true; m_clusterType.assign(value); }
179 
180     /**
181      * <p>The pending or in-progress change of the cluster type.</p>
182      */
WithClusterType(const Aws::String & value)183     inline PendingModifiedValues& WithClusterType(const Aws::String& value) { SetClusterType(value); return *this;}
184 
185     /**
186      * <p>The pending or in-progress change of the cluster type.</p>
187      */
WithClusterType(Aws::String && value)188     inline PendingModifiedValues& WithClusterType(Aws::String&& value) { SetClusterType(std::move(value)); return *this;}
189 
190     /**
191      * <p>The pending or in-progress change of the cluster type.</p>
192      */
WithClusterType(const char * value)193     inline PendingModifiedValues& WithClusterType(const char* value) { SetClusterType(value); return *this;}
194 
195 
196     /**
197      * <p>The pending or in-progress change of the service version.</p>
198      */
GetClusterVersion()199     inline const Aws::String& GetClusterVersion() const{ return m_clusterVersion; }
200 
201     /**
202      * <p>The pending or in-progress change of the service version.</p>
203      */
ClusterVersionHasBeenSet()204     inline bool ClusterVersionHasBeenSet() const { return m_clusterVersionHasBeenSet; }
205 
206     /**
207      * <p>The pending or in-progress change of the service version.</p>
208      */
SetClusterVersion(const Aws::String & value)209     inline void SetClusterVersion(const Aws::String& value) { m_clusterVersionHasBeenSet = true; m_clusterVersion = value; }
210 
211     /**
212      * <p>The pending or in-progress change of the service version.</p>
213      */
SetClusterVersion(Aws::String && value)214     inline void SetClusterVersion(Aws::String&& value) { m_clusterVersionHasBeenSet = true; m_clusterVersion = std::move(value); }
215 
216     /**
217      * <p>The pending or in-progress change of the service version.</p>
218      */
SetClusterVersion(const char * value)219     inline void SetClusterVersion(const char* value) { m_clusterVersionHasBeenSet = true; m_clusterVersion.assign(value); }
220 
221     /**
222      * <p>The pending or in-progress change of the service version.</p>
223      */
WithClusterVersion(const Aws::String & value)224     inline PendingModifiedValues& WithClusterVersion(const Aws::String& value) { SetClusterVersion(value); return *this;}
225 
226     /**
227      * <p>The pending or in-progress change of the service version.</p>
228      */
WithClusterVersion(Aws::String && value)229     inline PendingModifiedValues& WithClusterVersion(Aws::String&& value) { SetClusterVersion(std::move(value)); return *this;}
230 
231     /**
232      * <p>The pending or in-progress change of the service version.</p>
233      */
WithClusterVersion(const char * value)234     inline PendingModifiedValues& WithClusterVersion(const char* value) { SetClusterVersion(value); return *this;}
235 
236 
237     /**
238      * <p>The pending or in-progress change of the automated snapshot retention
239      * period.</p>
240      */
GetAutomatedSnapshotRetentionPeriod()241     inline int GetAutomatedSnapshotRetentionPeriod() const{ return m_automatedSnapshotRetentionPeriod; }
242 
243     /**
244      * <p>The pending or in-progress change of the automated snapshot retention
245      * period.</p>
246      */
AutomatedSnapshotRetentionPeriodHasBeenSet()247     inline bool AutomatedSnapshotRetentionPeriodHasBeenSet() const { return m_automatedSnapshotRetentionPeriodHasBeenSet; }
248 
249     /**
250      * <p>The pending or in-progress change of the automated snapshot retention
251      * period.</p>
252      */
SetAutomatedSnapshotRetentionPeriod(int value)253     inline void SetAutomatedSnapshotRetentionPeriod(int value) { m_automatedSnapshotRetentionPeriodHasBeenSet = true; m_automatedSnapshotRetentionPeriod = value; }
254 
255     /**
256      * <p>The pending or in-progress change of the automated snapshot retention
257      * period.</p>
258      */
WithAutomatedSnapshotRetentionPeriod(int value)259     inline PendingModifiedValues& WithAutomatedSnapshotRetentionPeriod(int value) { SetAutomatedSnapshotRetentionPeriod(value); return *this;}
260 
261 
262     /**
263      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
264      */
GetClusterIdentifier()265     inline const Aws::String& GetClusterIdentifier() const{ return m_clusterIdentifier; }
266 
267     /**
268      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
269      */
ClusterIdentifierHasBeenSet()270     inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; }
271 
272     /**
273      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
274      */
SetClusterIdentifier(const Aws::String & value)275     inline void SetClusterIdentifier(const Aws::String& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = value; }
276 
277     /**
278      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
279      */
SetClusterIdentifier(Aws::String && value)280     inline void SetClusterIdentifier(Aws::String&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::move(value); }
281 
282     /**
283      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
284      */
SetClusterIdentifier(const char * value)285     inline void SetClusterIdentifier(const char* value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier.assign(value); }
286 
287     /**
288      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
289      */
WithClusterIdentifier(const Aws::String & value)290     inline PendingModifiedValues& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;}
291 
292     /**
293      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
294      */
WithClusterIdentifier(Aws::String && value)295     inline PendingModifiedValues& WithClusterIdentifier(Aws::String&& value) { SetClusterIdentifier(std::move(value)); return *this;}
296 
297     /**
298      * <p>The pending or in-progress change of the new identifier for the cluster.</p>
299      */
WithClusterIdentifier(const char * value)300     inline PendingModifiedValues& WithClusterIdentifier(const char* value) { SetClusterIdentifier(value); return *this;}
301 
302 
303     /**
304      * <p>The pending or in-progress change of the ability to connect to the cluster
305      * from the public network.</p>
306      */
GetPubliclyAccessible()307     inline bool GetPubliclyAccessible() const{ return m_publiclyAccessible; }
308 
309     /**
310      * <p>The pending or in-progress change of the ability to connect to the cluster
311      * from the public network.</p>
312      */
PubliclyAccessibleHasBeenSet()313     inline bool PubliclyAccessibleHasBeenSet() const { return m_publiclyAccessibleHasBeenSet; }
314 
315     /**
316      * <p>The pending or in-progress change of the ability to connect to the cluster
317      * from the public network.</p>
318      */
SetPubliclyAccessible(bool value)319     inline void SetPubliclyAccessible(bool value) { m_publiclyAccessibleHasBeenSet = true; m_publiclyAccessible = value; }
320 
321     /**
322      * <p>The pending or in-progress change of the ability to connect to the cluster
323      * from the public network.</p>
324      */
WithPubliclyAccessible(bool value)325     inline PendingModifiedValues& WithPubliclyAccessible(bool value) { SetPubliclyAccessible(value); return *this;}
326 
327 
328     /**
329      * <p>An option that specifies whether to create the cluster with enhanced VPC
330      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
331      * must be in a VPC. For more information, see <a
332      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
333      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
334      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
335      * false</p>
336      */
GetEnhancedVpcRouting()337     inline bool GetEnhancedVpcRouting() const{ return m_enhancedVpcRouting; }
338 
339     /**
340      * <p>An option that specifies whether to create the cluster with enhanced VPC
341      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
342      * must be in a VPC. For more information, see <a
343      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
344      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
345      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
346      * false</p>
347      */
EnhancedVpcRoutingHasBeenSet()348     inline bool EnhancedVpcRoutingHasBeenSet() const { return m_enhancedVpcRoutingHasBeenSet; }
349 
350     /**
351      * <p>An option that specifies whether to create the cluster with enhanced VPC
352      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
353      * must be in a VPC. For more information, see <a
354      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
355      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
356      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
357      * false</p>
358      */
SetEnhancedVpcRouting(bool value)359     inline void SetEnhancedVpcRouting(bool value) { m_enhancedVpcRoutingHasBeenSet = true; m_enhancedVpcRouting = value; }
360 
361     /**
362      * <p>An option that specifies whether to create the cluster with enhanced VPC
363      * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster
364      * must be in a VPC. For more information, see <a
365      * href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced
366      * VPC Routing</a> in the Amazon Redshift Cluster Management Guide.</p> <p>If this
367      * option is <code>true</code>, enhanced VPC routing is enabled. </p> <p>Default:
368      * false</p>
369      */
WithEnhancedVpcRouting(bool value)370     inline PendingModifiedValues& WithEnhancedVpcRouting(bool value) { SetEnhancedVpcRouting(value); return *this;}
371 
372 
373     /**
374      * <p>The name of the maintenance track that the cluster will change to during the
375      * next maintenance window.</p>
376      */
GetMaintenanceTrackName()377     inline const Aws::String& GetMaintenanceTrackName() const{ return m_maintenanceTrackName; }
378 
379     /**
380      * <p>The name of the maintenance track that the cluster will change to during the
381      * next maintenance window.</p>
382      */
MaintenanceTrackNameHasBeenSet()383     inline bool MaintenanceTrackNameHasBeenSet() const { return m_maintenanceTrackNameHasBeenSet; }
384 
385     /**
386      * <p>The name of the maintenance track that the cluster will change to during the
387      * next maintenance window.</p>
388      */
SetMaintenanceTrackName(const Aws::String & value)389     inline void SetMaintenanceTrackName(const Aws::String& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = value; }
390 
391     /**
392      * <p>The name of the maintenance track that the cluster will change to during the
393      * next maintenance window.</p>
394      */
SetMaintenanceTrackName(Aws::String && value)395     inline void SetMaintenanceTrackName(Aws::String&& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = std::move(value); }
396 
397     /**
398      * <p>The name of the maintenance track that the cluster will change to during the
399      * next maintenance window.</p>
400      */
SetMaintenanceTrackName(const char * value)401     inline void SetMaintenanceTrackName(const char* value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName.assign(value); }
402 
403     /**
404      * <p>The name of the maintenance track that the cluster will change to during the
405      * next maintenance window.</p>
406      */
WithMaintenanceTrackName(const Aws::String & value)407     inline PendingModifiedValues& WithMaintenanceTrackName(const Aws::String& value) { SetMaintenanceTrackName(value); return *this;}
408 
409     /**
410      * <p>The name of the maintenance track that the cluster will change to during the
411      * next maintenance window.</p>
412      */
WithMaintenanceTrackName(Aws::String && value)413     inline PendingModifiedValues& WithMaintenanceTrackName(Aws::String&& value) { SetMaintenanceTrackName(std::move(value)); return *this;}
414 
415     /**
416      * <p>The name of the maintenance track that the cluster will change to during the
417      * next maintenance window.</p>
418      */
WithMaintenanceTrackName(const char * value)419     inline PendingModifiedValues& WithMaintenanceTrackName(const char* value) { SetMaintenanceTrackName(value); return *this;}
420 
421 
422     /**
423      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
424      */
GetEncryptionType()425     inline const Aws::String& GetEncryptionType() const{ return m_encryptionType; }
426 
427     /**
428      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
429      */
EncryptionTypeHasBeenSet()430     inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; }
431 
432     /**
433      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
434      */
SetEncryptionType(const Aws::String & value)435     inline void SetEncryptionType(const Aws::String& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; }
436 
437     /**
438      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
439      */
SetEncryptionType(Aws::String && value)440     inline void SetEncryptionType(Aws::String&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); }
441 
442     /**
443      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
444      */
SetEncryptionType(const char * value)445     inline void SetEncryptionType(const char* value) { m_encryptionTypeHasBeenSet = true; m_encryptionType.assign(value); }
446 
447     /**
448      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
449      */
WithEncryptionType(const Aws::String & value)450     inline PendingModifiedValues& WithEncryptionType(const Aws::String& value) { SetEncryptionType(value); return *this;}
451 
452     /**
453      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
454      */
WithEncryptionType(Aws::String && value)455     inline PendingModifiedValues& WithEncryptionType(Aws::String&& value) { SetEncryptionType(std::move(value)); return *this;}
456 
457     /**
458      * <p>The encryption type for a cluster. Possible values are: KMS and None. </p>
459      */
WithEncryptionType(const char * value)460     inline PendingModifiedValues& WithEncryptionType(const char* value) { SetEncryptionType(value); return *this;}
461 
462   private:
463 
464     Aws::String m_masterUserPassword;
465     bool m_masterUserPasswordHasBeenSet;
466 
467     Aws::String m_nodeType;
468     bool m_nodeTypeHasBeenSet;
469 
470     int m_numberOfNodes;
471     bool m_numberOfNodesHasBeenSet;
472 
473     Aws::String m_clusterType;
474     bool m_clusterTypeHasBeenSet;
475 
476     Aws::String m_clusterVersion;
477     bool m_clusterVersionHasBeenSet;
478 
479     int m_automatedSnapshotRetentionPeriod;
480     bool m_automatedSnapshotRetentionPeriodHasBeenSet;
481 
482     Aws::String m_clusterIdentifier;
483     bool m_clusterIdentifierHasBeenSet;
484 
485     bool m_publiclyAccessible;
486     bool m_publiclyAccessibleHasBeenSet;
487 
488     bool m_enhancedVpcRouting;
489     bool m_enhancedVpcRoutingHasBeenSet;
490 
491     Aws::String m_maintenanceTrackName;
492     bool m_maintenanceTrackNameHasBeenSet;
493 
494     Aws::String m_encryptionType;
495     bool m_encryptionTypeHasBeenSet;
496   };
497 
498 } // namespace Model
499 } // namespace Redshift
500 } // namespace Aws
501