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 <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticache/model/TimeRangeFilter.h>
12 #include <aws/elasticache/model/ServiceUpdateStatus.h>
13 #include <aws/elasticache/model/UpdateActionStatus.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace ElastiCache
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_ELASTICACHE_API DescribeUpdateActionsRequest : public ElastiCacheRequest
26   {
27   public:
28     DescribeUpdateActionsRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "DescribeUpdateActions"; }
35 
36     Aws::String SerializePayload() const override;
37 
38   protected:
39     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
40 
41   public:
42 
43     /**
44      * <p>The unique ID of the service update</p>
45      */
GetServiceUpdateName()46     inline const Aws::String& GetServiceUpdateName() const{ return m_serviceUpdateName; }
47 
48     /**
49      * <p>The unique ID of the service update</p>
50      */
ServiceUpdateNameHasBeenSet()51     inline bool ServiceUpdateNameHasBeenSet() const { return m_serviceUpdateNameHasBeenSet; }
52 
53     /**
54      * <p>The unique ID of the service update</p>
55      */
SetServiceUpdateName(const Aws::String & value)56     inline void SetServiceUpdateName(const Aws::String& value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName = value; }
57 
58     /**
59      * <p>The unique ID of the service update</p>
60      */
SetServiceUpdateName(Aws::String && value)61     inline void SetServiceUpdateName(Aws::String&& value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName = std::move(value); }
62 
63     /**
64      * <p>The unique ID of the service update</p>
65      */
SetServiceUpdateName(const char * value)66     inline void SetServiceUpdateName(const char* value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName.assign(value); }
67 
68     /**
69      * <p>The unique ID of the service update</p>
70      */
WithServiceUpdateName(const Aws::String & value)71     inline DescribeUpdateActionsRequest& WithServiceUpdateName(const Aws::String& value) { SetServiceUpdateName(value); return *this;}
72 
73     /**
74      * <p>The unique ID of the service update</p>
75      */
WithServiceUpdateName(Aws::String && value)76     inline DescribeUpdateActionsRequest& WithServiceUpdateName(Aws::String&& value) { SetServiceUpdateName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The unique ID of the service update</p>
80      */
WithServiceUpdateName(const char * value)81     inline DescribeUpdateActionsRequest& WithServiceUpdateName(const char* value) { SetServiceUpdateName(value); return *this;}
82 
83 
84     /**
85      * <p>The replication group IDs</p>
86      */
GetReplicationGroupIds()87     inline const Aws::Vector<Aws::String>& GetReplicationGroupIds() const{ return m_replicationGroupIds; }
88 
89     /**
90      * <p>The replication group IDs</p>
91      */
ReplicationGroupIdsHasBeenSet()92     inline bool ReplicationGroupIdsHasBeenSet() const { return m_replicationGroupIdsHasBeenSet; }
93 
94     /**
95      * <p>The replication group IDs</p>
96      */
SetReplicationGroupIds(const Aws::Vector<Aws::String> & value)97     inline void SetReplicationGroupIds(const Aws::Vector<Aws::String>& value) { m_replicationGroupIdsHasBeenSet = true; m_replicationGroupIds = value; }
98 
99     /**
100      * <p>The replication group IDs</p>
101      */
SetReplicationGroupIds(Aws::Vector<Aws::String> && value)102     inline void SetReplicationGroupIds(Aws::Vector<Aws::String>&& value) { m_replicationGroupIdsHasBeenSet = true; m_replicationGroupIds = std::move(value); }
103 
104     /**
105      * <p>The replication group IDs</p>
106      */
WithReplicationGroupIds(const Aws::Vector<Aws::String> & value)107     inline DescribeUpdateActionsRequest& WithReplicationGroupIds(const Aws::Vector<Aws::String>& value) { SetReplicationGroupIds(value); return *this;}
108 
109     /**
110      * <p>The replication group IDs</p>
111      */
WithReplicationGroupIds(Aws::Vector<Aws::String> && value)112     inline DescribeUpdateActionsRequest& WithReplicationGroupIds(Aws::Vector<Aws::String>&& value) { SetReplicationGroupIds(std::move(value)); return *this;}
113 
114     /**
115      * <p>The replication group IDs</p>
116      */
AddReplicationGroupIds(const Aws::String & value)117     inline DescribeUpdateActionsRequest& AddReplicationGroupIds(const Aws::String& value) { m_replicationGroupIdsHasBeenSet = true; m_replicationGroupIds.push_back(value); return *this; }
118 
119     /**
120      * <p>The replication group IDs</p>
121      */
AddReplicationGroupIds(Aws::String && value)122     inline DescribeUpdateActionsRequest& AddReplicationGroupIds(Aws::String&& value) { m_replicationGroupIdsHasBeenSet = true; m_replicationGroupIds.push_back(std::move(value)); return *this; }
123 
124     /**
125      * <p>The replication group IDs</p>
126      */
AddReplicationGroupIds(const char * value)127     inline DescribeUpdateActionsRequest& AddReplicationGroupIds(const char* value) { m_replicationGroupIdsHasBeenSet = true; m_replicationGroupIds.push_back(value); return *this; }
128 
129 
130     /**
131      * <p>The cache cluster IDs</p>
132      */
GetCacheClusterIds()133     inline const Aws::Vector<Aws::String>& GetCacheClusterIds() const{ return m_cacheClusterIds; }
134 
135     /**
136      * <p>The cache cluster IDs</p>
137      */
CacheClusterIdsHasBeenSet()138     inline bool CacheClusterIdsHasBeenSet() const { return m_cacheClusterIdsHasBeenSet; }
139 
140     /**
141      * <p>The cache cluster IDs</p>
142      */
SetCacheClusterIds(const Aws::Vector<Aws::String> & value)143     inline void SetCacheClusterIds(const Aws::Vector<Aws::String>& value) { m_cacheClusterIdsHasBeenSet = true; m_cacheClusterIds = value; }
144 
145     /**
146      * <p>The cache cluster IDs</p>
147      */
SetCacheClusterIds(Aws::Vector<Aws::String> && value)148     inline void SetCacheClusterIds(Aws::Vector<Aws::String>&& value) { m_cacheClusterIdsHasBeenSet = true; m_cacheClusterIds = std::move(value); }
149 
150     /**
151      * <p>The cache cluster IDs</p>
152      */
WithCacheClusterIds(const Aws::Vector<Aws::String> & value)153     inline DescribeUpdateActionsRequest& WithCacheClusterIds(const Aws::Vector<Aws::String>& value) { SetCacheClusterIds(value); return *this;}
154 
155     /**
156      * <p>The cache cluster IDs</p>
157      */
WithCacheClusterIds(Aws::Vector<Aws::String> && value)158     inline DescribeUpdateActionsRequest& WithCacheClusterIds(Aws::Vector<Aws::String>&& value) { SetCacheClusterIds(std::move(value)); return *this;}
159 
160     /**
161      * <p>The cache cluster IDs</p>
162      */
AddCacheClusterIds(const Aws::String & value)163     inline DescribeUpdateActionsRequest& AddCacheClusterIds(const Aws::String& value) { m_cacheClusterIdsHasBeenSet = true; m_cacheClusterIds.push_back(value); return *this; }
164 
165     /**
166      * <p>The cache cluster IDs</p>
167      */
AddCacheClusterIds(Aws::String && value)168     inline DescribeUpdateActionsRequest& AddCacheClusterIds(Aws::String&& value) { m_cacheClusterIdsHasBeenSet = true; m_cacheClusterIds.push_back(std::move(value)); return *this; }
169 
170     /**
171      * <p>The cache cluster IDs</p>
172      */
AddCacheClusterIds(const char * value)173     inline DescribeUpdateActionsRequest& AddCacheClusterIds(const char* value) { m_cacheClusterIdsHasBeenSet = true; m_cacheClusterIds.push_back(value); return *this; }
174 
175 
176     /**
177      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
178      * </p>
179      */
GetEngine()180     inline const Aws::String& GetEngine() const{ return m_engine; }
181 
182     /**
183      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
184      * </p>
185      */
EngineHasBeenSet()186     inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; }
187 
188     /**
189      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
190      * </p>
191      */
SetEngine(const Aws::String & value)192     inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; }
193 
194     /**
195      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
196      * </p>
197      */
SetEngine(Aws::String && value)198     inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); }
199 
200     /**
201      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
202      * </p>
203      */
SetEngine(const char * value)204     inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); }
205 
206     /**
207      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
208      * </p>
209      */
WithEngine(const Aws::String & value)210     inline DescribeUpdateActionsRequest& WithEngine(const Aws::String& value) { SetEngine(value); return *this;}
211 
212     /**
213      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
214      * </p>
215      */
WithEngine(Aws::String && value)216     inline DescribeUpdateActionsRequest& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;}
217 
218     /**
219      * <p>The Elasticache engine to which the update applies. Either Redis or Memcached
220      * </p>
221      */
WithEngine(const char * value)222     inline DescribeUpdateActionsRequest& WithEngine(const char* value) { SetEngine(value); return *this;}
223 
224 
225     /**
226      * <p>The status of the service update</p>
227      */
GetServiceUpdateStatus()228     inline const Aws::Vector<ServiceUpdateStatus>& GetServiceUpdateStatus() const{ return m_serviceUpdateStatus; }
229 
230     /**
231      * <p>The status of the service update</p>
232      */
ServiceUpdateStatusHasBeenSet()233     inline bool ServiceUpdateStatusHasBeenSet() const { return m_serviceUpdateStatusHasBeenSet; }
234 
235     /**
236      * <p>The status of the service update</p>
237      */
SetServiceUpdateStatus(const Aws::Vector<ServiceUpdateStatus> & value)238     inline void SetServiceUpdateStatus(const Aws::Vector<ServiceUpdateStatus>& value) { m_serviceUpdateStatusHasBeenSet = true; m_serviceUpdateStatus = value; }
239 
240     /**
241      * <p>The status of the service update</p>
242      */
SetServiceUpdateStatus(Aws::Vector<ServiceUpdateStatus> && value)243     inline void SetServiceUpdateStatus(Aws::Vector<ServiceUpdateStatus>&& value) { m_serviceUpdateStatusHasBeenSet = true; m_serviceUpdateStatus = std::move(value); }
244 
245     /**
246      * <p>The status of the service update</p>
247      */
WithServiceUpdateStatus(const Aws::Vector<ServiceUpdateStatus> & value)248     inline DescribeUpdateActionsRequest& WithServiceUpdateStatus(const Aws::Vector<ServiceUpdateStatus>& value) { SetServiceUpdateStatus(value); return *this;}
249 
250     /**
251      * <p>The status of the service update</p>
252      */
WithServiceUpdateStatus(Aws::Vector<ServiceUpdateStatus> && value)253     inline DescribeUpdateActionsRequest& WithServiceUpdateStatus(Aws::Vector<ServiceUpdateStatus>&& value) { SetServiceUpdateStatus(std::move(value)); return *this;}
254 
255     /**
256      * <p>The status of the service update</p>
257      */
AddServiceUpdateStatus(const ServiceUpdateStatus & value)258     inline DescribeUpdateActionsRequest& AddServiceUpdateStatus(const ServiceUpdateStatus& value) { m_serviceUpdateStatusHasBeenSet = true; m_serviceUpdateStatus.push_back(value); return *this; }
259 
260     /**
261      * <p>The status of the service update</p>
262      */
AddServiceUpdateStatus(ServiceUpdateStatus && value)263     inline DescribeUpdateActionsRequest& AddServiceUpdateStatus(ServiceUpdateStatus&& value) { m_serviceUpdateStatusHasBeenSet = true; m_serviceUpdateStatus.push_back(std::move(value)); return *this; }
264 
265 
266     /**
267      * <p>The range of time specified to search for service updates that are in
268      * available status</p>
269      */
GetServiceUpdateTimeRange()270     inline const TimeRangeFilter& GetServiceUpdateTimeRange() const{ return m_serviceUpdateTimeRange; }
271 
272     /**
273      * <p>The range of time specified to search for service updates that are in
274      * available status</p>
275      */
ServiceUpdateTimeRangeHasBeenSet()276     inline bool ServiceUpdateTimeRangeHasBeenSet() const { return m_serviceUpdateTimeRangeHasBeenSet; }
277 
278     /**
279      * <p>The range of time specified to search for service updates that are in
280      * available status</p>
281      */
SetServiceUpdateTimeRange(const TimeRangeFilter & value)282     inline void SetServiceUpdateTimeRange(const TimeRangeFilter& value) { m_serviceUpdateTimeRangeHasBeenSet = true; m_serviceUpdateTimeRange = value; }
283 
284     /**
285      * <p>The range of time specified to search for service updates that are in
286      * available status</p>
287      */
SetServiceUpdateTimeRange(TimeRangeFilter && value)288     inline void SetServiceUpdateTimeRange(TimeRangeFilter&& value) { m_serviceUpdateTimeRangeHasBeenSet = true; m_serviceUpdateTimeRange = std::move(value); }
289 
290     /**
291      * <p>The range of time specified to search for service updates that are in
292      * available status</p>
293      */
WithServiceUpdateTimeRange(const TimeRangeFilter & value)294     inline DescribeUpdateActionsRequest& WithServiceUpdateTimeRange(const TimeRangeFilter& value) { SetServiceUpdateTimeRange(value); return *this;}
295 
296     /**
297      * <p>The range of time specified to search for service updates that are in
298      * available status</p>
299      */
WithServiceUpdateTimeRange(TimeRangeFilter && value)300     inline DescribeUpdateActionsRequest& WithServiceUpdateTimeRange(TimeRangeFilter&& value) { SetServiceUpdateTimeRange(std::move(value)); return *this;}
301 
302 
303     /**
304      * <p>The status of the update action.</p>
305      */
GetUpdateActionStatus()306     inline const Aws::Vector<UpdateActionStatus>& GetUpdateActionStatus() const{ return m_updateActionStatus; }
307 
308     /**
309      * <p>The status of the update action.</p>
310      */
UpdateActionStatusHasBeenSet()311     inline bool UpdateActionStatusHasBeenSet() const { return m_updateActionStatusHasBeenSet; }
312 
313     /**
314      * <p>The status of the update action.</p>
315      */
SetUpdateActionStatus(const Aws::Vector<UpdateActionStatus> & value)316     inline void SetUpdateActionStatus(const Aws::Vector<UpdateActionStatus>& value) { m_updateActionStatusHasBeenSet = true; m_updateActionStatus = value; }
317 
318     /**
319      * <p>The status of the update action.</p>
320      */
SetUpdateActionStatus(Aws::Vector<UpdateActionStatus> && value)321     inline void SetUpdateActionStatus(Aws::Vector<UpdateActionStatus>&& value) { m_updateActionStatusHasBeenSet = true; m_updateActionStatus = std::move(value); }
322 
323     /**
324      * <p>The status of the update action.</p>
325      */
WithUpdateActionStatus(const Aws::Vector<UpdateActionStatus> & value)326     inline DescribeUpdateActionsRequest& WithUpdateActionStatus(const Aws::Vector<UpdateActionStatus>& value) { SetUpdateActionStatus(value); return *this;}
327 
328     /**
329      * <p>The status of the update action.</p>
330      */
WithUpdateActionStatus(Aws::Vector<UpdateActionStatus> && value)331     inline DescribeUpdateActionsRequest& WithUpdateActionStatus(Aws::Vector<UpdateActionStatus>&& value) { SetUpdateActionStatus(std::move(value)); return *this;}
332 
333     /**
334      * <p>The status of the update action.</p>
335      */
AddUpdateActionStatus(const UpdateActionStatus & value)336     inline DescribeUpdateActionsRequest& AddUpdateActionStatus(const UpdateActionStatus& value) { m_updateActionStatusHasBeenSet = true; m_updateActionStatus.push_back(value); return *this; }
337 
338     /**
339      * <p>The status of the update action.</p>
340      */
AddUpdateActionStatus(UpdateActionStatus && value)341     inline DescribeUpdateActionsRequest& AddUpdateActionStatus(UpdateActionStatus&& value) { m_updateActionStatusHasBeenSet = true; m_updateActionStatus.push_back(std::move(value)); return *this; }
342 
343 
344     /**
345      * <p>Dictates whether to include node level update status in the response </p>
346      */
GetShowNodeLevelUpdateStatus()347     inline bool GetShowNodeLevelUpdateStatus() const{ return m_showNodeLevelUpdateStatus; }
348 
349     /**
350      * <p>Dictates whether to include node level update status in the response </p>
351      */
ShowNodeLevelUpdateStatusHasBeenSet()352     inline bool ShowNodeLevelUpdateStatusHasBeenSet() const { return m_showNodeLevelUpdateStatusHasBeenSet; }
353 
354     /**
355      * <p>Dictates whether to include node level update status in the response </p>
356      */
SetShowNodeLevelUpdateStatus(bool value)357     inline void SetShowNodeLevelUpdateStatus(bool value) { m_showNodeLevelUpdateStatusHasBeenSet = true; m_showNodeLevelUpdateStatus = value; }
358 
359     /**
360      * <p>Dictates whether to include node level update status in the response </p>
361      */
WithShowNodeLevelUpdateStatus(bool value)362     inline DescribeUpdateActionsRequest& WithShowNodeLevelUpdateStatus(bool value) { SetShowNodeLevelUpdateStatus(value); return *this;}
363 
364 
365     /**
366      * <p>The maximum number of records to include in the response</p>
367      */
GetMaxRecords()368     inline int GetMaxRecords() const{ return m_maxRecords; }
369 
370     /**
371      * <p>The maximum number of records to include in the response</p>
372      */
MaxRecordsHasBeenSet()373     inline bool MaxRecordsHasBeenSet() const { return m_maxRecordsHasBeenSet; }
374 
375     /**
376      * <p>The maximum number of records to include in the response</p>
377      */
SetMaxRecords(int value)378     inline void SetMaxRecords(int value) { m_maxRecordsHasBeenSet = true; m_maxRecords = value; }
379 
380     /**
381      * <p>The maximum number of records to include in the response</p>
382      */
WithMaxRecords(int value)383     inline DescribeUpdateActionsRequest& WithMaxRecords(int value) { SetMaxRecords(value); return *this;}
384 
385 
386     /**
387      * <p>An optional marker returned from a prior request. Use this marker for
388      * pagination of results from this operation. If this parameter is specified, the
389      * response includes only records beyond the marker, up to the value specified by
390      * <code>MaxRecords</code>.</p>
391      */
GetMarker()392     inline const Aws::String& GetMarker() const{ return m_marker; }
393 
394     /**
395      * <p>An optional marker returned from a prior request. Use this marker for
396      * pagination of results from this operation. If this parameter is specified, the
397      * response includes only records beyond the marker, up to the value specified by
398      * <code>MaxRecords</code>.</p>
399      */
MarkerHasBeenSet()400     inline bool MarkerHasBeenSet() const { return m_markerHasBeenSet; }
401 
402     /**
403      * <p>An optional marker returned from a prior request. Use this marker for
404      * pagination of results from this operation. If this parameter is specified, the
405      * response includes only records beyond the marker, up to the value specified by
406      * <code>MaxRecords</code>.</p>
407      */
SetMarker(const Aws::String & value)408     inline void SetMarker(const Aws::String& value) { m_markerHasBeenSet = true; m_marker = value; }
409 
410     /**
411      * <p>An optional marker returned from a prior request. Use this marker for
412      * pagination of results from this operation. If this parameter is specified, the
413      * response includes only records beyond the marker, up to the value specified by
414      * <code>MaxRecords</code>.</p>
415      */
SetMarker(Aws::String && value)416     inline void SetMarker(Aws::String&& value) { m_markerHasBeenSet = true; m_marker = std::move(value); }
417 
418     /**
419      * <p>An optional marker returned from a prior request. Use this marker for
420      * pagination of results from this operation. If this parameter is specified, the
421      * response includes only records beyond the marker, up to the value specified by
422      * <code>MaxRecords</code>.</p>
423      */
SetMarker(const char * value)424     inline void SetMarker(const char* value) { m_markerHasBeenSet = true; m_marker.assign(value); }
425 
426     /**
427      * <p>An optional marker returned from a prior request. Use this marker for
428      * pagination of results from this operation. If this parameter is specified, the
429      * response includes only records beyond the marker, up to the value specified by
430      * <code>MaxRecords</code>.</p>
431      */
WithMarker(const Aws::String & value)432     inline DescribeUpdateActionsRequest& WithMarker(const Aws::String& value) { SetMarker(value); return *this;}
433 
434     /**
435      * <p>An optional marker returned from a prior request. Use this marker for
436      * pagination of results from this operation. If this parameter is specified, the
437      * response includes only records beyond the marker, up to the value specified by
438      * <code>MaxRecords</code>.</p>
439      */
WithMarker(Aws::String && value)440     inline DescribeUpdateActionsRequest& WithMarker(Aws::String&& value) { SetMarker(std::move(value)); return *this;}
441 
442     /**
443      * <p>An optional marker returned from a prior request. Use this marker for
444      * pagination of results from this operation. If this parameter is specified, the
445      * response includes only records beyond the marker, up to the value specified by
446      * <code>MaxRecords</code>.</p>
447      */
WithMarker(const char * value)448     inline DescribeUpdateActionsRequest& WithMarker(const char* value) { SetMarker(value); return *this;}
449 
450   private:
451 
452     Aws::String m_serviceUpdateName;
453     bool m_serviceUpdateNameHasBeenSet;
454 
455     Aws::Vector<Aws::String> m_replicationGroupIds;
456     bool m_replicationGroupIdsHasBeenSet;
457 
458     Aws::Vector<Aws::String> m_cacheClusterIds;
459     bool m_cacheClusterIdsHasBeenSet;
460 
461     Aws::String m_engine;
462     bool m_engineHasBeenSet;
463 
464     Aws::Vector<ServiceUpdateStatus> m_serviceUpdateStatus;
465     bool m_serviceUpdateStatusHasBeenSet;
466 
467     TimeRangeFilter m_serviceUpdateTimeRange;
468     bool m_serviceUpdateTimeRangeHasBeenSet;
469 
470     Aws::Vector<UpdateActionStatus> m_updateActionStatus;
471     bool m_updateActionStatusHasBeenSet;
472 
473     bool m_showNodeLevelUpdateStatus;
474     bool m_showNodeLevelUpdateStatusHasBeenSet;
475 
476     int m_maxRecords;
477     bool m_maxRecordsHasBeenSet;
478 
479     Aws::String m_marker;
480     bool m_markerHasBeenSet;
481   };
482 
483 } // namespace Model
484 } // namespace ElastiCache
485 } // namespace Aws
486