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/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace SecurityHub
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Contains information about the endpoints for the API.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsApiGatewayEndpointConfiguration">AWS
31    * API Reference</a></p>
32    */
33   class AWS_SECURITYHUB_API AwsApiGatewayEndpointConfiguration
34   {
35   public:
36     AwsApiGatewayEndpointConfiguration();
37     AwsApiGatewayEndpointConfiguration(Aws::Utils::Json::JsonView jsonValue);
38     AwsApiGatewayEndpointConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
44      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
45      * <code>REGIONAL</code>. For a private API, the endpoint type is
46      * <code>PRIVATE</code>.</p>
47      */
GetTypes()48     inline const Aws::Vector<Aws::String>& GetTypes() const{ return m_types; }
49 
50     /**
51      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
52      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
53      * <code>REGIONAL</code>. For a private API, the endpoint type is
54      * <code>PRIVATE</code>.</p>
55      */
TypesHasBeenSet()56     inline bool TypesHasBeenSet() const { return m_typesHasBeenSet; }
57 
58     /**
59      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
60      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
61      * <code>REGIONAL</code>. For a private API, the endpoint type is
62      * <code>PRIVATE</code>.</p>
63      */
SetTypes(const Aws::Vector<Aws::String> & value)64     inline void SetTypes(const Aws::Vector<Aws::String>& value) { m_typesHasBeenSet = true; m_types = value; }
65 
66     /**
67      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
68      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
69      * <code>REGIONAL</code>. For a private API, the endpoint type is
70      * <code>PRIVATE</code>.</p>
71      */
SetTypes(Aws::Vector<Aws::String> && value)72     inline void SetTypes(Aws::Vector<Aws::String>&& value) { m_typesHasBeenSet = true; m_types = std::move(value); }
73 
74     /**
75      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
76      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
77      * <code>REGIONAL</code>. For a private API, the endpoint type is
78      * <code>PRIVATE</code>.</p>
79      */
WithTypes(const Aws::Vector<Aws::String> & value)80     inline AwsApiGatewayEndpointConfiguration& WithTypes(const Aws::Vector<Aws::String>& value) { SetTypes(value); return *this;}
81 
82     /**
83      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
84      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
85      * <code>REGIONAL</code>. For a private API, the endpoint type is
86      * <code>PRIVATE</code>.</p>
87      */
WithTypes(Aws::Vector<Aws::String> && value)88     inline AwsApiGatewayEndpointConfiguration& WithTypes(Aws::Vector<Aws::String>&& value) { SetTypes(std::move(value)); return *this;}
89 
90     /**
91      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
92      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
93      * <code>REGIONAL</code>. For a private API, the endpoint type is
94      * <code>PRIVATE</code>.</p>
95      */
AddTypes(const Aws::String & value)96     inline AwsApiGatewayEndpointConfiguration& AddTypes(const Aws::String& value) { m_typesHasBeenSet = true; m_types.push_back(value); return *this; }
97 
98     /**
99      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
100      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
101      * <code>REGIONAL</code>. For a private API, the endpoint type is
102      * <code>PRIVATE</code>.</p>
103      */
AddTypes(Aws::String && value)104     inline AwsApiGatewayEndpointConfiguration& AddTypes(Aws::String&& value) { m_typesHasBeenSet = true; m_types.push_back(std::move(value)); return *this; }
105 
106     /**
107      * <p>A list of endpoint types for the REST API.</p> <p>For an edge-optimized API,
108      * the endpoint type is <code>EDGE</code>. For a Regional API, the endpoint type is
109      * <code>REGIONAL</code>. For a private API, the endpoint type is
110      * <code>PRIVATE</code>.</p>
111      */
AddTypes(const char * value)112     inline AwsApiGatewayEndpointConfiguration& AddTypes(const char* value) { m_typesHasBeenSet = true; m_types.push_back(value); return *this; }
113 
114   private:
115 
116     Aws::Vector<Aws::String> m_types;
117     bool m_typesHasBeenSet;
118   };
119 
120 } // namespace Model
121 } // namespace SecurityHub
122 } // namespace Aws
123