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/DescribeHsmClientCertificatesMessage">AWS
23    * API Reference</a></p>
24    */
25   class AWS_REDSHIFT_API DescribeHsmClientCertificatesRequest : public RedshiftRequest
26   {
27   public:
28     DescribeHsmClientCertificatesRequest();
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 "DescribeHsmClientCertificates"; }
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 identifier of a specific HSM client certificate for which you want
45      * information. If no identifier is specified, information is returned for all HSM
46      * client certificates owned by your Amazon Web Services account.</p>
47      */
GetHsmClientCertificateIdentifier()48     inline const Aws::String& GetHsmClientCertificateIdentifier() const{ return m_hsmClientCertificateIdentifier; }
49 
50     /**
51      * <p>The identifier of a specific HSM client certificate for which you want
52      * information. If no identifier is specified, information is returned for all HSM
53      * client certificates owned by your Amazon Web Services account.</p>
54      */
HsmClientCertificateIdentifierHasBeenSet()55     inline bool HsmClientCertificateIdentifierHasBeenSet() const { return m_hsmClientCertificateIdentifierHasBeenSet; }
56 
57     /**
58      * <p>The identifier of a specific HSM client certificate for which you want
59      * information. If no identifier is specified, information is returned for all HSM
60      * client certificates owned by your Amazon Web Services account.</p>
61      */
SetHsmClientCertificateIdentifier(const Aws::String & value)62     inline void SetHsmClientCertificateIdentifier(const Aws::String& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = value; }
63 
64     /**
65      * <p>The identifier of a specific HSM client certificate for which you want
66      * information. If no identifier is specified, information is returned for all HSM
67      * client certificates owned by your Amazon Web Services account.</p>
68      */
SetHsmClientCertificateIdentifier(Aws::String && value)69     inline void SetHsmClientCertificateIdentifier(Aws::String&& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = std::move(value); }
70 
71     /**
72      * <p>The identifier of a specific HSM client certificate for which you want
73      * information. If no identifier is specified, information is returned for all HSM
74      * client certificates owned by your Amazon Web Services account.</p>
75      */
SetHsmClientCertificateIdentifier(const char * value)76     inline void SetHsmClientCertificateIdentifier(const char* value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier.assign(value); }
77 
78     /**
79      * <p>The identifier of a specific HSM client certificate for which you want
80      * information. If no identifier is specified, information is returned for all HSM
81      * client certificates owned by your Amazon Web Services account.</p>
82      */
WithHsmClientCertificateIdentifier(const Aws::String & value)83     inline DescribeHsmClientCertificatesRequest& WithHsmClientCertificateIdentifier(const Aws::String& value) { SetHsmClientCertificateIdentifier(value); return *this;}
84 
85     /**
86      * <p>The identifier of a specific HSM client certificate for which you want
87      * information. If no identifier is specified, information is returned for all HSM
88      * client certificates owned by your Amazon Web Services account.</p>
89      */
WithHsmClientCertificateIdentifier(Aws::String && value)90     inline DescribeHsmClientCertificatesRequest& WithHsmClientCertificateIdentifier(Aws::String&& value) { SetHsmClientCertificateIdentifier(std::move(value)); return *this;}
91 
92     /**
93      * <p>The identifier of a specific HSM client certificate for which you want
94      * information. If no identifier is specified, information is returned for all HSM
95      * client certificates owned by your Amazon Web Services account.</p>
96      */
WithHsmClientCertificateIdentifier(const char * value)97     inline DescribeHsmClientCertificatesRequest& WithHsmClientCertificateIdentifier(const char* value) { SetHsmClientCertificateIdentifier(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 DescribeHsmClientCertificatesRequest& 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>DescribeHsmClientCertificates</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>DescribeHsmClientCertificates</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>DescribeHsmClientCertificates</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>DescribeHsmClientCertificates</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>DescribeHsmClientCertificates</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>DescribeHsmClientCertificates</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 DescribeHsmClientCertificatesRequest& 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>DescribeHsmClientCertificates</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 DescribeHsmClientCertificatesRequest& 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>DescribeHsmClientCertificates</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 DescribeHsmClientCertificatesRequest& 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 HSM client
224      * certificates that are associated with the specified key or keys. For example,
225      * suppose that you have HSM client certificates 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 HSM client
228      * certificates that have either or both of these tag keys associated with
229      * them.</p>
230      */
GetTagKeys()231     inline const Aws::Vector<Aws::String>& GetTagKeys() const{ return m_tagKeys; }
232 
233     /**
234      * <p>A tag key or keys for which you want to return all matching HSM client
235      * certificates that are associated with the specified key or keys. For example,
236      * suppose that you have HSM client certificates that are tagged with keys called
237      * <code>owner</code> and <code>environment</code>. If you specify both of these
238      * tag keys in the request, Amazon Redshift returns a response with the HSM client
239      * certificates that have either or both of these tag keys associated with
240      * them.</p>
241      */
TagKeysHasBeenSet()242     inline bool TagKeysHasBeenSet() const { return m_tagKeysHasBeenSet; }
243 
244     /**
245      * <p>A tag key or keys for which you want to return all matching HSM client
246      * certificates that are associated with the specified key or keys. For example,
247      * suppose that you have HSM client certificates that are tagged with keys called
248      * <code>owner</code> and <code>environment</code>. If you specify both of these
249      * tag keys in the request, Amazon Redshift returns a response with the HSM client
250      * certificates that have either or both of these tag keys associated with
251      * them.</p>
252      */
SetTagKeys(const Aws::Vector<Aws::String> & value)253     inline void SetTagKeys(const Aws::Vector<Aws::String>& value) { m_tagKeysHasBeenSet = true; m_tagKeys = value; }
254 
255     /**
256      * <p>A tag key or keys for which you want to return all matching HSM client
257      * certificates that are associated with the specified key or keys. For example,
258      * suppose that you have HSM client certificates that are tagged with keys called
259      * <code>owner</code> and <code>environment</code>. If you specify both of these
260      * tag keys in the request, Amazon Redshift returns a response with the HSM client
261      * certificates that have either or both of these tag keys associated with
262      * them.</p>
263      */
SetTagKeys(Aws::Vector<Aws::String> && value)264     inline void SetTagKeys(Aws::Vector<Aws::String>&& value) { m_tagKeysHasBeenSet = true; m_tagKeys = std::move(value); }
265 
266     /**
267      * <p>A tag key or keys for which you want to return all matching HSM client
268      * certificates that are associated with the specified key or keys. For example,
269      * suppose that you have HSM client certificates that are tagged with keys called
270      * <code>owner</code> and <code>environment</code>. If you specify both of these
271      * tag keys in the request, Amazon Redshift returns a response with the HSM client
272      * certificates that have either or both of these tag keys associated with
273      * them.</p>
274      */
WithTagKeys(const Aws::Vector<Aws::String> & value)275     inline DescribeHsmClientCertificatesRequest& WithTagKeys(const Aws::Vector<Aws::String>& value) { SetTagKeys(value); return *this;}
276 
277     /**
278      * <p>A tag key or keys for which you want to return all matching HSM client
279      * certificates that are associated with the specified key or keys. For example,
280      * suppose that you have HSM client certificates that are tagged with keys called
281      * <code>owner</code> and <code>environment</code>. If you specify both of these
282      * tag keys in the request, Amazon Redshift returns a response with the HSM client
283      * certificates that have either or both of these tag keys associated with
284      * them.</p>
285      */
WithTagKeys(Aws::Vector<Aws::String> && value)286     inline DescribeHsmClientCertificatesRequest& WithTagKeys(Aws::Vector<Aws::String>&& value) { SetTagKeys(std::move(value)); return *this;}
287 
288     /**
289      * <p>A tag key or keys for which you want to return all matching HSM client
290      * certificates that are associated with the specified key or keys. For example,
291      * suppose that you have HSM client certificates that are tagged with keys called
292      * <code>owner</code> and <code>environment</code>. If you specify both of these
293      * tag keys in the request, Amazon Redshift returns a response with the HSM client
294      * certificates that have either or both of these tag keys associated with
295      * them.</p>
296      */
AddTagKeys(const Aws::String & value)297     inline DescribeHsmClientCertificatesRequest& AddTagKeys(const Aws::String& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
298 
299     /**
300      * <p>A tag key or keys for which you want to return all matching HSM client
301      * certificates that are associated with the specified key or keys. For example,
302      * suppose that you have HSM client certificates that are tagged with keys called
303      * <code>owner</code> and <code>environment</code>. If you specify both of these
304      * tag keys in the request, Amazon Redshift returns a response with the HSM client
305      * certificates that have either or both of these tag keys associated with
306      * them.</p>
307      */
AddTagKeys(Aws::String && value)308     inline DescribeHsmClientCertificatesRequest& AddTagKeys(Aws::String&& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(std::move(value)); return *this; }
309 
310     /**
311      * <p>A tag key or keys for which you want to return all matching HSM client
312      * certificates that are associated with the specified key or keys. For example,
313      * suppose that you have HSM client certificates that are tagged with keys called
314      * <code>owner</code> and <code>environment</code>. If you specify both of these
315      * tag keys in the request, Amazon Redshift returns a response with the HSM client
316      * certificates that have either or both of these tag keys associated with
317      * them.</p>
318      */
AddTagKeys(const char * value)319     inline DescribeHsmClientCertificatesRequest& AddTagKeys(const char* value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
320 
321 
322     /**
323      * <p>A tag value or values for which you want to return all matching HSM client
324      * certificates that are associated with the specified tag value or values. For
325      * example, suppose that you have HSM client certificates that are tagged with
326      * values called <code>admin</code> and <code>test</code>. If you specify both of
327      * these tag values in the request, Amazon Redshift returns a response with the HSM
328      * client certificates that have either or both of these tag values associated with
329      * them.</p>
330      */
GetTagValues()331     inline const Aws::Vector<Aws::String>& GetTagValues() const{ return m_tagValues; }
332 
333     /**
334      * <p>A tag value or values for which you want to return all matching HSM client
335      * certificates that are associated with the specified tag value or values. For
336      * example, suppose that you have HSM client certificates that are tagged with
337      * values called <code>admin</code> and <code>test</code>. If you specify both of
338      * these tag values in the request, Amazon Redshift returns a response with the HSM
339      * client certificates that have either or both of these tag values associated with
340      * them.</p>
341      */
TagValuesHasBeenSet()342     inline bool TagValuesHasBeenSet() const { return m_tagValuesHasBeenSet; }
343 
344     /**
345      * <p>A tag value or values for which you want to return all matching HSM client
346      * certificates that are associated with the specified tag value or values. For
347      * example, suppose that you have HSM client certificates that are tagged with
348      * values called <code>admin</code> and <code>test</code>. If you specify both of
349      * these tag values in the request, Amazon Redshift returns a response with the HSM
350      * client certificates that have either or both of these tag values associated with
351      * them.</p>
352      */
SetTagValues(const Aws::Vector<Aws::String> & value)353     inline void SetTagValues(const Aws::Vector<Aws::String>& value) { m_tagValuesHasBeenSet = true; m_tagValues = value; }
354 
355     /**
356      * <p>A tag value or values for which you want to return all matching HSM client
357      * certificates that are associated with the specified tag value or values. For
358      * example, suppose that you have HSM client certificates that are tagged with
359      * values called <code>admin</code> and <code>test</code>. If you specify both of
360      * these tag values in the request, Amazon Redshift returns a response with the HSM
361      * client certificates that have either or both of these tag values associated with
362      * them.</p>
363      */
SetTagValues(Aws::Vector<Aws::String> && value)364     inline void SetTagValues(Aws::Vector<Aws::String>&& value) { m_tagValuesHasBeenSet = true; m_tagValues = std::move(value); }
365 
366     /**
367      * <p>A tag value or values for which you want to return all matching HSM client
368      * certificates that are associated with the specified tag value or values. For
369      * example, suppose that you have HSM client certificates that are tagged with
370      * values called <code>admin</code> and <code>test</code>. If you specify both of
371      * these tag values in the request, Amazon Redshift returns a response with the HSM
372      * client certificates that have either or both of these tag values associated with
373      * them.</p>
374      */
WithTagValues(const Aws::Vector<Aws::String> & value)375     inline DescribeHsmClientCertificatesRequest& WithTagValues(const Aws::Vector<Aws::String>& value) { SetTagValues(value); return *this;}
376 
377     /**
378      * <p>A tag value or values for which you want to return all matching HSM client
379      * certificates that are associated with the specified tag value or values. For
380      * example, suppose that you have HSM client certificates that are tagged with
381      * values called <code>admin</code> and <code>test</code>. If you specify both of
382      * these tag values in the request, Amazon Redshift returns a response with the HSM
383      * client certificates that have either or both of these tag values associated with
384      * them.</p>
385      */
WithTagValues(Aws::Vector<Aws::String> && value)386     inline DescribeHsmClientCertificatesRequest& WithTagValues(Aws::Vector<Aws::String>&& value) { SetTagValues(std::move(value)); return *this;}
387 
388     /**
389      * <p>A tag value or values for which you want to return all matching HSM client
390      * certificates that are associated with the specified tag value or values. For
391      * example, suppose that you have HSM client certificates that are tagged with
392      * values called <code>admin</code> and <code>test</code>. If you specify both of
393      * these tag values in the request, Amazon Redshift returns a response with the HSM
394      * client certificates that have either or both of these tag values associated with
395      * them.</p>
396      */
AddTagValues(const Aws::String & value)397     inline DescribeHsmClientCertificatesRequest& AddTagValues(const Aws::String& value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(value); return *this; }
398 
399     /**
400      * <p>A tag value or values for which you want to return all matching HSM client
401      * certificates that are associated with the specified tag value or values. For
402      * example, suppose that you have HSM client certificates that are tagged with
403      * values called <code>admin</code> and <code>test</code>. If you specify both of
404      * these tag values in the request, Amazon Redshift returns a response with the HSM
405      * client certificates that have either or both of these tag values associated with
406      * them.</p>
407      */
AddTagValues(Aws::String && value)408     inline DescribeHsmClientCertificatesRequest& AddTagValues(Aws::String&& value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(std::move(value)); return *this; }
409 
410     /**
411      * <p>A tag value or values for which you want to return all matching HSM client
412      * certificates that are associated with the specified tag value or values. For
413      * example, suppose that you have HSM client certificates that are tagged with
414      * values called <code>admin</code> and <code>test</code>. If you specify both of
415      * these tag values in the request, Amazon Redshift returns a response with the HSM
416      * client certificates that have either or both of these tag values associated with
417      * them.</p>
418      */
AddTagValues(const char * value)419     inline DescribeHsmClientCertificatesRequest& AddTagValues(const char* value) { m_tagValuesHasBeenSet = true; m_tagValues.push_back(value); return *this; }
420 
421   private:
422 
423     Aws::String m_hsmClientCertificateIdentifier;
424     bool m_hsmClientCertificateIdentifierHasBeenSet;
425 
426     int m_maxRecords;
427     bool m_maxRecordsHasBeenSet;
428 
429     Aws::String m_marker;
430     bool m_markerHasBeenSet;
431 
432     Aws::Vector<Aws::String> m_tagKeys;
433     bool m_tagKeysHasBeenSet;
434 
435     Aws::Vector<Aws::String> m_tagValues;
436     bool m_tagValuesHasBeenSet;
437   };
438 
439 } // namespace Model
440 } // namespace Redshift
441 } // namespace Aws
442