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/elasticache/ElastiCacheRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace ElastiCache
15 {
16 namespace Model
17 {
18 
19   /**
20    */
21   class AWS_ELASTICACHE_API ModifyGlobalReplicationGroupRequest : public ElastiCacheRequest
22   {
23   public:
24     ModifyGlobalReplicationGroupRequest();
25 
26     // Service request name is the Operation name which will send this request out,
27     // each operation should has unique request name, so that we can get operation's name from this request.
28     // Note: this is not true for response, multiple operations may have the same response name,
29     // so we can not get operation's name from response.
GetServiceRequestName()30     inline virtual const char* GetServiceRequestName() const override { return "ModifyGlobalReplicationGroup"; }
31 
32     Aws::String SerializePayload() const override;
33 
34   protected:
35     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
36 
37   public:
38 
39     /**
40      * <p>The name of the Global datastore</p>
41      */
GetGlobalReplicationGroupId()42     inline const Aws::String& GetGlobalReplicationGroupId() const{ return m_globalReplicationGroupId; }
43 
44     /**
45      * <p>The name of the Global datastore</p>
46      */
GlobalReplicationGroupIdHasBeenSet()47     inline bool GlobalReplicationGroupIdHasBeenSet() const { return m_globalReplicationGroupIdHasBeenSet; }
48 
49     /**
50      * <p>The name of the Global datastore</p>
51      */
SetGlobalReplicationGroupId(const Aws::String & value)52     inline void SetGlobalReplicationGroupId(const Aws::String& value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId = value; }
53 
54     /**
55      * <p>The name of the Global datastore</p>
56      */
SetGlobalReplicationGroupId(Aws::String && value)57     inline void SetGlobalReplicationGroupId(Aws::String&& value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId = std::move(value); }
58 
59     /**
60      * <p>The name of the Global datastore</p>
61      */
SetGlobalReplicationGroupId(const char * value)62     inline void SetGlobalReplicationGroupId(const char* value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId.assign(value); }
63 
64     /**
65      * <p>The name of the Global datastore</p>
66      */
WithGlobalReplicationGroupId(const Aws::String & value)67     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupId(const Aws::String& value) { SetGlobalReplicationGroupId(value); return *this;}
68 
69     /**
70      * <p>The name of the Global datastore</p>
71      */
WithGlobalReplicationGroupId(Aws::String && value)72     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupId(Aws::String&& value) { SetGlobalReplicationGroupId(std::move(value)); return *this;}
73 
74     /**
75      * <p>The name of the Global datastore</p>
76      */
WithGlobalReplicationGroupId(const char * value)77     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupId(const char* value) { SetGlobalReplicationGroupId(value); return *this;}
78 
79 
80     /**
81      * <p>This parameter causes the modifications in this request and any pending
82      * modifications to be applied, asynchronously and as soon as possible.
83      * Modifications to Global Replication Groups cannot be requested to be applied in
84      * PreferredMaintenceWindow. </p>
85      */
GetApplyImmediately()86     inline bool GetApplyImmediately() const{ return m_applyImmediately; }
87 
88     /**
89      * <p>This parameter causes the modifications in this request and any pending
90      * modifications to be applied, asynchronously and as soon as possible.
91      * Modifications to Global Replication Groups cannot be requested to be applied in
92      * PreferredMaintenceWindow. </p>
93      */
ApplyImmediatelyHasBeenSet()94     inline bool ApplyImmediatelyHasBeenSet() const { return m_applyImmediatelyHasBeenSet; }
95 
96     /**
97      * <p>This parameter causes the modifications in this request and any pending
98      * modifications to be applied, asynchronously and as soon as possible.
99      * Modifications to Global Replication Groups cannot be requested to be applied in
100      * PreferredMaintenceWindow. </p>
101      */
SetApplyImmediately(bool value)102     inline void SetApplyImmediately(bool value) { m_applyImmediatelyHasBeenSet = true; m_applyImmediately = value; }
103 
104     /**
105      * <p>This parameter causes the modifications in this request and any pending
106      * modifications to be applied, asynchronously and as soon as possible.
107      * Modifications to Global Replication Groups cannot be requested to be applied in
108      * PreferredMaintenceWindow. </p>
109      */
WithApplyImmediately(bool value)110     inline ModifyGlobalReplicationGroupRequest& WithApplyImmediately(bool value) { SetApplyImmediately(value); return *this;}
111 
112 
113     /**
114      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
115      */
GetCacheNodeType()116     inline const Aws::String& GetCacheNodeType() const{ return m_cacheNodeType; }
117 
118     /**
119      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
120      */
CacheNodeTypeHasBeenSet()121     inline bool CacheNodeTypeHasBeenSet() const { return m_cacheNodeTypeHasBeenSet; }
122 
123     /**
124      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
125      */
SetCacheNodeType(const Aws::String & value)126     inline void SetCacheNodeType(const Aws::String& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = value; }
127 
128     /**
129      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
130      */
SetCacheNodeType(Aws::String && value)131     inline void SetCacheNodeType(Aws::String&& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = std::move(value); }
132 
133     /**
134      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
135      */
SetCacheNodeType(const char * value)136     inline void SetCacheNodeType(const char* value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType.assign(value); }
137 
138     /**
139      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
140      */
WithCacheNodeType(const Aws::String & value)141     inline ModifyGlobalReplicationGroupRequest& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;}
142 
143     /**
144      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
145      */
WithCacheNodeType(Aws::String && value)146     inline ModifyGlobalReplicationGroupRequest& WithCacheNodeType(Aws::String&& value) { SetCacheNodeType(std::move(value)); return *this;}
147 
148     /**
149      * <p>A valid cache node type that you want to scale this Global datastore to.</p>
150      */
WithCacheNodeType(const char * value)151     inline ModifyGlobalReplicationGroupRequest& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;}
152 
153 
154     /**
155      * <p>The upgraded version of the cache engine to be run on the clusters in the
156      * Global datastore. </p>
157      */
GetEngineVersion()158     inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; }
159 
160     /**
161      * <p>The upgraded version of the cache engine to be run on the clusters in the
162      * Global datastore. </p>
163      */
EngineVersionHasBeenSet()164     inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; }
165 
166     /**
167      * <p>The upgraded version of the cache engine to be run on the clusters in the
168      * Global datastore. </p>
169      */
SetEngineVersion(const Aws::String & value)170     inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; }
171 
172     /**
173      * <p>The upgraded version of the cache engine to be run on the clusters in the
174      * Global datastore. </p>
175      */
SetEngineVersion(Aws::String && value)176     inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); }
177 
178     /**
179      * <p>The upgraded version of the cache engine to be run on the clusters in the
180      * Global datastore. </p>
181      */
SetEngineVersion(const char * value)182     inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); }
183 
184     /**
185      * <p>The upgraded version of the cache engine to be run on the clusters in the
186      * Global datastore. </p>
187      */
WithEngineVersion(const Aws::String & value)188     inline ModifyGlobalReplicationGroupRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;}
189 
190     /**
191      * <p>The upgraded version of the cache engine to be run on the clusters in the
192      * Global datastore. </p>
193      */
WithEngineVersion(Aws::String && value)194     inline ModifyGlobalReplicationGroupRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;}
195 
196     /**
197      * <p>The upgraded version of the cache engine to be run on the clusters in the
198      * Global datastore. </p>
199      */
WithEngineVersion(const char * value)200     inline ModifyGlobalReplicationGroupRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;}
201 
202 
203     /**
204      * <p>The name of the cache parameter group to use with the Global datastore. It
205      * must be compatible with the major engine version used by the Global
206      * datastore.</p>
207      */
GetCacheParameterGroupName()208     inline const Aws::String& GetCacheParameterGroupName() const{ return m_cacheParameterGroupName; }
209 
210     /**
211      * <p>The name of the cache parameter group to use with the Global datastore. It
212      * must be compatible with the major engine version used by the Global
213      * datastore.</p>
214      */
CacheParameterGroupNameHasBeenSet()215     inline bool CacheParameterGroupNameHasBeenSet() const { return m_cacheParameterGroupNameHasBeenSet; }
216 
217     /**
218      * <p>The name of the cache parameter group to use with the Global datastore. It
219      * must be compatible with the major engine version used by the Global
220      * datastore.</p>
221      */
SetCacheParameterGroupName(const Aws::String & value)222     inline void SetCacheParameterGroupName(const Aws::String& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = value; }
223 
224     /**
225      * <p>The name of the cache parameter group to use with the Global datastore. It
226      * must be compatible with the major engine version used by the Global
227      * datastore.</p>
228      */
SetCacheParameterGroupName(Aws::String && value)229     inline void SetCacheParameterGroupName(Aws::String&& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = std::move(value); }
230 
231     /**
232      * <p>The name of the cache parameter group to use with the Global datastore. It
233      * must be compatible with the major engine version used by the Global
234      * datastore.</p>
235      */
SetCacheParameterGroupName(const char * value)236     inline void SetCacheParameterGroupName(const char* value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName.assign(value); }
237 
238     /**
239      * <p>The name of the cache parameter group to use with the Global datastore. It
240      * must be compatible with the major engine version used by the Global
241      * datastore.</p>
242      */
WithCacheParameterGroupName(const Aws::String & value)243     inline ModifyGlobalReplicationGroupRequest& WithCacheParameterGroupName(const Aws::String& value) { SetCacheParameterGroupName(value); return *this;}
244 
245     /**
246      * <p>The name of the cache parameter group to use with the Global datastore. It
247      * must be compatible with the major engine version used by the Global
248      * datastore.</p>
249      */
WithCacheParameterGroupName(Aws::String && value)250     inline ModifyGlobalReplicationGroupRequest& WithCacheParameterGroupName(Aws::String&& value) { SetCacheParameterGroupName(std::move(value)); return *this;}
251 
252     /**
253      * <p>The name of the cache parameter group to use with the Global datastore. It
254      * must be compatible with the major engine version used by the Global
255      * datastore.</p>
256      */
WithCacheParameterGroupName(const char * value)257     inline ModifyGlobalReplicationGroupRequest& WithCacheParameterGroupName(const char* value) { SetCacheParameterGroupName(value); return *this;}
258 
259 
260     /**
261      * <p>A description of the Global datastore</p>
262      */
GetGlobalReplicationGroupDescription()263     inline const Aws::String& GetGlobalReplicationGroupDescription() const{ return m_globalReplicationGroupDescription; }
264 
265     /**
266      * <p>A description of the Global datastore</p>
267      */
GlobalReplicationGroupDescriptionHasBeenSet()268     inline bool GlobalReplicationGroupDescriptionHasBeenSet() const { return m_globalReplicationGroupDescriptionHasBeenSet; }
269 
270     /**
271      * <p>A description of the Global datastore</p>
272      */
SetGlobalReplicationGroupDescription(const Aws::String & value)273     inline void SetGlobalReplicationGroupDescription(const Aws::String& value) { m_globalReplicationGroupDescriptionHasBeenSet = true; m_globalReplicationGroupDescription = value; }
274 
275     /**
276      * <p>A description of the Global datastore</p>
277      */
SetGlobalReplicationGroupDescription(Aws::String && value)278     inline void SetGlobalReplicationGroupDescription(Aws::String&& value) { m_globalReplicationGroupDescriptionHasBeenSet = true; m_globalReplicationGroupDescription = std::move(value); }
279 
280     /**
281      * <p>A description of the Global datastore</p>
282      */
SetGlobalReplicationGroupDescription(const char * value)283     inline void SetGlobalReplicationGroupDescription(const char* value) { m_globalReplicationGroupDescriptionHasBeenSet = true; m_globalReplicationGroupDescription.assign(value); }
284 
285     /**
286      * <p>A description of the Global datastore</p>
287      */
WithGlobalReplicationGroupDescription(const Aws::String & value)288     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupDescription(const Aws::String& value) { SetGlobalReplicationGroupDescription(value); return *this;}
289 
290     /**
291      * <p>A description of the Global datastore</p>
292      */
WithGlobalReplicationGroupDescription(Aws::String && value)293     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupDescription(Aws::String&& value) { SetGlobalReplicationGroupDescription(std::move(value)); return *this;}
294 
295     /**
296      * <p>A description of the Global datastore</p>
297      */
WithGlobalReplicationGroupDescription(const char * value)298     inline ModifyGlobalReplicationGroupRequest& WithGlobalReplicationGroupDescription(const char* value) { SetGlobalReplicationGroupDescription(value); return *this;}
299 
300 
301     /**
302      * <p>Determines whether a read replica is automatically promoted to read/write
303      * primary if the existing primary encounters a failure. </p>
304      */
GetAutomaticFailoverEnabled()305     inline bool GetAutomaticFailoverEnabled() const{ return m_automaticFailoverEnabled; }
306 
307     /**
308      * <p>Determines whether a read replica is automatically promoted to read/write
309      * primary if the existing primary encounters a failure. </p>
310      */
AutomaticFailoverEnabledHasBeenSet()311     inline bool AutomaticFailoverEnabledHasBeenSet() const { return m_automaticFailoverEnabledHasBeenSet; }
312 
313     /**
314      * <p>Determines whether a read replica is automatically promoted to read/write
315      * primary if the existing primary encounters a failure. </p>
316      */
SetAutomaticFailoverEnabled(bool value)317     inline void SetAutomaticFailoverEnabled(bool value) { m_automaticFailoverEnabledHasBeenSet = true; m_automaticFailoverEnabled = value; }
318 
319     /**
320      * <p>Determines whether a read replica is automatically promoted to read/write
321      * primary if the existing primary encounters a failure. </p>
322      */
WithAutomaticFailoverEnabled(bool value)323     inline ModifyGlobalReplicationGroupRequest& WithAutomaticFailoverEnabled(bool value) { SetAutomaticFailoverEnabled(value); return *this;}
324 
325   private:
326 
327     Aws::String m_globalReplicationGroupId;
328     bool m_globalReplicationGroupIdHasBeenSet;
329 
330     bool m_applyImmediately;
331     bool m_applyImmediatelyHasBeenSet;
332 
333     Aws::String m_cacheNodeType;
334     bool m_cacheNodeTypeHasBeenSet;
335 
336     Aws::String m_engineVersion;
337     bool m_engineVersionHasBeenSet;
338 
339     Aws::String m_cacheParameterGroupName;
340     bool m_cacheParameterGroupNameHasBeenSet;
341 
342     Aws::String m_globalReplicationGroupDescription;
343     bool m_globalReplicationGroupDescriptionHasBeenSet;
344 
345     bool m_automaticFailoverEnabled;
346     bool m_automaticFailoverEnabledHasBeenSet;
347   };
348 
349 } // namespace Model
350 } // namespace ElastiCache
351 } // namespace Aws
352