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 the cross-origin resource sharing (CORS) configuration for the API.
29    * CORS is only supported for HTTP APIs.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsCorsConfiguration">AWS
31    * API Reference</a></p>
32    */
33   class AWS_SECURITYHUB_API AwsCorsConfiguration
34   {
35   public:
36     AwsCorsConfiguration();
37     AwsCorsConfiguration(Aws::Utils::Json::JsonView jsonValue);
38     AwsCorsConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The allowed origins for CORS requests.</p>
44      */
GetAllowOrigins()45     inline const Aws::Vector<Aws::String>& GetAllowOrigins() const{ return m_allowOrigins; }
46 
47     /**
48      * <p>The allowed origins for CORS requests.</p>
49      */
AllowOriginsHasBeenSet()50     inline bool AllowOriginsHasBeenSet() const { return m_allowOriginsHasBeenSet; }
51 
52     /**
53      * <p>The allowed origins for CORS requests.</p>
54      */
SetAllowOrigins(const Aws::Vector<Aws::String> & value)55     inline void SetAllowOrigins(const Aws::Vector<Aws::String>& value) { m_allowOriginsHasBeenSet = true; m_allowOrigins = value; }
56 
57     /**
58      * <p>The allowed origins for CORS requests.</p>
59      */
SetAllowOrigins(Aws::Vector<Aws::String> && value)60     inline void SetAllowOrigins(Aws::Vector<Aws::String>&& value) { m_allowOriginsHasBeenSet = true; m_allowOrigins = std::move(value); }
61 
62     /**
63      * <p>The allowed origins for CORS requests.</p>
64      */
WithAllowOrigins(const Aws::Vector<Aws::String> & value)65     inline AwsCorsConfiguration& WithAllowOrigins(const Aws::Vector<Aws::String>& value) { SetAllowOrigins(value); return *this;}
66 
67     /**
68      * <p>The allowed origins for CORS requests.</p>
69      */
WithAllowOrigins(Aws::Vector<Aws::String> && value)70     inline AwsCorsConfiguration& WithAllowOrigins(Aws::Vector<Aws::String>&& value) { SetAllowOrigins(std::move(value)); return *this;}
71 
72     /**
73      * <p>The allowed origins for CORS requests.</p>
74      */
AddAllowOrigins(const Aws::String & value)75     inline AwsCorsConfiguration& AddAllowOrigins(const Aws::String& value) { m_allowOriginsHasBeenSet = true; m_allowOrigins.push_back(value); return *this; }
76 
77     /**
78      * <p>The allowed origins for CORS requests.</p>
79      */
AddAllowOrigins(Aws::String && value)80     inline AwsCorsConfiguration& AddAllowOrigins(Aws::String&& value) { m_allowOriginsHasBeenSet = true; m_allowOrigins.push_back(std::move(value)); return *this; }
81 
82     /**
83      * <p>The allowed origins for CORS requests.</p>
84      */
AddAllowOrigins(const char * value)85     inline AwsCorsConfiguration& AddAllowOrigins(const char* value) { m_allowOriginsHasBeenSet = true; m_allowOrigins.push_back(value); return *this; }
86 
87 
88     /**
89      * <p>Indicates whether the CORS request includes credentials.</p>
90      */
GetAllowCredentials()91     inline bool GetAllowCredentials() const{ return m_allowCredentials; }
92 
93     /**
94      * <p>Indicates whether the CORS request includes credentials.</p>
95      */
AllowCredentialsHasBeenSet()96     inline bool AllowCredentialsHasBeenSet() const { return m_allowCredentialsHasBeenSet; }
97 
98     /**
99      * <p>Indicates whether the CORS request includes credentials.</p>
100      */
SetAllowCredentials(bool value)101     inline void SetAllowCredentials(bool value) { m_allowCredentialsHasBeenSet = true; m_allowCredentials = value; }
102 
103     /**
104      * <p>Indicates whether the CORS request includes credentials.</p>
105      */
WithAllowCredentials(bool value)106     inline AwsCorsConfiguration& WithAllowCredentials(bool value) { SetAllowCredentials(value); return *this;}
107 
108 
109     /**
110      * <p>The exposed headers for CORS requests.</p>
111      */
GetExposeHeaders()112     inline const Aws::Vector<Aws::String>& GetExposeHeaders() const{ return m_exposeHeaders; }
113 
114     /**
115      * <p>The exposed headers for CORS requests.</p>
116      */
ExposeHeadersHasBeenSet()117     inline bool ExposeHeadersHasBeenSet() const { return m_exposeHeadersHasBeenSet; }
118 
119     /**
120      * <p>The exposed headers for CORS requests.</p>
121      */
SetExposeHeaders(const Aws::Vector<Aws::String> & value)122     inline void SetExposeHeaders(const Aws::Vector<Aws::String>& value) { m_exposeHeadersHasBeenSet = true; m_exposeHeaders = value; }
123 
124     /**
125      * <p>The exposed headers for CORS requests.</p>
126      */
SetExposeHeaders(Aws::Vector<Aws::String> && value)127     inline void SetExposeHeaders(Aws::Vector<Aws::String>&& value) { m_exposeHeadersHasBeenSet = true; m_exposeHeaders = std::move(value); }
128 
129     /**
130      * <p>The exposed headers for CORS requests.</p>
131      */
WithExposeHeaders(const Aws::Vector<Aws::String> & value)132     inline AwsCorsConfiguration& WithExposeHeaders(const Aws::Vector<Aws::String>& value) { SetExposeHeaders(value); return *this;}
133 
134     /**
135      * <p>The exposed headers for CORS requests.</p>
136      */
WithExposeHeaders(Aws::Vector<Aws::String> && value)137     inline AwsCorsConfiguration& WithExposeHeaders(Aws::Vector<Aws::String>&& value) { SetExposeHeaders(std::move(value)); return *this;}
138 
139     /**
140      * <p>The exposed headers for CORS requests.</p>
141      */
AddExposeHeaders(const Aws::String & value)142     inline AwsCorsConfiguration& AddExposeHeaders(const Aws::String& value) { m_exposeHeadersHasBeenSet = true; m_exposeHeaders.push_back(value); return *this; }
143 
144     /**
145      * <p>The exposed headers for CORS requests.</p>
146      */
AddExposeHeaders(Aws::String && value)147     inline AwsCorsConfiguration& AddExposeHeaders(Aws::String&& value) { m_exposeHeadersHasBeenSet = true; m_exposeHeaders.push_back(std::move(value)); return *this; }
148 
149     /**
150      * <p>The exposed headers for CORS requests.</p>
151      */
AddExposeHeaders(const char * value)152     inline AwsCorsConfiguration& AddExposeHeaders(const char* value) { m_exposeHeadersHasBeenSet = true; m_exposeHeaders.push_back(value); return *this; }
153 
154 
155     /**
156      * <p>The number of seconds for which the browser caches preflight request
157      * results.</p>
158      */
GetMaxAge()159     inline int GetMaxAge() const{ return m_maxAge; }
160 
161     /**
162      * <p>The number of seconds for which the browser caches preflight request
163      * results.</p>
164      */
MaxAgeHasBeenSet()165     inline bool MaxAgeHasBeenSet() const { return m_maxAgeHasBeenSet; }
166 
167     /**
168      * <p>The number of seconds for which the browser caches preflight request
169      * results.</p>
170      */
SetMaxAge(int value)171     inline void SetMaxAge(int value) { m_maxAgeHasBeenSet = true; m_maxAge = value; }
172 
173     /**
174      * <p>The number of seconds for which the browser caches preflight request
175      * results.</p>
176      */
WithMaxAge(int value)177     inline AwsCorsConfiguration& WithMaxAge(int value) { SetMaxAge(value); return *this;}
178 
179 
180     /**
181      * <p>The allowed methods for CORS requests.</p>
182      */
GetAllowMethods()183     inline const Aws::Vector<Aws::String>& GetAllowMethods() const{ return m_allowMethods; }
184 
185     /**
186      * <p>The allowed methods for CORS requests.</p>
187      */
AllowMethodsHasBeenSet()188     inline bool AllowMethodsHasBeenSet() const { return m_allowMethodsHasBeenSet; }
189 
190     /**
191      * <p>The allowed methods for CORS requests.</p>
192      */
SetAllowMethods(const Aws::Vector<Aws::String> & value)193     inline void SetAllowMethods(const Aws::Vector<Aws::String>& value) { m_allowMethodsHasBeenSet = true; m_allowMethods = value; }
194 
195     /**
196      * <p>The allowed methods for CORS requests.</p>
197      */
SetAllowMethods(Aws::Vector<Aws::String> && value)198     inline void SetAllowMethods(Aws::Vector<Aws::String>&& value) { m_allowMethodsHasBeenSet = true; m_allowMethods = std::move(value); }
199 
200     /**
201      * <p>The allowed methods for CORS requests.</p>
202      */
WithAllowMethods(const Aws::Vector<Aws::String> & value)203     inline AwsCorsConfiguration& WithAllowMethods(const Aws::Vector<Aws::String>& value) { SetAllowMethods(value); return *this;}
204 
205     /**
206      * <p>The allowed methods for CORS requests.</p>
207      */
WithAllowMethods(Aws::Vector<Aws::String> && value)208     inline AwsCorsConfiguration& WithAllowMethods(Aws::Vector<Aws::String>&& value) { SetAllowMethods(std::move(value)); return *this;}
209 
210     /**
211      * <p>The allowed methods for CORS requests.</p>
212      */
AddAllowMethods(const Aws::String & value)213     inline AwsCorsConfiguration& AddAllowMethods(const Aws::String& value) { m_allowMethodsHasBeenSet = true; m_allowMethods.push_back(value); return *this; }
214 
215     /**
216      * <p>The allowed methods for CORS requests.</p>
217      */
AddAllowMethods(Aws::String && value)218     inline AwsCorsConfiguration& AddAllowMethods(Aws::String&& value) { m_allowMethodsHasBeenSet = true; m_allowMethods.push_back(std::move(value)); return *this; }
219 
220     /**
221      * <p>The allowed methods for CORS requests.</p>
222      */
AddAllowMethods(const char * value)223     inline AwsCorsConfiguration& AddAllowMethods(const char* value) { m_allowMethodsHasBeenSet = true; m_allowMethods.push_back(value); return *this; }
224 
225 
226     /**
227      * <p>The allowed headers for CORS requests.</p>
228      */
GetAllowHeaders()229     inline const Aws::Vector<Aws::String>& GetAllowHeaders() const{ return m_allowHeaders; }
230 
231     /**
232      * <p>The allowed headers for CORS requests.</p>
233      */
AllowHeadersHasBeenSet()234     inline bool AllowHeadersHasBeenSet() const { return m_allowHeadersHasBeenSet; }
235 
236     /**
237      * <p>The allowed headers for CORS requests.</p>
238      */
SetAllowHeaders(const Aws::Vector<Aws::String> & value)239     inline void SetAllowHeaders(const Aws::Vector<Aws::String>& value) { m_allowHeadersHasBeenSet = true; m_allowHeaders = value; }
240 
241     /**
242      * <p>The allowed headers for CORS requests.</p>
243      */
SetAllowHeaders(Aws::Vector<Aws::String> && value)244     inline void SetAllowHeaders(Aws::Vector<Aws::String>&& value) { m_allowHeadersHasBeenSet = true; m_allowHeaders = std::move(value); }
245 
246     /**
247      * <p>The allowed headers for CORS requests.</p>
248      */
WithAllowHeaders(const Aws::Vector<Aws::String> & value)249     inline AwsCorsConfiguration& WithAllowHeaders(const Aws::Vector<Aws::String>& value) { SetAllowHeaders(value); return *this;}
250 
251     /**
252      * <p>The allowed headers for CORS requests.</p>
253      */
WithAllowHeaders(Aws::Vector<Aws::String> && value)254     inline AwsCorsConfiguration& WithAllowHeaders(Aws::Vector<Aws::String>&& value) { SetAllowHeaders(std::move(value)); return *this;}
255 
256     /**
257      * <p>The allowed headers for CORS requests.</p>
258      */
AddAllowHeaders(const Aws::String & value)259     inline AwsCorsConfiguration& AddAllowHeaders(const Aws::String& value) { m_allowHeadersHasBeenSet = true; m_allowHeaders.push_back(value); return *this; }
260 
261     /**
262      * <p>The allowed headers for CORS requests.</p>
263      */
AddAllowHeaders(Aws::String && value)264     inline AwsCorsConfiguration& AddAllowHeaders(Aws::String&& value) { m_allowHeadersHasBeenSet = true; m_allowHeaders.push_back(std::move(value)); return *this; }
265 
266     /**
267      * <p>The allowed headers for CORS requests.</p>
268      */
AddAllowHeaders(const char * value)269     inline AwsCorsConfiguration& AddAllowHeaders(const char* value) { m_allowHeadersHasBeenSet = true; m_allowHeaders.push_back(value); return *this; }
270 
271   private:
272 
273     Aws::Vector<Aws::String> m_allowOrigins;
274     bool m_allowOriginsHasBeenSet;
275 
276     bool m_allowCredentials;
277     bool m_allowCredentialsHasBeenSet;
278 
279     Aws::Vector<Aws::String> m_exposeHeaders;
280     bool m_exposeHeadersHasBeenSet;
281 
282     int m_maxAge;
283     bool m_maxAgeHasBeenSet;
284 
285     Aws::Vector<Aws::String> m_allowMethods;
286     bool m_allowMethodsHasBeenSet;
287 
288     Aws::Vector<Aws::String> m_allowHeaders;
289     bool m_allowHeadersHasBeenSet;
290   };
291 
292 } // namespace Model
293 } // namespace SecurityHub
294 } // namespace Aws
295