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/elasticache/ElastiCache_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticache/model/NodeGroupMemberUpdateStatus.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace ElastiCache
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>The status of the service update on the node group </p><p><h3>See Also:</h3>
30    * <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NodeGroupUpdateStatus">AWS
32    * API Reference</a></p>
33    */
34   class AWS_ELASTICACHE_API NodeGroupUpdateStatus
35   {
36   public:
37     NodeGroupUpdateStatus();
38     NodeGroupUpdateStatus(const Aws::Utils::Xml::XmlNode& xmlNode);
39     NodeGroupUpdateStatus& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
40 
41     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
42     void OutputToStream(Aws::OStream& oStream, const char* location) const;
43 
44 
45     /**
46      * <p>The ID of the node group</p>
47      */
GetNodeGroupId()48     inline const Aws::String& GetNodeGroupId() const{ return m_nodeGroupId; }
49 
50     /**
51      * <p>The ID of the node group</p>
52      */
NodeGroupIdHasBeenSet()53     inline bool NodeGroupIdHasBeenSet() const { return m_nodeGroupIdHasBeenSet; }
54 
55     /**
56      * <p>The ID of the node group</p>
57      */
SetNodeGroupId(const Aws::String & value)58     inline void SetNodeGroupId(const Aws::String& value) { m_nodeGroupIdHasBeenSet = true; m_nodeGroupId = value; }
59 
60     /**
61      * <p>The ID of the node group</p>
62      */
SetNodeGroupId(Aws::String && value)63     inline void SetNodeGroupId(Aws::String&& value) { m_nodeGroupIdHasBeenSet = true; m_nodeGroupId = std::move(value); }
64 
65     /**
66      * <p>The ID of the node group</p>
67      */
SetNodeGroupId(const char * value)68     inline void SetNodeGroupId(const char* value) { m_nodeGroupIdHasBeenSet = true; m_nodeGroupId.assign(value); }
69 
70     /**
71      * <p>The ID of the node group</p>
72      */
WithNodeGroupId(const Aws::String & value)73     inline NodeGroupUpdateStatus& WithNodeGroupId(const Aws::String& value) { SetNodeGroupId(value); return *this;}
74 
75     /**
76      * <p>The ID of the node group</p>
77      */
WithNodeGroupId(Aws::String && value)78     inline NodeGroupUpdateStatus& WithNodeGroupId(Aws::String&& value) { SetNodeGroupId(std::move(value)); return *this;}
79 
80     /**
81      * <p>The ID of the node group</p>
82      */
WithNodeGroupId(const char * value)83     inline NodeGroupUpdateStatus& WithNodeGroupId(const char* value) { SetNodeGroupId(value); return *this;}
84 
85 
86     /**
87      * <p>The status of the service update on the node group member</p>
88      */
GetNodeGroupMemberUpdateStatus()89     inline const Aws::Vector<NodeGroupMemberUpdateStatus>& GetNodeGroupMemberUpdateStatus() const{ return m_nodeGroupMemberUpdateStatus; }
90 
91     /**
92      * <p>The status of the service update on the node group member</p>
93      */
NodeGroupMemberUpdateStatusHasBeenSet()94     inline bool NodeGroupMemberUpdateStatusHasBeenSet() const { return m_nodeGroupMemberUpdateStatusHasBeenSet; }
95 
96     /**
97      * <p>The status of the service update on the node group member</p>
98      */
SetNodeGroupMemberUpdateStatus(const Aws::Vector<NodeGroupMemberUpdateStatus> & value)99     inline void SetNodeGroupMemberUpdateStatus(const Aws::Vector<NodeGroupMemberUpdateStatus>& value) { m_nodeGroupMemberUpdateStatusHasBeenSet = true; m_nodeGroupMemberUpdateStatus = value; }
100 
101     /**
102      * <p>The status of the service update on the node group member</p>
103      */
SetNodeGroupMemberUpdateStatus(Aws::Vector<NodeGroupMemberUpdateStatus> && value)104     inline void SetNodeGroupMemberUpdateStatus(Aws::Vector<NodeGroupMemberUpdateStatus>&& value) { m_nodeGroupMemberUpdateStatusHasBeenSet = true; m_nodeGroupMemberUpdateStatus = std::move(value); }
105 
106     /**
107      * <p>The status of the service update on the node group member</p>
108      */
WithNodeGroupMemberUpdateStatus(const Aws::Vector<NodeGroupMemberUpdateStatus> & value)109     inline NodeGroupUpdateStatus& WithNodeGroupMemberUpdateStatus(const Aws::Vector<NodeGroupMemberUpdateStatus>& value) { SetNodeGroupMemberUpdateStatus(value); return *this;}
110 
111     /**
112      * <p>The status of the service update on the node group member</p>
113      */
WithNodeGroupMemberUpdateStatus(Aws::Vector<NodeGroupMemberUpdateStatus> && value)114     inline NodeGroupUpdateStatus& WithNodeGroupMemberUpdateStatus(Aws::Vector<NodeGroupMemberUpdateStatus>&& value) { SetNodeGroupMemberUpdateStatus(std::move(value)); return *this;}
115 
116     /**
117      * <p>The status of the service update on the node group member</p>
118      */
AddNodeGroupMemberUpdateStatus(const NodeGroupMemberUpdateStatus & value)119     inline NodeGroupUpdateStatus& AddNodeGroupMemberUpdateStatus(const NodeGroupMemberUpdateStatus& value) { m_nodeGroupMemberUpdateStatusHasBeenSet = true; m_nodeGroupMemberUpdateStatus.push_back(value); return *this; }
120 
121     /**
122      * <p>The status of the service update on the node group member</p>
123      */
AddNodeGroupMemberUpdateStatus(NodeGroupMemberUpdateStatus && value)124     inline NodeGroupUpdateStatus& AddNodeGroupMemberUpdateStatus(NodeGroupMemberUpdateStatus&& value) { m_nodeGroupMemberUpdateStatusHasBeenSet = true; m_nodeGroupMemberUpdateStatus.push_back(std::move(value)); return *this; }
125 
126   private:
127 
128     Aws::String m_nodeGroupId;
129     bool m_nodeGroupIdHasBeenSet;
130 
131     Aws::Vector<NodeGroupMemberUpdateStatus> m_nodeGroupMemberUpdateStatus;
132     bool m_nodeGroupMemberUpdateStatusHasBeenSet;
133   };
134 
135 } // namespace Model
136 } // namespace ElastiCache
137 } // namespace Aws
138