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/redshift/RedshiftRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Redshift
16 {
17 namespace Model
18 {
19 
20   /**
21    * <p/><p><h3>See Also:</h3>   <a
22    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroupsMessage">AWS
23    * API Reference</a></p>
24    */
25   class AWS_REDSHIFT_API DescribeClusterParameterGroupsRequest : public RedshiftRequest
26   {
27   public:
28     DescribeClusterParameterGroupsRequest();
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 "DescribeClusterParameterGroups"; }
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 name of a specific parameter group for which to return details. By
45      * default, details about all parameter groups and the default parameter group are
46      * returned.</p>
47      */
GetParameterGroupName()48     inline const Aws::String& GetParameterGroupName() const{ return m_parameterGroupName; }
49 
50     /**
51      * <p>The name of a specific parameter group for which to return details. By
52      * default, details about all parameter groups and the default parameter group are
53      * returned.</p>
54      */
ParameterGroupNameHasBeenSet()55     inline bool ParameterGroupNameHasBeenSet() const { return m_parameterGroupNameHasBeenSet; }
56 
57     /**
58      * <p>The name of a specific parameter group for which to return details. By
59      * default, details about all parameter groups and the default parameter group are
60      * returned.</p>
61      */
SetParameterGroupName(const Aws::String & value)62     inline void SetParameterGroupName(const Aws::String& value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName = value; }
63 
64     /**
65      * <p>The name of a specific parameter group for which to return details. By
66      * default, details about all parameter groups and the default parameter group are
67      * returned.</p>
68      */
SetParameterGroupName(Aws::String && value)69     inline void SetParameterGroupName(Aws::String&& value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName = std::move(value); }
70 
71     /**
72      * <p>The name of a specific parameter group for which to return details. By
73      * default, details about all parameter groups and the default parameter group are
74      * returned.</p>
75      */
SetParameterGroupName(const char * value)76     inline void SetParameterGroupName(const char* value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName.assign(value); }
77 
78     /**
79      * <p>The name of a specific parameter group for which to return details. By
80      * default, details about all parameter groups and the default parameter group are
81      * returned.</p>
82      */
WithParameterGroupName(const Aws::String & value)83     inline DescribeClusterParameterGroupsRequest& WithParameterGroupName(const Aws::String& value) { SetParameterGroupName(value); return *this;}
84 
85     /**
86      * <p>The name of a specific parameter group for which to return details. By
87      * default, details about all parameter groups and the default parameter group are
88      * returned.</p>
89      */
WithParameterGroupName(Aws::String && value)90     inline DescribeClusterParameterGroupsRequest& WithParameterGroupName(Aws::String&& value) { SetParameterGroupName(std::move(value)); return *this;}
91 
92     /**
93      * <p>The name of a specific parameter group for which to return details. By
94      * default, details about all parameter groups and the default parameter group are
95      * returned.</p>
96      */
WithParameterGroupName(const char * value)97     inline DescribeClusterParameterGroupsRequest& WithParameterGroupName(const char* value) { SetParameterGroupName(value); return *this;}
98 
99 
100     /**
101      * <p>The maximum number of response records to return in each call. If the number
102      * of remaining response records exceeds the specified <code>MaxRecords</code>
103      * value, a value is returned in a <code>marker</code> field of the response. You
104      * can retrieve the next set of records by retrying the command with the returned
105      * marker value. </p> <p>Default: <code>100</code> </p> <p>Constraints: minimum 20,
106      * maximum 100.</p>
107      */
GetMaxRecords()108     inline int GetMaxRecords() const{ return m_maxRecords; }
109 
110     /**
111      * <p>The maximum number of response records to return in each call. If the number
112      * of remaining response records exceeds the specified <code>MaxRecords</code>
113      * value, a value is returned in a <code>marker</code> field of the response. You
114      * can retrieve the next set of records by retrying the command with the returned
115      * marker value. </p> <p>Default: <code>100</code> </p> <p>Constraints: minimum 20,
116      * maximum 100.</p>
117      */
MaxRecordsHasBeenSet()118     inline bool MaxRecordsHasBeenSet() const { return m_maxRecordsHasBeenSet; }
119 
120     /**
121      * <p>The maximum number of response records to return in each call. If the number
122      * of remaining response records exceeds the specified <code>MaxRecords</code>
123      * value, a value is returned in a <code>marker</code> field of the response. You
124      * can retrieve the next set of records by retrying the command with the returned
125      * marker value. </p> <p>Default: <code>100</code> </p> <p>Constraints: minimum 20,
126      * maximum 100.</p>
127      */
SetMaxRecords(int value)128     inline void SetMaxRecords(int value) { m_maxRecordsHasBeenSet = true; m_maxRecords = value; }
129 
130     /**
131      * <p>The maximum number of response records to return in each call. If the number
132      * of remaining response records exceeds the specified <code>MaxRecords</code>
133      * value, a value is returned in a <code>marker</code> field of the response. You
134      * can retrieve the next set of records by retrying the command with the returned
135      * marker value. </p> <p>Default: <code>100</code> </p> <p>Constraints: minimum 20,
136      * maximum 100.</p>
137      */
WithMaxRecords(int value)138     inline DescribeClusterParameterGroupsRequest& WithMaxRecords(int value) { SetMaxRecords(value); return *this;}
139 
140 
141     /**
142      * <p>An optional parameter that specifies the starting point to return a set of
143      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
144      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
145      * Services returns a value in the <code>Marker</code> field of the response. You
146      * can retrieve the next set of response records by providing the returned marker
147      * value in the <code>Marker</code> parameter and retrying the request. </p>
148      */
GetMarker()149     inline const Aws::String& GetMarker() const{ return m_marker; }
150 
151     /**
152      * <p>An optional parameter that specifies the starting point to return a set of
153      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
154      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
155      * Services returns a value in the <code>Marker</code> field of the response. You
156      * can retrieve the next set of response records by providing the returned marker
157      * value in the <code>Marker</code> parameter and retrying the request. </p>
158      */
MarkerHasBeenSet()159     inline bool MarkerHasBeenSet() const { return m_markerHasBeenSet; }
160 
161     /**
162      * <p>An optional parameter that specifies the starting point to return a set of
163      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
164      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
165      * Services returns a value in the <code>Marker</code> field of the response. You
166      * can retrieve the next set of response records by providing the returned marker
167      * value in the <code>Marker</code> parameter and retrying the request. </p>
168      */
SetMarker(const Aws::String & value)169     inline void SetMarker(const Aws::String& value) { m_markerHasBeenSet = true; m_marker = value; }
170 
171     /**
172      * <p>An optional parameter that specifies the starting point to return a set of
173      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
174      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
175      * Services returns a value in the <code>Marker</code> field of the response. You
176      * can retrieve the next set of response records by providing the returned marker
177      * value in the <code>Marker</code> parameter and retrying the request. </p>
178      */
SetMarker(Aws::String && value)179     inline void SetMarker(Aws::String&& value) { m_markerHasBeenSet = true; m_marker = std::move(value); }
180 
181     /**
182      * <p>An optional parameter that specifies the starting point to return a set of
183      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
184      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
185      * Services returns a value in the <code>Marker</code> field of the response. You
186      * can retrieve the next set of response records by providing the returned marker
187      * value in the <code>Marker</code> parameter and retrying the request. </p>
188      */
SetMarker(const char * value)189     inline void SetMarker(const char* value) { m_markerHasBeenSet = true; m_marker.assign(value); }
190 
191     /**
192      * <p>An optional parameter that specifies the starting point to return a set of
193      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
194      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
195      * Services returns a value in the <code>Marker</code> field of the response. You
196      * can retrieve the next set of response records by providing the returned marker
197      * value in the <code>Marker</code> parameter and retrying the request. </p>
198      */
WithMarker(const Aws::String & value)199     inline DescribeClusterParameterGroupsRequest& WithMarker(const Aws::String& value) { SetMarker(value); return *this;}
200 
201     /**
202      * <p>An optional parameter that specifies the starting point to return a set of
203      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
204      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
205      * Services returns a value in the <code>Marker</code> field of the response. You
206      * can retrieve the next set of response records by providing the returned marker
207      * value in the <code>Marker</code> parameter and retrying the request. </p>
208      */
WithMarker(Aws::String && value)209     inline DescribeClusterParameterGroupsRequest& WithMarker(Aws::String&& value) { SetMarker(std::move(value)); return *this;}
210 
211     /**
212      * <p>An optional parameter that specifies the starting point to return a set of
213      * response records. When the results of a <a>DescribeClusterParameterGroups</a>
214      * request exceed the value specified in <code>MaxRecords</code>, Amazon Web
215      * Services returns a value in the <code>Marker</code> field of the response. You
216      * can retrieve the next set of response records by providing the returned marker
217      * value in the <code>Marker</code> parameter and retrying the request. </p>
218      */
WithMarker(const char * value)219     inline DescribeClusterParameterGroupsRequest& WithMarker(const char* value) { SetMarker(value); return *this;}
220 
221 
222     /**
223      * <p>A tag key or keys for which you want to return all matching cluster parameter
224      * groups that are associated with the specified key or keys. For example, suppose
225      * that you have parameter groups that are tagged with keys called
226      * <code>owner</code> and <code>environment</code>. If you specify both of these
227      * tag keys in the request, Amazon Redshift returns a response with the parameter
228      * groups that have either or both of these tag keys associated with them.</p>
229      */
GetTagKeys()230     inline const Aws::Vector<Aws::String>& GetTagKeys() const{ return m_tagKeys; }
231 
232     /**
233      * <p>A tag key or keys for which you want to return all matching cluster parameter
234      * groups that are associated with the specified key or keys. For example, suppose
235      * that you have parameter groups that are tagged with keys called
236      * <code>owner</code> and <code>environment</code>. If you specify both of these
237      * tag keys in the request, Amazon Redshift returns a response with the parameter
238      * groups that have either or both of these tag keys associated with them.</p>
239      */
TagKeysHasBeenSet()240     inline bool TagKeysHasBeenSet() const { return m_tagKeysHasBeenSet; }
241 
242     /**
243      * <p>A tag key or keys for which you want to return all matching cluster parameter
244      * groups that are associated with the specified key or keys. For example, suppose
245      * that you have parameter groups that are tagged with keys called
246      * <code>owner</code> and <code>environment</code>. If you specify both of these
247      * tag keys in the request, Amazon Redshift returns a response with the parameter
248      * groups that have either or both of these tag keys associated with them.</p>
249      */
SetTagKeys(const Aws::Vector<Aws::String> & value)250     inline void SetTagKeys(const Aws::Vector<Aws::String>& value) { m_tagKeysHasBeenSet = true; m_tagKeys = value; }
251 
252     /**
253      * <p>A tag key or keys for which you want to return all matching cluster parameter
254      * groups that are associated with the specified key or keys. For example, suppose
255      * that you have parameter groups that are tagged with keys called
256      * <code>owner</code> and <code>environment</code>. If you specify both of these
257      * tag keys in the request, Amazon Redshift returns a response with the parameter
258      * groups that have either or both of these tag keys associated with them.</p>
259      */
SetTagKeys(Aws::Vector<Aws::String> && value)260     inline void SetTagKeys(Aws::Vector<Aws::String>&& value) { m_tagKeysHasBeenSet = true; m_tagKeys = std::move(value); }
261 
262     /**
263      * <p>A tag key or keys for which you want to return all matching cluster parameter
264      * groups that are associated with the specified key or keys. For example, suppose
265      * that you have parameter groups that are tagged with keys called
266      * <code>owner</code> and <code>environment</code>. If you specify both of these
267      * tag keys in the request, Amazon Redshift returns a response with the parameter
268      * groups that have either or both of these tag keys associated with them.</p>
269      */
WithTagKeys(const Aws::Vector<Aws::String> & value)270     inline DescribeClusterParameterGroupsRequest& WithTagKeys(const Aws::Vector<Aws::String>& value) { SetTagKeys(value); return *this;}
271 
272     /**
273      * <p>A tag key or keys for which you want to return all matching cluster parameter
274      * groups that are associated with the specified key or keys. For example, suppose
275      * that you have parameter groups that are tagged with keys called
276      * <code>owner</code> and <code>environment</code>. If you specify both of these
277      * tag keys in the request, Amazon Redshift returns a response with the parameter
278      * groups that have either or both of these tag keys associated with them.</p>
279      */
WithTagKeys(Aws::Vector<Aws::String> && value)280     inline DescribeClusterParameterGroupsRequest& WithTagKeys(Aws::Vector<Aws::String>&& value) { SetTagKeys(std::move(value)); return *this;}
281 
282     /**
283      * <p>A tag key or keys for which you want to return all matching cluster parameter
284      * groups that are associated with the specified key or keys. For example, suppose
285      * that you have parameter groups that are tagged with keys called
286      * <code>owner</code> and <code>environment</code>. If you specify both of these
287      * tag keys in the request, Amazon Redshift returns a response with the parameter
288      * groups that have either or both of these tag keys associated with them.</p>
289      */
AddTagKeys(const Aws::String & value)290     inline DescribeClusterParameterGroupsRequest& AddTagKeys(const Aws::String& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
291 
292     /**
293      * <p>A tag key or keys for which you want to return all matching cluster parameter
294      * groups that are associated with the specified key or keys. For example, suppose
295      * that you have parameter groups that are tagged with keys called
296      * <code>owner</code> and <code>environment</code>. If you specify both of these
297      * tag keys in the request, Amazon Redshift returns a response with the parameter
298      * groups that have either or both of these tag keys associated with them.</p>
299      */
AddTagKeys(Aws::String && value)300     inline DescribeClusterParameterGroupsRequest& AddTagKeys(Aws::String&& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(std::move(value)); return *this; }
301 
302     /**
303      * <p>A tag key or keys for which you want to return all matching cluster parameter
304      * groups that are associated with the specified key or keys. For example, suppose
305      * that you have parameter groups that are tagged with keys called
306      * <code>owner</code> and <code>environment</code>. If you specify both of these
307      * tag keys in the request, Amazon Redshift returns a response with the parameter
308      * groups that have either or both of these tag keys associated with them.</p>
309      */
AddTagKeys(const char * value)310     inline DescribeClusterParameterGroupsRequest& AddTagKeys(const char* value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
311 
312 
313     /**
314      * <p>A tag value or values for which you want to return all matching cluster
315      * parameter groups that are associated with the specified tag value or values. For
316      * example, suppose that you have parameter groups that are tagged with values
317      * called <code>admin</code> and <code>test</code>. If you specify both of these
318      * tag values in the request, Amazon Redshift returns a response with the parameter
319      * groups that have either or both of these tag values associated with them.</p>
320      */
GetTagValues()321     inline const Aws::Vector<Aws::String>& GetTagValues() const{ return m_tagValues; }
322 
323     /**
324      * <p>A tag value or values for which you want to return all matching cluster
325      * parameter groups that are associated with the specified tag value or values. For
326      * example, suppose that you have parameter groups that are tagged with values
327      * called <code>admin</code> and <code>test</code>. If you specify both of these
328      * tag values in the request, Amazon Redshift returns a response with the parameter
329      * groups that have either or both of these tag values associated with them.</p>
330      */
TagValuesHasBeenSet()331     inline bool TagValuesHasBeenSet() const { return m_tagValuesHasBeenSet; }
332 
333     /**
334      * <p>A tag value or values for which you want to return all matching cluster
335      * parameter groups that are associated with the specified tag value or values. For
336      * example, suppose that you have parameter groups that are tagged with values
337      * called <code>admin</code> and <code>test</code>. If you specify both of these
338      * tag values in the request, Amazon Redshift returns a response with the parameter
339      * groups that have either or both of these tag values associated with them.</p>
340      */
SetTagValues(const Aws::Vector<Aws::String> & value)341     inline void SetTagValues(const Aws::Vector<Aws::String>& value) { m_tagValuesHasBeenSet = true; m_tagValues = value; }
342 
343     /**
344      * <p>A tag value or values for which you want to return all matching cluster
345      * parameter groups that are associated with the specified tag value or values. For
346      * example, suppose that you have parameter groups that are tagged with values
347      * called <code>admin</code> and <code>test</code>. If you specify both of these
348      * tag values in the request, Amazon Redshift returns a response with the parameter
349      * groups that have either or both of these tag values associated with them.</p>
350      */
SetTagValues(Aws::Vector<Aws::String> && value)351     inline void SetTagValues(Aws::Vector<Aws::String>&& value) { m_tagValuesHasBeenSet = true; m_tagValues = std::move(value); }
352 
353     /**
354      * <p>A tag value or values for which you want to return all matching cluster
355      * parameter groups that are associated with the specified tag value or values. For
356      * example, suppose that you have parameter groups that are tagged with values
357      * called <code>admin</code> and <code>test</code>. If you specify both of these
358      * tag values in the request, Amazon Redshift returns a response with the parameter
359      * groups that have either or both of these tag values associated with them.</p>
360      */
WithTagValues(const Aws::Vector<Aws::String> & value)361     inline DescribeClusterParameterGroupsRequest& WithTagValues(const Aws::Vector<Aws::String>& value) { SetTagValues(value); return *this;}
362 
363     /**
364      * <p>A tag value or values for which you want to return all matching cluster
365      * parameter groups that are associated with the specified tag value or values. For
366      * example, suppose that you have parameter groups that are tagged with values
367      * called <code>admin</code> and <code>test</code>. If you specify both of these
368      * tag values in the request, Amazon Redshift returns a response with the parameter
369      * groups that have either or both of these tag values associated with them.</p>
370      */
WithTagValues(Aws::Vector<Aws::String> && value)371     inline DescribeClusterParameterGroupsRequest& WithTagValues(Aws::Vector<Aws::String>&& value) { SetTagValues(std::move(value)); return *this;}
372 
373     /**
374      * <p>A tag value or values for which you want to return all matching cluster
375      * parameter groups that are associated with the specified tag value or values. For
376      * example, suppose that you have parameter groups that are tagged with values
377      * called <code>admin</code> and <code>test</code>. If you specify both of these
378      * tag values in the request, Amazon Redshift returns a response with the parameter
379      * groups that have either or both of these tag values associated with them.</p>
380      */
AddTagValues(const Aws::String & value)381     inline DescribeClusterParameterGroupsRequest& AddTagValues(const Aws::String& value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(value); return *this; }
382 
383     /**
384      * <p>A tag value or values for which you want to return all matching cluster
385      * parameter groups that are associated with the specified tag value or values. For
386      * example, suppose that you have parameter groups that are tagged with values
387      * called <code>admin</code> and <code>test</code>. If you specify both of these
388      * tag values in the request, Amazon Redshift returns a response with the parameter
389      * groups that have either or both of these tag values associated with them.</p>
390      */
AddTagValues(Aws::String && value)391     inline DescribeClusterParameterGroupsRequest& AddTagValues(Aws::String&& value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(std::move(value)); return *this; }
392 
393     /**
394      * <p>A tag value or values for which you want to return all matching cluster
395      * parameter groups that are associated with the specified tag value or values. For
396      * example, suppose that you have parameter groups that are tagged with values
397      * called <code>admin</code> and <code>test</code>. If you specify both of these
398      * tag values in the request, Amazon Redshift returns a response with the parameter
399      * groups that have either or both of these tag values associated with them.</p>
400      */
AddTagValues(const char * value)401     inline DescribeClusterParameterGroupsRequest& AddTagValues(const char* value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(value); return *this; }
402 
403   private:
404 
405     Aws::String m_parameterGroupName;
406     bool m_parameterGroupNameHasBeenSet;
407 
408     int m_maxRecords;
409     bool m_maxRecordsHasBeenSet;
410 
411     Aws::String m_marker;
412     bool m_markerHasBeenSet;
413 
414     Aws::Vector<Aws::String> m_tagKeys;
415     bool m_tagKeysHasBeenSet;
416 
417     Aws::Vector<Aws::String> m_tagValues;
418     bool m_tagValuesHasBeenSet;
419   };
420 
421 } // namespace Model
422 } // namespace Redshift
423 } // namespace Aws
424