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/apigateway/APIGateway_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/apigateway/model/CacheClusterSize.h>
10 #include <aws/apigateway/model/CacheClusterStatus.h>
11 #include <aws/core/utils/memory/stl/AWSMap.h>
12 #include <aws/apigateway/model/AccessLogSettings.h>
13 #include <aws/apigateway/model/CanarySettings.h>
14 #include <aws/core/utils/DateTime.h>
15 #include <aws/apigateway/model/MethodSetting.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace Utils
21 {
22 namespace Json
23 {
24   class JsonValue;
25   class JsonView;
26 } // namespace Json
27 } // namespace Utils
28 namespace APIGateway
29 {
30 namespace Model
31 {
32 
33   /**
34    * <p>Represents a unique identifier for a version of a deployed <a>RestApi</a>
35    * that is callable by users.</p> <div class="seeAlso"> <a
36    * href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html">Deploy
37    * an API</a> </div><p><h3>See Also:</h3>   <a
38    * href="http://docs.aws.amazon.com/goto/WebAPI/apigateway-2015-07-09/Stage">AWS
39    * API Reference</a></p>
40    */
41   class AWS_APIGATEWAY_API Stage
42   {
43   public:
44     Stage();
45     Stage(Aws::Utils::Json::JsonView jsonValue);
46     Stage& operator=(Aws::Utils::Json::JsonView jsonValue);
47     Aws::Utils::Json::JsonValue Jsonize() const;
48 
49 
50     /**
51      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
52      */
GetDeploymentId()53     inline const Aws::String& GetDeploymentId() const{ return m_deploymentId; }
54 
55     /**
56      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
57      */
DeploymentIdHasBeenSet()58     inline bool DeploymentIdHasBeenSet() const { return m_deploymentIdHasBeenSet; }
59 
60     /**
61      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
62      */
SetDeploymentId(const Aws::String & value)63     inline void SetDeploymentId(const Aws::String& value) { m_deploymentIdHasBeenSet = true; m_deploymentId = value; }
64 
65     /**
66      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
67      */
SetDeploymentId(Aws::String && value)68     inline void SetDeploymentId(Aws::String&& value) { m_deploymentIdHasBeenSet = true; m_deploymentId = std::move(value); }
69 
70     /**
71      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
72      */
SetDeploymentId(const char * value)73     inline void SetDeploymentId(const char* value) { m_deploymentIdHasBeenSet = true; m_deploymentId.assign(value); }
74 
75     /**
76      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
77      */
WithDeploymentId(const Aws::String & value)78     inline Stage& WithDeploymentId(const Aws::String& value) { SetDeploymentId(value); return *this;}
79 
80     /**
81      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
82      */
WithDeploymentId(Aws::String && value)83     inline Stage& WithDeploymentId(Aws::String&& value) { SetDeploymentId(std::move(value)); return *this;}
84 
85     /**
86      * <p>The identifier of the <a>Deployment</a> that the stage points to.</p>
87      */
WithDeploymentId(const char * value)88     inline Stage& WithDeploymentId(const char* value) { SetDeploymentId(value); return *this;}
89 
90 
91     /**
92      * <p>The identifier of a client certificate for an API stage.</p>
93      */
GetClientCertificateId()94     inline const Aws::String& GetClientCertificateId() const{ return m_clientCertificateId; }
95 
96     /**
97      * <p>The identifier of a client certificate for an API stage.</p>
98      */
ClientCertificateIdHasBeenSet()99     inline bool ClientCertificateIdHasBeenSet() const { return m_clientCertificateIdHasBeenSet; }
100 
101     /**
102      * <p>The identifier of a client certificate for an API stage.</p>
103      */
SetClientCertificateId(const Aws::String & value)104     inline void SetClientCertificateId(const Aws::String& value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId = value; }
105 
106     /**
107      * <p>The identifier of a client certificate for an API stage.</p>
108      */
SetClientCertificateId(Aws::String && value)109     inline void SetClientCertificateId(Aws::String&& value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId = std::move(value); }
110 
111     /**
112      * <p>The identifier of a client certificate for an API stage.</p>
113      */
SetClientCertificateId(const char * value)114     inline void SetClientCertificateId(const char* value) { m_clientCertificateIdHasBeenSet = true; m_clientCertificateId.assign(value); }
115 
116     /**
117      * <p>The identifier of a client certificate for an API stage.</p>
118      */
WithClientCertificateId(const Aws::String & value)119     inline Stage& WithClientCertificateId(const Aws::String& value) { SetClientCertificateId(value); return *this;}
120 
121     /**
122      * <p>The identifier of a client certificate for an API stage.</p>
123      */
WithClientCertificateId(Aws::String && value)124     inline Stage& WithClientCertificateId(Aws::String&& value) { SetClientCertificateId(std::move(value)); return *this;}
125 
126     /**
127      * <p>The identifier of a client certificate for an API stage.</p>
128      */
WithClientCertificateId(const char * value)129     inline Stage& WithClientCertificateId(const char* value) { SetClientCertificateId(value); return *this;}
130 
131 
132     /**
133      * <p>The name of the stage is the first path segment in the Uniform Resource
134      * Identifier (URI) of a call to API Gateway. Stage names can only contain
135      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
136      * characters.</p>
137      */
GetStageName()138     inline const Aws::String& GetStageName() const{ return m_stageName; }
139 
140     /**
141      * <p>The name of the stage is the first path segment in the Uniform Resource
142      * Identifier (URI) of a call to API Gateway. Stage names can only contain
143      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
144      * characters.</p>
145      */
StageNameHasBeenSet()146     inline bool StageNameHasBeenSet() const { return m_stageNameHasBeenSet; }
147 
148     /**
149      * <p>The name of the stage is the first path segment in the Uniform Resource
150      * Identifier (URI) of a call to API Gateway. Stage names can only contain
151      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
152      * characters.</p>
153      */
SetStageName(const Aws::String & value)154     inline void SetStageName(const Aws::String& value) { m_stageNameHasBeenSet = true; m_stageName = value; }
155 
156     /**
157      * <p>The name of the stage is the first path segment in the Uniform Resource
158      * Identifier (URI) of a call to API Gateway. Stage names can only contain
159      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
160      * characters.</p>
161      */
SetStageName(Aws::String && value)162     inline void SetStageName(Aws::String&& value) { m_stageNameHasBeenSet = true; m_stageName = std::move(value); }
163 
164     /**
165      * <p>The name of the stage is the first path segment in the Uniform Resource
166      * Identifier (URI) of a call to API Gateway. Stage names can only contain
167      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
168      * characters.</p>
169      */
SetStageName(const char * value)170     inline void SetStageName(const char* value) { m_stageNameHasBeenSet = true; m_stageName.assign(value); }
171 
172     /**
173      * <p>The name of the stage is the first path segment in the Uniform Resource
174      * Identifier (URI) of a call to API Gateway. Stage names can only contain
175      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
176      * characters.</p>
177      */
WithStageName(const Aws::String & value)178     inline Stage& WithStageName(const Aws::String& value) { SetStageName(value); return *this;}
179 
180     /**
181      * <p>The name of the stage is the first path segment in the Uniform Resource
182      * Identifier (URI) of a call to API Gateway. Stage names can only contain
183      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
184      * characters.</p>
185      */
WithStageName(Aws::String && value)186     inline Stage& WithStageName(Aws::String&& value) { SetStageName(std::move(value)); return *this;}
187 
188     /**
189      * <p>The name of the stage is the first path segment in the Uniform Resource
190      * Identifier (URI) of a call to API Gateway. Stage names can only contain
191      * alphanumeric characters, hyphens, and underscores. Maximum length is 128
192      * characters.</p>
193      */
WithStageName(const char * value)194     inline Stage& WithStageName(const char* value) { SetStageName(value); return *this;}
195 
196 
197     /**
198      * <p>The stage's description.</p>
199      */
GetDescription()200     inline const Aws::String& GetDescription() const{ return m_description; }
201 
202     /**
203      * <p>The stage's description.</p>
204      */
DescriptionHasBeenSet()205     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
206 
207     /**
208      * <p>The stage's description.</p>
209      */
SetDescription(const Aws::String & value)210     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
211 
212     /**
213      * <p>The stage's description.</p>
214      */
SetDescription(Aws::String && value)215     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
216 
217     /**
218      * <p>The stage's description.</p>
219      */
SetDescription(const char * value)220     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
221 
222     /**
223      * <p>The stage's description.</p>
224      */
WithDescription(const Aws::String & value)225     inline Stage& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
226 
227     /**
228      * <p>The stage's description.</p>
229      */
WithDescription(Aws::String && value)230     inline Stage& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
231 
232     /**
233      * <p>The stage's description.</p>
234      */
WithDescription(const char * value)235     inline Stage& WithDescription(const char* value) { SetDescription(value); return *this;}
236 
237 
238     /**
239      * <p>Specifies whether a cache cluster is enabled for the stage.</p>
240      */
GetCacheClusterEnabled()241     inline bool GetCacheClusterEnabled() const{ return m_cacheClusterEnabled; }
242 
243     /**
244      * <p>Specifies whether a cache cluster is enabled for the stage.</p>
245      */
CacheClusterEnabledHasBeenSet()246     inline bool CacheClusterEnabledHasBeenSet() const { return m_cacheClusterEnabledHasBeenSet; }
247 
248     /**
249      * <p>Specifies whether a cache cluster is enabled for the stage.</p>
250      */
SetCacheClusterEnabled(bool value)251     inline void SetCacheClusterEnabled(bool value) { m_cacheClusterEnabledHasBeenSet = true; m_cacheClusterEnabled = value; }
252 
253     /**
254      * <p>Specifies whether a cache cluster is enabled for the stage.</p>
255      */
WithCacheClusterEnabled(bool value)256     inline Stage& WithCacheClusterEnabled(bool value) { SetCacheClusterEnabled(value); return *this;}
257 
258 
259     /**
260      * <p>The size of the cache cluster for the stage, if enabled.</p>
261      */
GetCacheClusterSize()262     inline const CacheClusterSize& GetCacheClusterSize() const{ return m_cacheClusterSize; }
263 
264     /**
265      * <p>The size of the cache cluster for the stage, if enabled.</p>
266      */
CacheClusterSizeHasBeenSet()267     inline bool CacheClusterSizeHasBeenSet() const { return m_cacheClusterSizeHasBeenSet; }
268 
269     /**
270      * <p>The size of the cache cluster for the stage, if enabled.</p>
271      */
SetCacheClusterSize(const CacheClusterSize & value)272     inline void SetCacheClusterSize(const CacheClusterSize& value) { m_cacheClusterSizeHasBeenSet = true; m_cacheClusterSize = value; }
273 
274     /**
275      * <p>The size of the cache cluster for the stage, if enabled.</p>
276      */
SetCacheClusterSize(CacheClusterSize && value)277     inline void SetCacheClusterSize(CacheClusterSize&& value) { m_cacheClusterSizeHasBeenSet = true; m_cacheClusterSize = std::move(value); }
278 
279     /**
280      * <p>The size of the cache cluster for the stage, if enabled.</p>
281      */
WithCacheClusterSize(const CacheClusterSize & value)282     inline Stage& WithCacheClusterSize(const CacheClusterSize& value) { SetCacheClusterSize(value); return *this;}
283 
284     /**
285      * <p>The size of the cache cluster for the stage, if enabled.</p>
286      */
WithCacheClusterSize(CacheClusterSize && value)287     inline Stage& WithCacheClusterSize(CacheClusterSize&& value) { SetCacheClusterSize(std::move(value)); return *this;}
288 
289 
290     /**
291      * <p>The status of the cache cluster for the stage, if enabled.</p>
292      */
GetCacheClusterStatus()293     inline const CacheClusterStatus& GetCacheClusterStatus() const{ return m_cacheClusterStatus; }
294 
295     /**
296      * <p>The status of the cache cluster for the stage, if enabled.</p>
297      */
CacheClusterStatusHasBeenSet()298     inline bool CacheClusterStatusHasBeenSet() const { return m_cacheClusterStatusHasBeenSet; }
299 
300     /**
301      * <p>The status of the cache cluster for the stage, if enabled.</p>
302      */
SetCacheClusterStatus(const CacheClusterStatus & value)303     inline void SetCacheClusterStatus(const CacheClusterStatus& value) { m_cacheClusterStatusHasBeenSet = true; m_cacheClusterStatus = value; }
304 
305     /**
306      * <p>The status of the cache cluster for the stage, if enabled.</p>
307      */
SetCacheClusterStatus(CacheClusterStatus && value)308     inline void SetCacheClusterStatus(CacheClusterStatus&& value) { m_cacheClusterStatusHasBeenSet = true; m_cacheClusterStatus = std::move(value); }
309 
310     /**
311      * <p>The status of the cache cluster for the stage, if enabled.</p>
312      */
WithCacheClusterStatus(const CacheClusterStatus & value)313     inline Stage& WithCacheClusterStatus(const CacheClusterStatus& value) { SetCacheClusterStatus(value); return *this;}
314 
315     /**
316      * <p>The status of the cache cluster for the stage, if enabled.</p>
317      */
WithCacheClusterStatus(CacheClusterStatus && value)318     inline Stage& WithCacheClusterStatus(CacheClusterStatus&& value) { SetCacheClusterStatus(std::move(value)); return *this;}
319 
320 
321     /**
322      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
323      * (designated as <code>/{method_setting_key</code> below) are method paths defined
324      * as <code>{resource_path}/{http_method}</code> for an individual method override,
325      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
326      */
GetMethodSettings()327     inline const Aws::Map<Aws::String, MethodSetting>& GetMethodSettings() const{ return m_methodSettings; }
328 
329     /**
330      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
331      * (designated as <code>/{method_setting_key</code> below) are method paths defined
332      * as <code>{resource_path}/{http_method}</code> for an individual method override,
333      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
334      */
MethodSettingsHasBeenSet()335     inline bool MethodSettingsHasBeenSet() const { return m_methodSettingsHasBeenSet; }
336 
337     /**
338      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
339      * (designated as <code>/{method_setting_key</code> below) are method paths defined
340      * as <code>{resource_path}/{http_method}</code> for an individual method override,
341      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
342      */
SetMethodSettings(const Aws::Map<Aws::String,MethodSetting> & value)343     inline void SetMethodSettings(const Aws::Map<Aws::String, MethodSetting>& value) { m_methodSettingsHasBeenSet = true; m_methodSettings = value; }
344 
345     /**
346      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
347      * (designated as <code>/{method_setting_key</code> below) are method paths defined
348      * as <code>{resource_path}/{http_method}</code> for an individual method override,
349      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
350      */
SetMethodSettings(Aws::Map<Aws::String,MethodSetting> && value)351     inline void SetMethodSettings(Aws::Map<Aws::String, MethodSetting>&& value) { m_methodSettingsHasBeenSet = true; m_methodSettings = std::move(value); }
352 
353     /**
354      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
355      * (designated as <code>/{method_setting_key</code> below) are method paths defined
356      * as <code>{resource_path}/{http_method}</code> for an individual method override,
357      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
358      */
WithMethodSettings(const Aws::Map<Aws::String,MethodSetting> & value)359     inline Stage& WithMethodSettings(const Aws::Map<Aws::String, MethodSetting>& value) { SetMethodSettings(value); return *this;}
360 
361     /**
362      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
363      * (designated as <code>/{method_setting_key</code> below) are method paths defined
364      * as <code>{resource_path}/{http_method}</code> for an individual method override,
365      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
366      */
WithMethodSettings(Aws::Map<Aws::String,MethodSetting> && value)367     inline Stage& WithMethodSettings(Aws::Map<Aws::String, MethodSetting>&& value) { SetMethodSettings(std::move(value)); return *this;}
368 
369     /**
370      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
371      * (designated as <code>/{method_setting_key</code> below) are method paths defined
372      * as <code>{resource_path}/{http_method}</code> for an individual method override,
373      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
374      */
AddMethodSettings(const Aws::String & key,const MethodSetting & value)375     inline Stage& AddMethodSettings(const Aws::String& key, const MethodSetting& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(key, value); return *this; }
376 
377     /**
378      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
379      * (designated as <code>/{method_setting_key</code> below) are method paths defined
380      * as <code>{resource_path}/{http_method}</code> for an individual method override,
381      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
382      */
AddMethodSettings(Aws::String && key,const MethodSetting & value)383     inline Stage& AddMethodSettings(Aws::String&& key, const MethodSetting& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(std::move(key), value); return *this; }
384 
385     /**
386      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
387      * (designated as <code>/{method_setting_key</code> below) are method paths defined
388      * as <code>{resource_path}/{http_method}</code> for an individual method override,
389      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
390      */
AddMethodSettings(const Aws::String & key,MethodSetting && value)391     inline Stage& AddMethodSettings(const Aws::String& key, MethodSetting&& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(key, std::move(value)); return *this; }
392 
393     /**
394      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
395      * (designated as <code>/{method_setting_key</code> below) are method paths defined
396      * as <code>{resource_path}/{http_method}</code> for an individual method override,
397      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
398      */
AddMethodSettings(Aws::String && key,MethodSetting && value)399     inline Stage& AddMethodSettings(Aws::String&& key, MethodSetting&& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(std::move(key), std::move(value)); return *this; }
400 
401     /**
402      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
403      * (designated as <code>/{method_setting_key</code> below) are method paths defined
404      * as <code>{resource_path}/{http_method}</code> for an individual method override,
405      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
406      */
AddMethodSettings(const char * key,MethodSetting && value)407     inline Stage& AddMethodSettings(const char* key, MethodSetting&& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(key, std::move(value)); return *this; }
408 
409     /**
410      * <p>A map that defines the method settings for a <a>Stage</a> resource. Keys
411      * (designated as <code>/{method_setting_key</code> below) are method paths defined
412      * as <code>{resource_path}/{http_method}</code> for an individual method override,
413      * or <code>/\* /\*</code> for overriding all methods in the stage. </p>
414      */
AddMethodSettings(const char * key,const MethodSetting & value)415     inline Stage& AddMethodSettings(const char* key, const MethodSetting& value) { m_methodSettingsHasBeenSet = true; m_methodSettings.emplace(key, value); return *this; }
416 
417 
418     /**
419      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
420      * names can have alphanumeric and underscore characters, and the values must match
421      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
422      */
GetVariables()423     inline const Aws::Map<Aws::String, Aws::String>& GetVariables() const{ return m_variables; }
424 
425     /**
426      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
427      * names can have alphanumeric and underscore characters, and the values must match
428      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
429      */
VariablesHasBeenSet()430     inline bool VariablesHasBeenSet() const { return m_variablesHasBeenSet; }
431 
432     /**
433      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
434      * names can have alphanumeric and underscore characters, and the values must match
435      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
436      */
SetVariables(const Aws::Map<Aws::String,Aws::String> & value)437     inline void SetVariables(const Aws::Map<Aws::String, Aws::String>& value) { m_variablesHasBeenSet = true; m_variables = value; }
438 
439     /**
440      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
441      * names can have alphanumeric and underscore characters, and the values must match
442      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
443      */
SetVariables(Aws::Map<Aws::String,Aws::String> && value)444     inline void SetVariables(Aws::Map<Aws::String, Aws::String>&& value) { m_variablesHasBeenSet = true; m_variables = std::move(value); }
445 
446     /**
447      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
448      * names can have alphanumeric and underscore characters, and the values must match
449      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
450      */
WithVariables(const Aws::Map<Aws::String,Aws::String> & value)451     inline Stage& WithVariables(const Aws::Map<Aws::String, Aws::String>& value) { SetVariables(value); return *this;}
452 
453     /**
454      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
455      * names can have alphanumeric and underscore characters, and the values must match
456      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
457      */
WithVariables(Aws::Map<Aws::String,Aws::String> && value)458     inline Stage& WithVariables(Aws::Map<Aws::String, Aws::String>&& value) { SetVariables(std::move(value)); return *this;}
459 
460     /**
461      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
462      * names can have alphanumeric and underscore characters, and the values must match
463      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
464      */
AddVariables(const Aws::String & key,const Aws::String & value)465     inline Stage& AddVariables(const Aws::String& key, const Aws::String& value) { m_variablesHasBeenSet = true; m_variables.emplace(key, value); return *this; }
466 
467     /**
468      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
469      * names can have alphanumeric and underscore characters, and the values must match
470      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
471      */
AddVariables(Aws::String && key,const Aws::String & value)472     inline Stage& AddVariables(Aws::String&& key, const Aws::String& value) { m_variablesHasBeenSet = true; m_variables.emplace(std::move(key), value); return *this; }
473 
474     /**
475      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
476      * names can have alphanumeric and underscore characters, and the values must match
477      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
478      */
AddVariables(const Aws::String & key,Aws::String && value)479     inline Stage& AddVariables(const Aws::String& key, Aws::String&& value) { m_variablesHasBeenSet = true; m_variables.emplace(key, std::move(value)); return *this; }
480 
481     /**
482      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
483      * names can have alphanumeric and underscore characters, and the values must match
484      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
485      */
AddVariables(Aws::String && key,Aws::String && value)486     inline Stage& AddVariables(Aws::String&& key, Aws::String&& value) { m_variablesHasBeenSet = true; m_variables.emplace(std::move(key), std::move(value)); return *this; }
487 
488     /**
489      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
490      * names can have alphanumeric and underscore characters, and the values must match
491      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
492      */
AddVariables(const char * key,Aws::String && value)493     inline Stage& AddVariables(const char* key, Aws::String&& value) { m_variablesHasBeenSet = true; m_variables.emplace(key, std::move(value)); return *this; }
494 
495     /**
496      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
497      * names can have alphanumeric and underscore characters, and the values must match
498      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
499      */
AddVariables(Aws::String && key,const char * value)500     inline Stage& AddVariables(Aws::String&& key, const char* value) { m_variablesHasBeenSet = true; m_variables.emplace(std::move(key), value); return *this; }
501 
502     /**
503      * <p>A map that defines the stage variables for a <a>Stage</a> resource. Variable
504      * names can have alphanumeric and underscore characters, and the values must match
505      * <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.</p>
506      */
AddVariables(const char * key,const char * value)507     inline Stage& AddVariables(const char* key, const char* value) { m_variablesHasBeenSet = true; m_variables.emplace(key, value); return *this; }
508 
509 
510     /**
511      * <p>The version of the associated API documentation.</p>
512      */
GetDocumentationVersion()513     inline const Aws::String& GetDocumentationVersion() const{ return m_documentationVersion; }
514 
515     /**
516      * <p>The version of the associated API documentation.</p>
517      */
DocumentationVersionHasBeenSet()518     inline bool DocumentationVersionHasBeenSet() const { return m_documentationVersionHasBeenSet; }
519 
520     /**
521      * <p>The version of the associated API documentation.</p>
522      */
SetDocumentationVersion(const Aws::String & value)523     inline void SetDocumentationVersion(const Aws::String& value) { m_documentationVersionHasBeenSet = true; m_documentationVersion = value; }
524 
525     /**
526      * <p>The version of the associated API documentation.</p>
527      */
SetDocumentationVersion(Aws::String && value)528     inline void SetDocumentationVersion(Aws::String&& value) { m_documentationVersionHasBeenSet = true; m_documentationVersion = std::move(value); }
529 
530     /**
531      * <p>The version of the associated API documentation.</p>
532      */
SetDocumentationVersion(const char * value)533     inline void SetDocumentationVersion(const char* value) { m_documentationVersionHasBeenSet = true; m_documentationVersion.assign(value); }
534 
535     /**
536      * <p>The version of the associated API documentation.</p>
537      */
WithDocumentationVersion(const Aws::String & value)538     inline Stage& WithDocumentationVersion(const Aws::String& value) { SetDocumentationVersion(value); return *this;}
539 
540     /**
541      * <p>The version of the associated API documentation.</p>
542      */
WithDocumentationVersion(Aws::String && value)543     inline Stage& WithDocumentationVersion(Aws::String&& value) { SetDocumentationVersion(std::move(value)); return *this;}
544 
545     /**
546      * <p>The version of the associated API documentation.</p>
547      */
WithDocumentationVersion(const char * value)548     inline Stage& WithDocumentationVersion(const char* value) { SetDocumentationVersion(value); return *this;}
549 
550 
551     /**
552      * <p>Settings for logging access in this stage.</p>
553      */
GetAccessLogSettings()554     inline const AccessLogSettings& GetAccessLogSettings() const{ return m_accessLogSettings; }
555 
556     /**
557      * <p>Settings for logging access in this stage.</p>
558      */
AccessLogSettingsHasBeenSet()559     inline bool AccessLogSettingsHasBeenSet() const { return m_accessLogSettingsHasBeenSet; }
560 
561     /**
562      * <p>Settings for logging access in this stage.</p>
563      */
SetAccessLogSettings(const AccessLogSettings & value)564     inline void SetAccessLogSettings(const AccessLogSettings& value) { m_accessLogSettingsHasBeenSet = true; m_accessLogSettings = value; }
565 
566     /**
567      * <p>Settings for logging access in this stage.</p>
568      */
SetAccessLogSettings(AccessLogSettings && value)569     inline void SetAccessLogSettings(AccessLogSettings&& value) { m_accessLogSettingsHasBeenSet = true; m_accessLogSettings = std::move(value); }
570 
571     /**
572      * <p>Settings for logging access in this stage.</p>
573      */
WithAccessLogSettings(const AccessLogSettings & value)574     inline Stage& WithAccessLogSettings(const AccessLogSettings& value) { SetAccessLogSettings(value); return *this;}
575 
576     /**
577      * <p>Settings for logging access in this stage.</p>
578      */
WithAccessLogSettings(AccessLogSettings && value)579     inline Stage& WithAccessLogSettings(AccessLogSettings&& value) { SetAccessLogSettings(std::move(value)); return *this;}
580 
581 
582     /**
583      * <p>Settings for the canary deployment in this stage.</p>
584      */
GetCanarySettings()585     inline const CanarySettings& GetCanarySettings() const{ return m_canarySettings; }
586 
587     /**
588      * <p>Settings for the canary deployment in this stage.</p>
589      */
CanarySettingsHasBeenSet()590     inline bool CanarySettingsHasBeenSet() const { return m_canarySettingsHasBeenSet; }
591 
592     /**
593      * <p>Settings for the canary deployment in this stage.</p>
594      */
SetCanarySettings(const CanarySettings & value)595     inline void SetCanarySettings(const CanarySettings& value) { m_canarySettingsHasBeenSet = true; m_canarySettings = value; }
596 
597     /**
598      * <p>Settings for the canary deployment in this stage.</p>
599      */
SetCanarySettings(CanarySettings && value)600     inline void SetCanarySettings(CanarySettings&& value) { m_canarySettingsHasBeenSet = true; m_canarySettings = std::move(value); }
601 
602     /**
603      * <p>Settings for the canary deployment in this stage.</p>
604      */
WithCanarySettings(const CanarySettings & value)605     inline Stage& WithCanarySettings(const CanarySettings& value) { SetCanarySettings(value); return *this;}
606 
607     /**
608      * <p>Settings for the canary deployment in this stage.</p>
609      */
WithCanarySettings(CanarySettings && value)610     inline Stage& WithCanarySettings(CanarySettings&& value) { SetCanarySettings(std::move(value)); return *this;}
611 
612 
613     /**
614      * <p>Specifies whether active tracing with X-ray is enabled for the
615      * <a>Stage</a>.</p>
616      */
GetTracingEnabled()617     inline bool GetTracingEnabled() const{ return m_tracingEnabled; }
618 
619     /**
620      * <p>Specifies whether active tracing with X-ray is enabled for the
621      * <a>Stage</a>.</p>
622      */
TracingEnabledHasBeenSet()623     inline bool TracingEnabledHasBeenSet() const { return m_tracingEnabledHasBeenSet; }
624 
625     /**
626      * <p>Specifies whether active tracing with X-ray is enabled for the
627      * <a>Stage</a>.</p>
628      */
SetTracingEnabled(bool value)629     inline void SetTracingEnabled(bool value) { m_tracingEnabledHasBeenSet = true; m_tracingEnabled = value; }
630 
631     /**
632      * <p>Specifies whether active tracing with X-ray is enabled for the
633      * <a>Stage</a>.</p>
634      */
WithTracingEnabled(bool value)635     inline Stage& WithTracingEnabled(bool value) { SetTracingEnabled(value); return *this;}
636 
637 
638     /**
639      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
640      */
GetWebAclArn()641     inline const Aws::String& GetWebAclArn() const{ return m_webAclArn; }
642 
643     /**
644      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
645      */
WebAclArnHasBeenSet()646     inline bool WebAclArnHasBeenSet() const { return m_webAclArnHasBeenSet; }
647 
648     /**
649      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
650      */
SetWebAclArn(const Aws::String & value)651     inline void SetWebAclArn(const Aws::String& value) { m_webAclArnHasBeenSet = true; m_webAclArn = value; }
652 
653     /**
654      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
655      */
SetWebAclArn(Aws::String && value)656     inline void SetWebAclArn(Aws::String&& value) { m_webAclArnHasBeenSet = true; m_webAclArn = std::move(value); }
657 
658     /**
659      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
660      */
SetWebAclArn(const char * value)661     inline void SetWebAclArn(const char* value) { m_webAclArnHasBeenSet = true; m_webAclArn.assign(value); }
662 
663     /**
664      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
665      */
WithWebAclArn(const Aws::String & value)666     inline Stage& WithWebAclArn(const Aws::String& value) { SetWebAclArn(value); return *this;}
667 
668     /**
669      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
670      */
WithWebAclArn(Aws::String && value)671     inline Stage& WithWebAclArn(Aws::String&& value) { SetWebAclArn(std::move(value)); return *this;}
672 
673     /**
674      * <p>The ARN of the WebAcl associated with the <a>Stage</a>.</p>
675      */
WithWebAclArn(const char * value)676     inline Stage& WithWebAclArn(const char* value) { SetWebAclArn(value); return *this;}
677 
678 
679     /**
680      * <p>The collection of tags. Each tag element is associated with a given
681      * resource.</p>
682      */
GetTags()683     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
684 
685     /**
686      * <p>The collection of tags. Each tag element is associated with a given
687      * resource.</p>
688      */
TagsHasBeenSet()689     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
690 
691     /**
692      * <p>The collection of tags. Each tag element is associated with a given
693      * resource.</p>
694      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)695     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
696 
697     /**
698      * <p>The collection of tags. Each tag element is associated with a given
699      * resource.</p>
700      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)701     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
702 
703     /**
704      * <p>The collection of tags. Each tag element is associated with a given
705      * resource.</p>
706      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)707     inline Stage& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
708 
709     /**
710      * <p>The collection of tags. Each tag element is associated with a given
711      * resource.</p>
712      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)713     inline Stage& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
714 
715     /**
716      * <p>The collection of tags. Each tag element is associated with a given
717      * resource.</p>
718      */
AddTags(const Aws::String & key,const Aws::String & value)719     inline Stage& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
720 
721     /**
722      * <p>The collection of tags. Each tag element is associated with a given
723      * resource.</p>
724      */
AddTags(Aws::String && key,const Aws::String & value)725     inline Stage& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
726 
727     /**
728      * <p>The collection of tags. Each tag element is associated with a given
729      * resource.</p>
730      */
AddTags(const Aws::String & key,Aws::String && value)731     inline Stage& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
732 
733     /**
734      * <p>The collection of tags. Each tag element is associated with a given
735      * resource.</p>
736      */
AddTags(Aws::String && key,Aws::String && value)737     inline Stage& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
738 
739     /**
740      * <p>The collection of tags. Each tag element is associated with a given
741      * resource.</p>
742      */
AddTags(const char * key,Aws::String && value)743     inline Stage& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
744 
745     /**
746      * <p>The collection of tags. Each tag element is associated with a given
747      * resource.</p>
748      */
AddTags(Aws::String && key,const char * value)749     inline Stage& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
750 
751     /**
752      * <p>The collection of tags. Each tag element is associated with a given
753      * resource.</p>
754      */
AddTags(const char * key,const char * value)755     inline Stage& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
756 
757 
758     /**
759      * <p>The timestamp when the stage was created.</p>
760      */
GetCreatedDate()761     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
762 
763     /**
764      * <p>The timestamp when the stage was created.</p>
765      */
CreatedDateHasBeenSet()766     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
767 
768     /**
769      * <p>The timestamp when the stage was created.</p>
770      */
SetCreatedDate(const Aws::Utils::DateTime & value)771     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
772 
773     /**
774      * <p>The timestamp when the stage was created.</p>
775      */
SetCreatedDate(Aws::Utils::DateTime && value)776     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
777 
778     /**
779      * <p>The timestamp when the stage was created.</p>
780      */
WithCreatedDate(const Aws::Utils::DateTime & value)781     inline Stage& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
782 
783     /**
784      * <p>The timestamp when the stage was created.</p>
785      */
WithCreatedDate(Aws::Utils::DateTime && value)786     inline Stage& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
787 
788 
789     /**
790      * <p>The timestamp when the stage last updated.</p>
791      */
GetLastUpdatedDate()792     inline const Aws::Utils::DateTime& GetLastUpdatedDate() const{ return m_lastUpdatedDate; }
793 
794     /**
795      * <p>The timestamp when the stage last updated.</p>
796      */
LastUpdatedDateHasBeenSet()797     inline bool LastUpdatedDateHasBeenSet() const { return m_lastUpdatedDateHasBeenSet; }
798 
799     /**
800      * <p>The timestamp when the stage last updated.</p>
801      */
SetLastUpdatedDate(const Aws::Utils::DateTime & value)802     inline void SetLastUpdatedDate(const Aws::Utils::DateTime& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = value; }
803 
804     /**
805      * <p>The timestamp when the stage last updated.</p>
806      */
SetLastUpdatedDate(Aws::Utils::DateTime && value)807     inline void SetLastUpdatedDate(Aws::Utils::DateTime&& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = std::move(value); }
808 
809     /**
810      * <p>The timestamp when the stage last updated.</p>
811      */
WithLastUpdatedDate(const Aws::Utils::DateTime & value)812     inline Stage& WithLastUpdatedDate(const Aws::Utils::DateTime& value) { SetLastUpdatedDate(value); return *this;}
813 
814     /**
815      * <p>The timestamp when the stage last updated.</p>
816      */
WithLastUpdatedDate(Aws::Utils::DateTime && value)817     inline Stage& WithLastUpdatedDate(Aws::Utils::DateTime&& value) { SetLastUpdatedDate(std::move(value)); return *this;}
818 
819   private:
820 
821     Aws::String m_deploymentId;
822     bool m_deploymentIdHasBeenSet;
823 
824     Aws::String m_clientCertificateId;
825     bool m_clientCertificateIdHasBeenSet;
826 
827     Aws::String m_stageName;
828     bool m_stageNameHasBeenSet;
829 
830     Aws::String m_description;
831     bool m_descriptionHasBeenSet;
832 
833     bool m_cacheClusterEnabled;
834     bool m_cacheClusterEnabledHasBeenSet;
835 
836     CacheClusterSize m_cacheClusterSize;
837     bool m_cacheClusterSizeHasBeenSet;
838 
839     CacheClusterStatus m_cacheClusterStatus;
840     bool m_cacheClusterStatusHasBeenSet;
841 
842     Aws::Map<Aws::String, MethodSetting> m_methodSettings;
843     bool m_methodSettingsHasBeenSet;
844 
845     Aws::Map<Aws::String, Aws::String> m_variables;
846     bool m_variablesHasBeenSet;
847 
848     Aws::String m_documentationVersion;
849     bool m_documentationVersionHasBeenSet;
850 
851     AccessLogSettings m_accessLogSettings;
852     bool m_accessLogSettingsHasBeenSet;
853 
854     CanarySettings m_canarySettings;
855     bool m_canarySettingsHasBeenSet;
856 
857     bool m_tracingEnabled;
858     bool m_tracingEnabledHasBeenSet;
859 
860     Aws::String m_webAclArn;
861     bool m_webAclArnHasBeenSet;
862 
863     Aws::Map<Aws::String, Aws::String> m_tags;
864     bool m_tagsHasBeenSet;
865 
866     Aws::Utils::DateTime m_createdDate;
867     bool m_createdDateHasBeenSet;
868 
869     Aws::Utils::DateTime m_lastUpdatedDate;
870     bool m_lastUpdatedDateHasBeenSet;
871   };
872 
873 } // namespace Model
874 } // namespace APIGateway
875 } // namespace Aws
876