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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/securityhub/model/AwsApiGatewayEndpointConfiguration.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace SecurityHub
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Contains information about a REST API in version 1 of Amazon API
30    * Gateway.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsApiGatewayRestApiDetails">AWS
32    * API Reference</a></p>
33    */
34   class AWS_SECURITYHUB_API AwsApiGatewayRestApiDetails
35   {
36   public:
37     AwsApiGatewayRestApiDetails();
38     AwsApiGatewayRestApiDetails(Aws::Utils::Json::JsonView jsonValue);
39     AwsApiGatewayRestApiDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The identifier of the REST API.</p>
45      */
GetId()46     inline const Aws::String& GetId() const{ return m_id; }
47 
48     /**
49      * <p>The identifier of the REST API.</p>
50      */
IdHasBeenSet()51     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
52 
53     /**
54      * <p>The identifier of the REST API.</p>
55      */
SetId(const Aws::String & value)56     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
57 
58     /**
59      * <p>The identifier of the REST API.</p>
60      */
SetId(Aws::String && value)61     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
62 
63     /**
64      * <p>The identifier of the REST API.</p>
65      */
SetId(const char * value)66     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
67 
68     /**
69      * <p>The identifier of the REST API.</p>
70      */
WithId(const Aws::String & value)71     inline AwsApiGatewayRestApiDetails& WithId(const Aws::String& value) { SetId(value); return *this;}
72 
73     /**
74      * <p>The identifier of the REST API.</p>
75      */
WithId(Aws::String && value)76     inline AwsApiGatewayRestApiDetails& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The identifier of the REST API.</p>
80      */
WithId(const char * value)81     inline AwsApiGatewayRestApiDetails& WithId(const char* value) { SetId(value); return *this;}
82 
83 
84     /**
85      * <p>The name of the REST API.</p>
86      */
GetName()87     inline const Aws::String& GetName() const{ return m_name; }
88 
89     /**
90      * <p>The name of the REST API.</p>
91      */
NameHasBeenSet()92     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
93 
94     /**
95      * <p>The name of the REST API.</p>
96      */
SetName(const Aws::String & value)97     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
98 
99     /**
100      * <p>The name of the REST API.</p>
101      */
SetName(Aws::String && value)102     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
103 
104     /**
105      * <p>The name of the REST API.</p>
106      */
SetName(const char * value)107     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
108 
109     /**
110      * <p>The name of the REST API.</p>
111      */
WithName(const Aws::String & value)112     inline AwsApiGatewayRestApiDetails& WithName(const Aws::String& value) { SetName(value); return *this;}
113 
114     /**
115      * <p>The name of the REST API.</p>
116      */
WithName(Aws::String && value)117     inline AwsApiGatewayRestApiDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
118 
119     /**
120      * <p>The name of the REST API.</p>
121      */
WithName(const char * value)122     inline AwsApiGatewayRestApiDetails& WithName(const char* value) { SetName(value); return *this;}
123 
124 
125     /**
126      * <p>A description of the REST API.</p>
127      */
GetDescription()128     inline const Aws::String& GetDescription() const{ return m_description; }
129 
130     /**
131      * <p>A description of the REST API.</p>
132      */
DescriptionHasBeenSet()133     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
134 
135     /**
136      * <p>A description of the REST API.</p>
137      */
SetDescription(const Aws::String & value)138     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
139 
140     /**
141      * <p>A description of the REST API.</p>
142      */
SetDescription(Aws::String && value)143     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
144 
145     /**
146      * <p>A description of the REST API.</p>
147      */
SetDescription(const char * value)148     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
149 
150     /**
151      * <p>A description of the REST API.</p>
152      */
WithDescription(const Aws::String & value)153     inline AwsApiGatewayRestApiDetails& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
154 
155     /**
156      * <p>A description of the REST API.</p>
157      */
WithDescription(Aws::String && value)158     inline AwsApiGatewayRestApiDetails& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
159 
160     /**
161      * <p>A description of the REST API.</p>
162      */
WithDescription(const char * value)163     inline AwsApiGatewayRestApiDetails& WithDescription(const char* value) { SetDescription(value); return *this;}
164 
165 
166     /**
167      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
168      * format specified in <a
169      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
170      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
171      * <code>2020-03-22T13:22:13.933Z</code>.</p>
172      */
GetCreatedDate()173     inline const Aws::String& GetCreatedDate() const{ return m_createdDate; }
174 
175     /**
176      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
177      * format specified in <a
178      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
179      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
180      * <code>2020-03-22T13:22:13.933Z</code>.</p>
181      */
CreatedDateHasBeenSet()182     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
183 
184     /**
185      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
186      * format specified in <a
187      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
188      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
189      * <code>2020-03-22T13:22:13.933Z</code>.</p>
190      */
SetCreatedDate(const Aws::String & value)191     inline void SetCreatedDate(const Aws::String& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
192 
193     /**
194      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
195      * format specified in <a
196      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
197      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
198      * <code>2020-03-22T13:22:13.933Z</code>.</p>
199      */
SetCreatedDate(Aws::String && value)200     inline void SetCreatedDate(Aws::String&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
201 
202     /**
203      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
204      * format specified in <a
205      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
206      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
207      * <code>2020-03-22T13:22:13.933Z</code>.</p>
208      */
SetCreatedDate(const char * value)209     inline void SetCreatedDate(const char* value) { m_createdDateHasBeenSet = true; m_createdDate.assign(value); }
210 
211     /**
212      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
213      * format specified in <a
214      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
215      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
216      * <code>2020-03-22T13:22:13.933Z</code>.</p>
217      */
WithCreatedDate(const Aws::String & value)218     inline AwsApiGatewayRestApiDetails& WithCreatedDate(const Aws::String& value) { SetCreatedDate(value); return *this;}
219 
220     /**
221      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
222      * format specified in <a
223      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
224      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
225      * <code>2020-03-22T13:22:13.933Z</code>.</p>
226      */
WithCreatedDate(Aws::String && value)227     inline AwsApiGatewayRestApiDetails& WithCreatedDate(Aws::String&& value) { SetCreatedDate(std::move(value)); return *this;}
228 
229     /**
230      * <p>Indicates when the API was created.</p> <p>Uses the <code>date-time</code>
231      * format specified in <a
232      * href="https://tools.ietf.org/html/rfc3339#section-5.6">RFC 3339 section 5.6,
233      * Internet Date/Time Format</a>. The value cannot contain spaces. For example,
234      * <code>2020-03-22T13:22:13.933Z</code>.</p>
235      */
WithCreatedDate(const char * value)236     inline AwsApiGatewayRestApiDetails& WithCreatedDate(const char* value) { SetCreatedDate(value); return *this;}
237 
238 
239     /**
240      * <p>The version identifier for the REST API.</p>
241      */
GetVersion()242     inline const Aws::String& GetVersion() const{ return m_version; }
243 
244     /**
245      * <p>The version identifier for the REST API.</p>
246      */
VersionHasBeenSet()247     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
248 
249     /**
250      * <p>The version identifier for the REST API.</p>
251      */
SetVersion(const Aws::String & value)252     inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
253 
254     /**
255      * <p>The version identifier for the REST API.</p>
256      */
SetVersion(Aws::String && value)257     inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
258 
259     /**
260      * <p>The version identifier for the REST API.</p>
261      */
SetVersion(const char * value)262     inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
263 
264     /**
265      * <p>The version identifier for the REST API.</p>
266      */
WithVersion(const Aws::String & value)267     inline AwsApiGatewayRestApiDetails& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
268 
269     /**
270      * <p>The version identifier for the REST API.</p>
271      */
WithVersion(Aws::String && value)272     inline AwsApiGatewayRestApiDetails& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
273 
274     /**
275      * <p>The version identifier for the REST API.</p>
276      */
WithVersion(const char * value)277     inline AwsApiGatewayRestApiDetails& WithVersion(const char* value) { SetVersion(value); return *this;}
278 
279 
280     /**
281      * <p>The list of binary media types supported by the REST API.</p>
282      */
GetBinaryMediaTypes()283     inline const Aws::Vector<Aws::String>& GetBinaryMediaTypes() const{ return m_binaryMediaTypes; }
284 
285     /**
286      * <p>The list of binary media types supported by the REST API.</p>
287      */
BinaryMediaTypesHasBeenSet()288     inline bool BinaryMediaTypesHasBeenSet() const { return m_binaryMediaTypesHasBeenSet; }
289 
290     /**
291      * <p>The list of binary media types supported by the REST API.</p>
292      */
SetBinaryMediaTypes(const Aws::Vector<Aws::String> & value)293     inline void SetBinaryMediaTypes(const Aws::Vector<Aws::String>& value) { m_binaryMediaTypesHasBeenSet = true; m_binaryMediaTypes = value; }
294 
295     /**
296      * <p>The list of binary media types supported by the REST API.</p>
297      */
SetBinaryMediaTypes(Aws::Vector<Aws::String> && value)298     inline void SetBinaryMediaTypes(Aws::Vector<Aws::String>&& value) { m_binaryMediaTypesHasBeenSet = true; m_binaryMediaTypes = std::move(value); }
299 
300     /**
301      * <p>The list of binary media types supported by the REST API.</p>
302      */
WithBinaryMediaTypes(const Aws::Vector<Aws::String> & value)303     inline AwsApiGatewayRestApiDetails& WithBinaryMediaTypes(const Aws::Vector<Aws::String>& value) { SetBinaryMediaTypes(value); return *this;}
304 
305     /**
306      * <p>The list of binary media types supported by the REST API.</p>
307      */
WithBinaryMediaTypes(Aws::Vector<Aws::String> && value)308     inline AwsApiGatewayRestApiDetails& WithBinaryMediaTypes(Aws::Vector<Aws::String>&& value) { SetBinaryMediaTypes(std::move(value)); return *this;}
309 
310     /**
311      * <p>The list of binary media types supported by the REST API.</p>
312      */
AddBinaryMediaTypes(const Aws::String & value)313     inline AwsApiGatewayRestApiDetails& AddBinaryMediaTypes(const Aws::String& value) { m_binaryMediaTypesHasBeenSet = true; m_binaryMediaTypes.push_back(value); return *this; }
314 
315     /**
316      * <p>The list of binary media types supported by the REST API.</p>
317      */
AddBinaryMediaTypes(Aws::String && value)318     inline AwsApiGatewayRestApiDetails& AddBinaryMediaTypes(Aws::String&& value) { m_binaryMediaTypesHasBeenSet = true; m_binaryMediaTypes.push_back(std::move(value)); return *this; }
319 
320     /**
321      * <p>The list of binary media types supported by the REST API.</p>
322      */
AddBinaryMediaTypes(const char * value)323     inline AwsApiGatewayRestApiDetails& AddBinaryMediaTypes(const char* value) { m_binaryMediaTypesHasBeenSet = true; m_binaryMediaTypes.push_back(value); return *this; }
324 
325 
326     /**
327      * <p>The minimum size in bytes of a payload before compression is enabled.</p>
328      * <p>If <code>null</code>, then compression is disabled.</p> <p>If 0, then all
329      * payloads are compressed.</p>
330      */
GetMinimumCompressionSize()331     inline int GetMinimumCompressionSize() const{ return m_minimumCompressionSize; }
332 
333     /**
334      * <p>The minimum size in bytes of a payload before compression is enabled.</p>
335      * <p>If <code>null</code>, then compression is disabled.</p> <p>If 0, then all
336      * payloads are compressed.</p>
337      */
MinimumCompressionSizeHasBeenSet()338     inline bool MinimumCompressionSizeHasBeenSet() const { return m_minimumCompressionSizeHasBeenSet; }
339 
340     /**
341      * <p>The minimum size in bytes of a payload before compression is enabled.</p>
342      * <p>If <code>null</code>, then compression is disabled.</p> <p>If 0, then all
343      * payloads are compressed.</p>
344      */
SetMinimumCompressionSize(int value)345     inline void SetMinimumCompressionSize(int value) { m_minimumCompressionSizeHasBeenSet = true; m_minimumCompressionSize = value; }
346 
347     /**
348      * <p>The minimum size in bytes of a payload before compression is enabled.</p>
349      * <p>If <code>null</code>, then compression is disabled.</p> <p>If 0, then all
350      * payloads are compressed.</p>
351      */
WithMinimumCompressionSize(int value)352     inline AwsApiGatewayRestApiDetails& WithMinimumCompressionSize(int value) { SetMinimumCompressionSize(value); return *this;}
353 
354 
355     /**
356      * <p>The source of the API key for metering requests according to a usage
357      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
358      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
359      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
360      * authorizer.</p>
361      */
GetApiKeySource()362     inline const Aws::String& GetApiKeySource() const{ return m_apiKeySource; }
363 
364     /**
365      * <p>The source of the API key for metering requests according to a usage
366      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
367      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
368      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
369      * authorizer.</p>
370      */
ApiKeySourceHasBeenSet()371     inline bool ApiKeySourceHasBeenSet() const { return m_apiKeySourceHasBeenSet; }
372 
373     /**
374      * <p>The source of the API key for metering requests according to a usage
375      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
376      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
377      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
378      * authorizer.</p>
379      */
SetApiKeySource(const Aws::String & value)380     inline void SetApiKeySource(const Aws::String& value) { m_apiKeySourceHasBeenSet = true; m_apiKeySource = value; }
381 
382     /**
383      * <p>The source of the API key for metering requests according to a usage
384      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
385      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
386      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
387      * authorizer.</p>
388      */
SetApiKeySource(Aws::String && value)389     inline void SetApiKeySource(Aws::String&& value) { m_apiKeySourceHasBeenSet = true; m_apiKeySource = std::move(value); }
390 
391     /**
392      * <p>The source of the API key for metering requests according to a usage
393      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
394      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
395      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
396      * authorizer.</p>
397      */
SetApiKeySource(const char * value)398     inline void SetApiKeySource(const char* value) { m_apiKeySourceHasBeenSet = true; m_apiKeySource.assign(value); }
399 
400     /**
401      * <p>The source of the API key for metering requests according to a usage
402      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
403      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
404      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
405      * authorizer.</p>
406      */
WithApiKeySource(const Aws::String & value)407     inline AwsApiGatewayRestApiDetails& WithApiKeySource(const Aws::String& value) { SetApiKeySource(value); return *this;}
408 
409     /**
410      * <p>The source of the API key for metering requests according to a usage
411      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
412      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
413      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
414      * authorizer.</p>
415      */
WithApiKeySource(Aws::String && value)416     inline AwsApiGatewayRestApiDetails& WithApiKeySource(Aws::String&& value) { SetApiKeySource(std::move(value)); return *this;}
417 
418     /**
419      * <p>The source of the API key for metering requests according to a usage
420      * plan.</p> <p> <code>HEADER</code> indicates whether to read the API key from the
421      * X-API-Key header of a request.</p> <p> <code>AUTHORIZER</code> indicates whether
422      * to read the API key from the <code>UsageIdentifierKey</code> from a custom
423      * authorizer.</p>
424      */
WithApiKeySource(const char * value)425     inline AwsApiGatewayRestApiDetails& WithApiKeySource(const char* value) { SetApiKeySource(value); return *this;}
426 
427 
428     /**
429      * <p>The endpoint configuration of the REST API.</p>
430      */
GetEndpointConfiguration()431     inline const AwsApiGatewayEndpointConfiguration& GetEndpointConfiguration() const{ return m_endpointConfiguration; }
432 
433     /**
434      * <p>The endpoint configuration of the REST API.</p>
435      */
EndpointConfigurationHasBeenSet()436     inline bool EndpointConfigurationHasBeenSet() const { return m_endpointConfigurationHasBeenSet; }
437 
438     /**
439      * <p>The endpoint configuration of the REST API.</p>
440      */
SetEndpointConfiguration(const AwsApiGatewayEndpointConfiguration & value)441     inline void SetEndpointConfiguration(const AwsApiGatewayEndpointConfiguration& value) { m_endpointConfigurationHasBeenSet = true; m_endpointConfiguration = value; }
442 
443     /**
444      * <p>The endpoint configuration of the REST API.</p>
445      */
SetEndpointConfiguration(AwsApiGatewayEndpointConfiguration && value)446     inline void SetEndpointConfiguration(AwsApiGatewayEndpointConfiguration&& value) { m_endpointConfigurationHasBeenSet = true; m_endpointConfiguration = std::move(value); }
447 
448     /**
449      * <p>The endpoint configuration of the REST API.</p>
450      */
WithEndpointConfiguration(const AwsApiGatewayEndpointConfiguration & value)451     inline AwsApiGatewayRestApiDetails& WithEndpointConfiguration(const AwsApiGatewayEndpointConfiguration& value) { SetEndpointConfiguration(value); return *this;}
452 
453     /**
454      * <p>The endpoint configuration of the REST API.</p>
455      */
WithEndpointConfiguration(AwsApiGatewayEndpointConfiguration && value)456     inline AwsApiGatewayRestApiDetails& WithEndpointConfiguration(AwsApiGatewayEndpointConfiguration&& value) { SetEndpointConfiguration(std::move(value)); return *this;}
457 
458   private:
459 
460     Aws::String m_id;
461     bool m_idHasBeenSet;
462 
463     Aws::String m_name;
464     bool m_nameHasBeenSet;
465 
466     Aws::String m_description;
467     bool m_descriptionHasBeenSet;
468 
469     Aws::String m_createdDate;
470     bool m_createdDateHasBeenSet;
471 
472     Aws::String m_version;
473     bool m_versionHasBeenSet;
474 
475     Aws::Vector<Aws::String> m_binaryMediaTypes;
476     bool m_binaryMediaTypesHasBeenSet;
477 
478     int m_minimumCompressionSize;
479     bool m_minimumCompressionSizeHasBeenSet;
480 
481     Aws::String m_apiKeySource;
482     bool m_apiKeySourceHasBeenSet;
483 
484     AwsApiGatewayEndpointConfiguration m_endpointConfiguration;
485     bool m_endpointConfigurationHasBeenSet;
486   };
487 
488 } // namespace Model
489 } // namespace SecurityHub
490 } // namespace Aws
491