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