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/apigatewayv2/ApiGatewayV2_EXPORTS.h>
8 #include <aws/apigatewayv2/model/AccessLogSettings.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/apigatewayv2/model/RouteSettings.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace ApiGatewayV2
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Represents an API stage.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/Stage">AWS
33    * API Reference</a></p>
34    */
35   class AWS_APIGATEWAYV2_API Stage
36   {
37   public:
38     Stage();
39     Stage(Aws::Utils::Json::JsonView jsonValue);
40     Stage& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>Settings for logging access in this stage.</p>
46      */
GetAccessLogSettings()47     inline const AccessLogSettings& GetAccessLogSettings() const{ return m_accessLogSettings; }
48 
49     /**
50      * <p>Settings for logging access in this stage.</p>
51      */
AccessLogSettingsHasBeenSet()52     inline bool AccessLogSettingsHasBeenSet() const { return m_accessLogSettingsHasBeenSet; }
53 
54     /**
55      * <p>Settings for logging access in this stage.</p>
56      */
SetAccessLogSettings(const AccessLogSettings & value)57     inline void SetAccessLogSettings(const AccessLogSettings& value) { m_accessLogSettingsHasBeenSet = true; m_accessLogSettings = value; }
58 
59     /**
60      * <p>Settings for logging access in this stage.</p>
61      */
SetAccessLogSettings(AccessLogSettings && value)62     inline void SetAccessLogSettings(AccessLogSettings&& value) { m_accessLogSettingsHasBeenSet = true; m_accessLogSettings = std::move(value); }
63 
64     /**
65      * <p>Settings for logging access in this stage.</p>
66      */
WithAccessLogSettings(const AccessLogSettings & value)67     inline Stage& WithAccessLogSettings(const AccessLogSettings& value) { SetAccessLogSettings(value); return *this;}
68 
69     /**
70      * <p>Settings for logging access in this stage.</p>
71      */
WithAccessLogSettings(AccessLogSettings && value)72     inline Stage& WithAccessLogSettings(AccessLogSettings&& value) { SetAccessLogSettings(std::move(value)); return *this;}
73 
74 
75     /**
76      * <p>Specifies whether a stage is managed by API Gateway. If you created an API
77      * using quick create, the $default stage is managed by API Gateway. You can't
78      * modify the $default stage.</p>
79      */
GetApiGatewayManaged()80     inline bool GetApiGatewayManaged() const{ return m_apiGatewayManaged; }
81 
82     /**
83      * <p>Specifies whether a stage is managed by API Gateway. If you created an API
84      * using quick create, the $default stage is managed by API Gateway. You can't
85      * modify the $default stage.</p>
86      */
ApiGatewayManagedHasBeenSet()87     inline bool ApiGatewayManagedHasBeenSet() const { return m_apiGatewayManagedHasBeenSet; }
88 
89     /**
90      * <p>Specifies whether a stage is managed by API Gateway. If you created an API
91      * using quick create, the $default stage is managed by API Gateway. You can't
92      * modify the $default stage.</p>
93      */
SetApiGatewayManaged(bool value)94     inline void SetApiGatewayManaged(bool value) { m_apiGatewayManagedHasBeenSet = true; m_apiGatewayManaged = value; }
95 
96     /**
97      * <p>Specifies whether a stage is managed by API Gateway. If you created an API
98      * using quick create, the $default stage is managed by API Gateway. You can't
99      * modify the $default stage.</p>
100      */
WithApiGatewayManaged(bool value)101     inline Stage& WithApiGatewayManaged(bool value) { SetApiGatewayManaged(value); return *this;}
102 
103 
104     /**
105      * <p>Specifies whether updates to an API automatically trigger a new deployment.
106      * The default value is false.</p>
107      */
GetAutoDeploy()108     inline bool GetAutoDeploy() const{ return m_autoDeploy; }
109 
110     /**
111      * <p>Specifies whether updates to an API automatically trigger a new deployment.
112      * The default value is false.</p>
113      */
AutoDeployHasBeenSet()114     inline bool AutoDeployHasBeenSet() const { return m_autoDeployHasBeenSet; }
115 
116     /**
117      * <p>Specifies whether updates to an API automatically trigger a new deployment.
118      * The default value is false.</p>
119      */
SetAutoDeploy(bool value)120     inline void SetAutoDeploy(bool value) { m_autoDeployHasBeenSet = true; m_autoDeploy = value; }
121 
122     /**
123      * <p>Specifies whether updates to an API automatically trigger a new deployment.
124      * The default value is false.</p>
125      */
WithAutoDeploy(bool value)126     inline Stage& WithAutoDeploy(bool value) { SetAutoDeploy(value); return *this;}
127 
128 
129     /**
130      * <p>The identifier of a client certificate for a Stage. Supported only for
131      * WebSocket APIs.</p>
132      */
GetClientCertificateId()133     inline const Aws::String& GetClientCertificateId() const{ return m_clientCertificateId; }
134 
135     /**
136      * <p>The identifier of a client certificate for a Stage. Supported only for
137      * WebSocket APIs.</p>
138      */
ClientCertificateIdHasBeenSet()139     inline bool ClientCertificateIdHasBeenSet() const { return m_clientCertificateIdHasBeenSet; }
140 
141     /**
142      * <p>The identifier of a client certificate for a Stage. Supported only for
143      * WebSocket APIs.</p>
144      */
SetClientCertificateId(const Aws::String & value)145     inline void SetClientCertificateId(const Aws::String& value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId = value; }
146 
147     /**
148      * <p>The identifier of a client certificate for a Stage. Supported only for
149      * WebSocket APIs.</p>
150      */
SetClientCertificateId(Aws::String && value)151     inline void SetClientCertificateId(Aws::String&& value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId = std::move(value); }
152 
153     /**
154      * <p>The identifier of a client certificate for a Stage. Supported only for
155      * WebSocket APIs.</p>
156      */
SetClientCertificateId(const char * value)157     inline void SetClientCertificateId(const char* value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId.assign(value); }
158 
159     /**
160      * <p>The identifier of a client certificate for a Stage. Supported only for
161      * WebSocket APIs.</p>
162      */
WithClientCertificateId(const Aws::String & value)163     inline Stage& WithClientCertificateId(const Aws::String& value) { SetClientCertificateId(value); return *this;}
164 
165     /**
166      * <p>The identifier of a client certificate for a Stage. Supported only for
167      * WebSocket APIs.</p>
168      */
WithClientCertificateId(Aws::String && value)169     inline Stage& WithClientCertificateId(Aws::String&& value) { SetClientCertificateId(std::move(value)); return *this;}
170 
171     /**
172      * <p>The identifier of a client certificate for a Stage. Supported only for
173      * WebSocket APIs.</p>
174      */
WithClientCertificateId(const char * value)175     inline Stage& WithClientCertificateId(const char* value) { SetClientCertificateId(value); return *this;}
176 
177 
178     /**
179      * <p>The timestamp when the stage was created.</p>
180      */
GetCreatedDate()181     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
182 
183     /**
184      * <p>The timestamp when the stage was created.</p>
185      */
CreatedDateHasBeenSet()186     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
187 
188     /**
189      * <p>The timestamp when the stage was created.</p>
190      */
SetCreatedDate(const Aws::Utils::DateTime & value)191     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
192 
193     /**
194      * <p>The timestamp when the stage was created.</p>
195      */
SetCreatedDate(Aws::Utils::DateTime && value)196     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
197 
198     /**
199      * <p>The timestamp when the stage was created.</p>
200      */
WithCreatedDate(const Aws::Utils::DateTime & value)201     inline Stage& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
202 
203     /**
204      * <p>The timestamp when the stage was created.</p>
205      */
WithCreatedDate(Aws::Utils::DateTime && value)206     inline Stage& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
207 
208 
209     /**
210      * <p>Default route settings for the stage.</p>
211      */
GetDefaultRouteSettings()212     inline const RouteSettings& GetDefaultRouteSettings() const{ return m_defaultRouteSettings; }
213 
214     /**
215      * <p>Default route settings for the stage.</p>
216      */
DefaultRouteSettingsHasBeenSet()217     inline bool DefaultRouteSettingsHasBeenSet() const { return m_defaultRouteSettingsHasBeenSet; }
218 
219     /**
220      * <p>Default route settings for the stage.</p>
221      */
SetDefaultRouteSettings(const RouteSettings & value)222     inline void SetDefaultRouteSettings(const RouteSettings& value) { m_defaultRouteSettingsHasBeenSet = true; m_defaultRouteSettings = value; }
223 
224     /**
225      * <p>Default route settings for the stage.</p>
226      */
SetDefaultRouteSettings(RouteSettings && value)227     inline void SetDefaultRouteSettings(RouteSettings&& value) { m_defaultRouteSettingsHasBeenSet = true; m_defaultRouteSettings = std::move(value); }
228 
229     /**
230      * <p>Default route settings for the stage.</p>
231      */
WithDefaultRouteSettings(const RouteSettings & value)232     inline Stage& WithDefaultRouteSettings(const RouteSettings& value) { SetDefaultRouteSettings(value); return *this;}
233 
234     /**
235      * <p>Default route settings for the stage.</p>
236      */
WithDefaultRouteSettings(RouteSettings && value)237     inline Stage& WithDefaultRouteSettings(RouteSettings&& value) { SetDefaultRouteSettings(std::move(value)); return *this;}
238 
239 
240     /**
241      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
242      * updated if autoDeploy is enabled.</p>
243      */
GetDeploymentId()244     inline const Aws::String& GetDeploymentId() const{ return m_deploymentId; }
245 
246     /**
247      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
248      * updated if autoDeploy is enabled.</p>
249      */
DeploymentIdHasBeenSet()250     inline bool DeploymentIdHasBeenSet() const { return m_deploymentIdHasBeenSet; }
251 
252     /**
253      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
254      * updated if autoDeploy is enabled.</p>
255      */
SetDeploymentId(const Aws::String & value)256     inline void SetDeploymentId(const Aws::String& value) { m_deploymentIdHasBeenSet = true; m_deploymentId = value; }
257 
258     /**
259      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
260      * updated if autoDeploy is enabled.</p>
261      */
SetDeploymentId(Aws::String && value)262     inline void SetDeploymentId(Aws::String&& value) { m_deploymentIdHasBeenSet = true; m_deploymentId = std::move(value); }
263 
264     /**
265      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
266      * updated if autoDeploy is enabled.</p>
267      */
SetDeploymentId(const char * value)268     inline void SetDeploymentId(const char* value) { m_deploymentIdHasBeenSet = true; m_deploymentId.assign(value); }
269 
270     /**
271      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
272      * updated if autoDeploy is enabled.</p>
273      */
WithDeploymentId(const Aws::String & value)274     inline Stage& WithDeploymentId(const Aws::String& value) { SetDeploymentId(value); return *this;}
275 
276     /**
277      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
278      * updated if autoDeploy is enabled.</p>
279      */
WithDeploymentId(Aws::String && value)280     inline Stage& WithDeploymentId(Aws::String&& value) { SetDeploymentId(std::move(value)); return *this;}
281 
282     /**
283      * <p>The identifier of the Deployment that the Stage is associated with. Can't be
284      * updated if autoDeploy is enabled.</p>
285      */
WithDeploymentId(const char * value)286     inline Stage& WithDeploymentId(const char* value) { SetDeploymentId(value); return *this;}
287 
288 
289     /**
290      * <p>The description of the stage.</p>
291      */
GetDescription()292     inline const Aws::String& GetDescription() const{ return m_description; }
293 
294     /**
295      * <p>The description of the stage.</p>
296      */
DescriptionHasBeenSet()297     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
298 
299     /**
300      * <p>The description of the stage.</p>
301      */
SetDescription(const Aws::String & value)302     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
303 
304     /**
305      * <p>The description of the stage.</p>
306      */
SetDescription(Aws::String && value)307     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
308 
309     /**
310      * <p>The description of the stage.</p>
311      */
SetDescription(const char * value)312     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
313 
314     /**
315      * <p>The description of the stage.</p>
316      */
WithDescription(const Aws::String & value)317     inline Stage& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
318 
319     /**
320      * <p>The description of the stage.</p>
321      */
WithDescription(Aws::String && value)322     inline Stage& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
323 
324     /**
325      * <p>The description of the stage.</p>
326      */
WithDescription(const char * value)327     inline Stage& WithDescription(const char* value) { SetDescription(value); return *this;}
328 
329 
330     /**
331      * <p>Describes the status of the last deployment of a stage. Supported only for
332      * stages with autoDeploy enabled.</p>
333      */
GetLastDeploymentStatusMessage()334     inline const Aws::String& GetLastDeploymentStatusMessage() const{ return m_lastDeploymentStatusMessage; }
335 
336     /**
337      * <p>Describes the status of the last deployment of a stage. Supported only for
338      * stages with autoDeploy enabled.</p>
339      */
LastDeploymentStatusMessageHasBeenSet()340     inline bool LastDeploymentStatusMessageHasBeenSet() const { return m_lastDeploymentStatusMessageHasBeenSet; }
341 
342     /**
343      * <p>Describes the status of the last deployment of a stage. Supported only for
344      * stages with autoDeploy enabled.</p>
345      */
SetLastDeploymentStatusMessage(const Aws::String & value)346     inline void SetLastDeploymentStatusMessage(const Aws::String& value) { m_lastDeploymentStatusMessageHasBeenSet = true; m_lastDeploymentStatusMessage = value; }
347 
348     /**
349      * <p>Describes the status of the last deployment of a stage. Supported only for
350      * stages with autoDeploy enabled.</p>
351      */
SetLastDeploymentStatusMessage(Aws::String && value)352     inline void SetLastDeploymentStatusMessage(Aws::String&& value) { m_lastDeploymentStatusMessageHasBeenSet = true; m_lastDeploymentStatusMessage = std::move(value); }
353 
354     /**
355      * <p>Describes the status of the last deployment of a stage. Supported only for
356      * stages with autoDeploy enabled.</p>
357      */
SetLastDeploymentStatusMessage(const char * value)358     inline void SetLastDeploymentStatusMessage(const char* value) { m_lastDeploymentStatusMessageHasBeenSet = true; m_lastDeploymentStatusMessage.assign(value); }
359 
360     /**
361      * <p>Describes the status of the last deployment of a stage. Supported only for
362      * stages with autoDeploy enabled.</p>
363      */
WithLastDeploymentStatusMessage(const Aws::String & value)364     inline Stage& WithLastDeploymentStatusMessage(const Aws::String& value) { SetLastDeploymentStatusMessage(value); return *this;}
365 
366     /**
367      * <p>Describes the status of the last deployment of a stage. Supported only for
368      * stages with autoDeploy enabled.</p>
369      */
WithLastDeploymentStatusMessage(Aws::String && value)370     inline Stage& WithLastDeploymentStatusMessage(Aws::String&& value) { SetLastDeploymentStatusMessage(std::move(value)); return *this;}
371 
372     /**
373      * <p>Describes the status of the last deployment of a stage. Supported only for
374      * stages with autoDeploy enabled.</p>
375      */
WithLastDeploymentStatusMessage(const char * value)376     inline Stage& WithLastDeploymentStatusMessage(const char* value) { SetLastDeploymentStatusMessage(value); return *this;}
377 
378 
379     /**
380      * <p>The timestamp when the stage was last updated.</p>
381      */
GetLastUpdatedDate()382     inline const Aws::Utils::DateTime& GetLastUpdatedDate() const{ return m_lastUpdatedDate; }
383 
384     /**
385      * <p>The timestamp when the stage was last updated.</p>
386      */
LastUpdatedDateHasBeenSet()387     inline bool LastUpdatedDateHasBeenSet() const { return m_lastUpdatedDateHasBeenSet; }
388 
389     /**
390      * <p>The timestamp when the stage was last updated.</p>
391      */
SetLastUpdatedDate(const Aws::Utils::DateTime & value)392     inline void SetLastUpdatedDate(const Aws::Utils::DateTime& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = value; }
393 
394     /**
395      * <p>The timestamp when the stage was last updated.</p>
396      */
SetLastUpdatedDate(Aws::Utils::DateTime && value)397     inline void SetLastUpdatedDate(Aws::Utils::DateTime&& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = std::move(value); }
398 
399     /**
400      * <p>The timestamp when the stage was last updated.</p>
401      */
WithLastUpdatedDate(const Aws::Utils::DateTime & value)402     inline Stage& WithLastUpdatedDate(const Aws::Utils::DateTime& value) { SetLastUpdatedDate(value); return *this;}
403 
404     /**
405      * <p>The timestamp when the stage was last updated.</p>
406      */
WithLastUpdatedDate(Aws::Utils::DateTime && value)407     inline Stage& WithLastUpdatedDate(Aws::Utils::DateTime&& value) { SetLastUpdatedDate(std::move(value)); return *this;}
408 
409 
410     /**
411      * <p>Route settings for the stage, by routeKey.</p>
412      */
GetRouteSettings()413     inline const Aws::Map<Aws::String, RouteSettings>& GetRouteSettings() const{ return m_routeSettings; }
414 
415     /**
416      * <p>Route settings for the stage, by routeKey.</p>
417      */
RouteSettingsHasBeenSet()418     inline bool RouteSettingsHasBeenSet() const { return m_routeSettingsHasBeenSet; }
419 
420     /**
421      * <p>Route settings for the stage, by routeKey.</p>
422      */
SetRouteSettings(const Aws::Map<Aws::String,RouteSettings> & value)423     inline void SetRouteSettings(const Aws::Map<Aws::String, RouteSettings>& value) { m_routeSettingsHasBeenSet = true; m_routeSettings = value; }
424 
425     /**
426      * <p>Route settings for the stage, by routeKey.</p>
427      */
SetRouteSettings(Aws::Map<Aws::String,RouteSettings> && value)428     inline void SetRouteSettings(Aws::Map<Aws::String, RouteSettings>&& value) { m_routeSettingsHasBeenSet = true; m_routeSettings = std::move(value); }
429 
430     /**
431      * <p>Route settings for the stage, by routeKey.</p>
432      */
WithRouteSettings(const Aws::Map<Aws::String,RouteSettings> & value)433     inline Stage& WithRouteSettings(const Aws::Map<Aws::String, RouteSettings>& value) { SetRouteSettings(value); return *this;}
434 
435     /**
436      * <p>Route settings for the stage, by routeKey.</p>
437      */
WithRouteSettings(Aws::Map<Aws::String,RouteSettings> && value)438     inline Stage& WithRouteSettings(Aws::Map<Aws::String, RouteSettings>&& value) { SetRouteSettings(std::move(value)); return *this;}
439 
440     /**
441      * <p>Route settings for the stage, by routeKey.</p>
442      */
AddRouteSettings(const Aws::String & key,const RouteSettings & value)443     inline Stage& AddRouteSettings(const Aws::String& key, const RouteSettings& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(key, value); return *this; }
444 
445     /**
446      * <p>Route settings for the stage, by routeKey.</p>
447      */
AddRouteSettings(Aws::String && key,const RouteSettings & value)448     inline Stage& AddRouteSettings(Aws::String&& key, const RouteSettings& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(std::move(key), value); return *this; }
449 
450     /**
451      * <p>Route settings for the stage, by routeKey.</p>
452      */
AddRouteSettings(const Aws::String & key,RouteSettings && value)453     inline Stage& AddRouteSettings(const Aws::String& key, RouteSettings&& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(key, std::move(value)); return *this; }
454 
455     /**
456      * <p>Route settings for the stage, by routeKey.</p>
457      */
AddRouteSettings(Aws::String && key,RouteSettings && value)458     inline Stage& AddRouteSettings(Aws::String&& key, RouteSettings&& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(std::move(key), std::move(value)); return *this; }
459 
460     /**
461      * <p>Route settings for the stage, by routeKey.</p>
462      */
AddRouteSettings(const char * key,RouteSettings && value)463     inline Stage& AddRouteSettings(const char* key, RouteSettings&& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(key, std::move(value)); return *this; }
464 
465     /**
466      * <p>Route settings for the stage, by routeKey.</p>
467      */
AddRouteSettings(const char * key,const RouteSettings & value)468     inline Stage& AddRouteSettings(const char* key, const RouteSettings& value) { m_routeSettingsHasBeenSet = true; m_routeSettings.emplace(key, value); return *this; }
469 
470 
471     /**
472      * <p>The name of the stage.</p>
473      */
GetStageName()474     inline const Aws::String& GetStageName() const{ return m_stageName; }
475 
476     /**
477      * <p>The name of the stage.</p>
478      */
StageNameHasBeenSet()479     inline bool StageNameHasBeenSet() const { return m_stageNameHasBeenSet; }
480 
481     /**
482      * <p>The name of the stage.</p>
483      */
SetStageName(const Aws::String & value)484     inline void SetStageName(const Aws::String& value) { m_stageNameHasBeenSet = true; m_stageName = value; }
485 
486     /**
487      * <p>The name of the stage.</p>
488      */
SetStageName(Aws::String && value)489     inline void SetStageName(Aws::String&& value) { m_stageNameHasBeenSet = true; m_stageName = std::move(value); }
490 
491     /**
492      * <p>The name of the stage.</p>
493      */
SetStageName(const char * value)494     inline void SetStageName(const char* value) { m_stageNameHasBeenSet = true; m_stageName.assign(value); }
495 
496     /**
497      * <p>The name of the stage.</p>
498      */
WithStageName(const Aws::String & value)499     inline Stage& WithStageName(const Aws::String& value) { SetStageName(value); return *this;}
500 
501     /**
502      * <p>The name of the stage.</p>
503      */
WithStageName(Aws::String && value)504     inline Stage& WithStageName(Aws::String&& value) { SetStageName(std::move(value)); return *this;}
505 
506     /**
507      * <p>The name of the stage.</p>
508      */
WithStageName(const char * value)509     inline Stage& WithStageName(const char* value) { SetStageName(value); return *this;}
510 
511 
512     /**
513      * <p>A map that defines the stage variables for a stage resource. Variable names
514      * can have alphanumeric and underscore characters, and the values must match
515      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
516      */
GetStageVariables()517     inline const Aws::Map<Aws::String, Aws::String>& GetStageVariables() const{ return m_stageVariables; }
518 
519     /**
520      * <p>A map that defines the stage variables for a stage resource. Variable names
521      * can have alphanumeric and underscore characters, and the values must match
522      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
523      */
StageVariablesHasBeenSet()524     inline bool StageVariablesHasBeenSet() const { return m_stageVariablesHasBeenSet; }
525 
526     /**
527      * <p>A map that defines the stage variables for a stage resource. Variable names
528      * can have alphanumeric and underscore characters, and the values must match
529      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
530      */
SetStageVariables(const Aws::Map<Aws::String,Aws::String> & value)531     inline void SetStageVariables(const Aws::Map<Aws::String, Aws::String>& value) { m_stageVariablesHasBeenSet = true; m_stageVariables = value; }
532 
533     /**
534      * <p>A map that defines the stage variables for a stage resource. Variable names
535      * can have alphanumeric and underscore characters, and the values must match
536      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
537      */
SetStageVariables(Aws::Map<Aws::String,Aws::String> && value)538     inline void SetStageVariables(Aws::Map<Aws::String, Aws::String>&& value) { m_stageVariablesHasBeenSet = true; m_stageVariables = std::move(value); }
539 
540     /**
541      * <p>A map that defines the stage variables for a stage resource. Variable names
542      * can have alphanumeric and underscore characters, and the values must match
543      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
544      */
WithStageVariables(const Aws::Map<Aws::String,Aws::String> & value)545     inline Stage& WithStageVariables(const Aws::Map<Aws::String, Aws::String>& value) { SetStageVariables(value); return *this;}
546 
547     /**
548      * <p>A map that defines the stage variables for a stage resource. Variable names
549      * can have alphanumeric and underscore characters, and the values must match
550      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
551      */
WithStageVariables(Aws::Map<Aws::String,Aws::String> && value)552     inline Stage& WithStageVariables(Aws::Map<Aws::String, Aws::String>&& value) { SetStageVariables(std::move(value)); return *this;}
553 
554     /**
555      * <p>A map that defines the stage variables for a stage resource. Variable names
556      * can have alphanumeric and underscore characters, and the values must match
557      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
558      */
AddStageVariables(const Aws::String & key,const Aws::String & value)559     inline Stage& AddStageVariables(const Aws::String& key, const Aws::String& value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(key, value); return *this; }
560 
561     /**
562      * <p>A map that defines the stage variables for a stage resource. Variable names
563      * can have alphanumeric and underscore characters, and the values must match
564      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
565      */
AddStageVariables(Aws::String && key,const Aws::String & value)566     inline Stage& AddStageVariables(Aws::String&& key, const Aws::String& value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(std::move(key), value); return *this; }
567 
568     /**
569      * <p>A map that defines the stage variables for a stage resource. Variable names
570      * can have alphanumeric and underscore characters, and the values must match
571      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
572      */
AddStageVariables(const Aws::String & key,Aws::String && value)573     inline Stage& AddStageVariables(const Aws::String& key, Aws::String&& value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(key, std::move(value)); return *this; }
574 
575     /**
576      * <p>A map that defines the stage variables for a stage resource. Variable names
577      * can have alphanumeric and underscore characters, and the values must match
578      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
579      */
AddStageVariables(Aws::String && key,Aws::String && value)580     inline Stage& AddStageVariables(Aws::String&& key, Aws::String&& value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(std::move(key), std::move(value)); return *this; }
581 
582     /**
583      * <p>A map that defines the stage variables for a stage resource. Variable names
584      * can have alphanumeric and underscore characters, and the values must match
585      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
586      */
AddStageVariables(const char * key,Aws::String && value)587     inline Stage& AddStageVariables(const char* key, Aws::String&& value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(key, std::move(value)); return *this; }
588 
589     /**
590      * <p>A map that defines the stage variables for a stage resource. Variable names
591      * can have alphanumeric and underscore characters, and the values must match
592      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
593      */
AddStageVariables(Aws::String && key,const char * value)594     inline Stage& AddStageVariables(Aws::String&& key, const char* value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(std::move(key), value); return *this; }
595 
596     /**
597      * <p>A map that defines the stage variables for a stage resource. Variable names
598      * can have alphanumeric and underscore characters, and the values must match
599      * [A-Za-z0-9-._~:/?#&amp;=,]+.</p>
600      */
AddStageVariables(const char * key,const char * value)601     inline Stage& AddStageVariables(const char* key, const char* value) { m_stageVariablesHasBeenSet = true; m_stageVariables.emplace(key, value); return *this; }
602 
603 
604     /**
605      * <p>The collection of tags. Each tag element is associated with a given
606      * resource.</p>
607      */
GetTags()608     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
609 
610     /**
611      * <p>The collection of tags. Each tag element is associated with a given
612      * resource.</p>
613      */
TagsHasBeenSet()614     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
615 
616     /**
617      * <p>The collection of tags. Each tag element is associated with a given
618      * resource.</p>
619      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)620     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
621 
622     /**
623      * <p>The collection of tags. Each tag element is associated with a given
624      * resource.</p>
625      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)626     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
627 
628     /**
629      * <p>The collection of tags. Each tag element is associated with a given
630      * resource.</p>
631      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)632     inline Stage& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
633 
634     /**
635      * <p>The collection of tags. Each tag element is associated with a given
636      * resource.</p>
637      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)638     inline Stage& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
639 
640     /**
641      * <p>The collection of tags. Each tag element is associated with a given
642      * resource.</p>
643      */
AddTags(const Aws::String & key,const Aws::String & value)644     inline Stage& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
645 
646     /**
647      * <p>The collection of tags. Each tag element is associated with a given
648      * resource.</p>
649      */
AddTags(Aws::String && key,const Aws::String & value)650     inline Stage& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
651 
652     /**
653      * <p>The collection of tags. Each tag element is associated with a given
654      * resource.</p>
655      */
AddTags(const Aws::String & key,Aws::String && value)656     inline Stage& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
657 
658     /**
659      * <p>The collection of tags. Each tag element is associated with a given
660      * resource.</p>
661      */
AddTags(Aws::String && key,Aws::String && value)662     inline Stage& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
663 
664     /**
665      * <p>The collection of tags. Each tag element is associated with a given
666      * resource.</p>
667      */
AddTags(const char * key,Aws::String && value)668     inline Stage& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
669 
670     /**
671      * <p>The collection of tags. Each tag element is associated with a given
672      * resource.</p>
673      */
AddTags(Aws::String && key,const char * value)674     inline Stage& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
675 
676     /**
677      * <p>The collection of tags. Each tag element is associated with a given
678      * resource.</p>
679      */
AddTags(const char * key,const char * value)680     inline Stage& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
681 
682   private:
683 
684     AccessLogSettings m_accessLogSettings;
685     bool m_accessLogSettingsHasBeenSet;
686 
687     bool m_apiGatewayManaged;
688     bool m_apiGatewayManagedHasBeenSet;
689 
690     bool m_autoDeploy;
691     bool m_autoDeployHasBeenSet;
692 
693     Aws::String m_clientCertificateId;
694     bool m_clientCertificateIdHasBeenSet;
695 
696     Aws::Utils::DateTime m_createdDate;
697     bool m_createdDateHasBeenSet;
698 
699     RouteSettings m_defaultRouteSettings;
700     bool m_defaultRouteSettingsHasBeenSet;
701 
702     Aws::String m_deploymentId;
703     bool m_deploymentIdHasBeenSet;
704 
705     Aws::String m_description;
706     bool m_descriptionHasBeenSet;
707 
708     Aws::String m_lastDeploymentStatusMessage;
709     bool m_lastDeploymentStatusMessageHasBeenSet;
710 
711     Aws::Utils::DateTime m_lastUpdatedDate;
712     bool m_lastUpdatedDateHasBeenSet;
713 
714     Aws::Map<Aws::String, RouteSettings> m_routeSettings;
715     bool m_routeSettingsHasBeenSet;
716 
717     Aws::String m_stageName;
718     bool m_stageNameHasBeenSet;
719 
720     Aws::Map<Aws::String, Aws::String> m_stageVariables;
721     bool m_stageVariablesHasBeenSet;
722 
723     Aws::Map<Aws::String, Aws::String> m_tags;
724     bool m_tagsHasBeenSet;
725   };
726 
727 } // namespace Model
728 } // namespace ApiGatewayV2
729 } // namespace Aws
730