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 <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 ElastiCache
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Indicates the slot configuration and global identifier for a slice
28    * group.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/GlobalNodeGroup">AWS
30    * API Reference</a></p>
31    */
32   class AWS_ELASTICACHE_API GlobalNodeGroup
33   {
34   public:
35     GlobalNodeGroup();
36     GlobalNodeGroup(const Aws::Utils::Xml::XmlNode& xmlNode);
37     GlobalNodeGroup& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
38 
39     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
40     void OutputToStream(Aws::OStream& oStream, const char* location) const;
41 
42 
43     /**
44      * <p>The name of the global node group</p>
45      */
GetGlobalNodeGroupId()46     inline const Aws::String& GetGlobalNodeGroupId() const{ return m_globalNodeGroupId; }
47 
48     /**
49      * <p>The name of the global node group</p>
50      */
GlobalNodeGroupIdHasBeenSet()51     inline bool GlobalNodeGroupIdHasBeenSet() const { return m_globalNodeGroupIdHasBeenSet; }
52 
53     /**
54      * <p>The name of the global node group</p>
55      */
SetGlobalNodeGroupId(const Aws::String & value)56     inline void SetGlobalNodeGroupId(const Aws::String& value) { m_globalNodeGroupIdHasBeenSet = true; m_globalNodeGroupId = value; }
57 
58     /**
59      * <p>The name of the global node group</p>
60      */
SetGlobalNodeGroupId(Aws::String && value)61     inline void SetGlobalNodeGroupId(Aws::String&& value) { m_globalNodeGroupIdHasBeenSet = true; m_globalNodeGroupId = std::move(value); }
62 
63     /**
64      * <p>The name of the global node group</p>
65      */
SetGlobalNodeGroupId(const char * value)66     inline void SetGlobalNodeGroupId(const char* value) { m_globalNodeGroupIdHasBeenSet = true; m_globalNodeGroupId.assign(value); }
67 
68     /**
69      * <p>The name of the global node group</p>
70      */
WithGlobalNodeGroupId(const Aws::String & value)71     inline GlobalNodeGroup& WithGlobalNodeGroupId(const Aws::String& value) { SetGlobalNodeGroupId(value); return *this;}
72 
73     /**
74      * <p>The name of the global node group</p>
75      */
WithGlobalNodeGroupId(Aws::String && value)76     inline GlobalNodeGroup& WithGlobalNodeGroupId(Aws::String&& value) { SetGlobalNodeGroupId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The name of the global node group</p>
80      */
WithGlobalNodeGroupId(const char * value)81     inline GlobalNodeGroup& WithGlobalNodeGroupId(const char* value) { SetGlobalNodeGroupId(value); return *this;}
82 
83 
84     /**
85      * <p>The keyspace for this node group</p>
86      */
GetSlots()87     inline const Aws::String& GetSlots() const{ return m_slots; }
88 
89     /**
90      * <p>The keyspace for this node group</p>
91      */
SlotsHasBeenSet()92     inline bool SlotsHasBeenSet() const { return m_slotsHasBeenSet; }
93 
94     /**
95      * <p>The keyspace for this node group</p>
96      */
SetSlots(const Aws::String & value)97     inline void SetSlots(const Aws::String& value) { m_slotsHasBeenSet = true; m_slots = value; }
98 
99     /**
100      * <p>The keyspace for this node group</p>
101      */
SetSlots(Aws::String && value)102     inline void SetSlots(Aws::String&& value) { m_slotsHasBeenSet = true; m_slots = std::move(value); }
103 
104     /**
105      * <p>The keyspace for this node group</p>
106      */
SetSlots(const char * value)107     inline void SetSlots(const char* value) { m_slotsHasBeenSet = true; m_slots.assign(value); }
108 
109     /**
110      * <p>The keyspace for this node group</p>
111      */
WithSlots(const Aws::String & value)112     inline GlobalNodeGroup& WithSlots(const Aws::String& value) { SetSlots(value); return *this;}
113 
114     /**
115      * <p>The keyspace for this node group</p>
116      */
WithSlots(Aws::String && value)117     inline GlobalNodeGroup& WithSlots(Aws::String&& value) { SetSlots(std::move(value)); return *this;}
118 
119     /**
120      * <p>The keyspace for this node group</p>
121      */
WithSlots(const char * value)122     inline GlobalNodeGroup& WithSlots(const char* value) { SetSlots(value); return *this;}
123 
124   private:
125 
126     Aws::String m_globalNodeGroupId;
127     bool m_globalNodeGroupIdHasBeenSet;
128 
129     Aws::String m_slots;
130     bool m_slotsHasBeenSet;
131   };
132 
133 } // namespace Model
134 } // namespace ElastiCache
135 } // namespace Aws
136