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/cloudformation/CloudFormation_EXPORTS.h>
8 #include <aws/cloudformation/CloudFormationErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/AmazonSerializableWebServiceRequest.h>
12 #include <aws/core/client/AWSClient.h>
13 #include <aws/core/utils/memory/stl/AWSString.h>
14 #include <aws/core/utils/xml/XmlSerializer.h>
15 #include <aws/cloudformation/model/ActivateTypeResult.h>
16 #include <aws/cloudformation/model/BatchDescribeTypeConfigurationsResult.h>
17 #include <aws/cloudformation/model/ContinueUpdateRollbackResult.h>
18 #include <aws/cloudformation/model/CreateChangeSetResult.h>
19 #include <aws/cloudformation/model/CreateStackResult.h>
20 #include <aws/cloudformation/model/CreateStackInstancesResult.h>
21 #include <aws/cloudformation/model/CreateStackSetResult.h>
22 #include <aws/cloudformation/model/DeactivateTypeResult.h>
23 #include <aws/cloudformation/model/DeleteChangeSetResult.h>
24 #include <aws/cloudformation/model/DeleteStackInstancesResult.h>
25 #include <aws/cloudformation/model/DeleteStackSetResult.h>
26 #include <aws/cloudformation/model/DeregisterTypeResult.h>
27 #include <aws/cloudformation/model/DescribeAccountLimitsResult.h>
28 #include <aws/cloudformation/model/DescribeChangeSetResult.h>
29 #include <aws/cloudformation/model/DescribePublisherResult.h>
30 #include <aws/cloudformation/model/DescribeStackDriftDetectionStatusResult.h>
31 #include <aws/cloudformation/model/DescribeStackEventsResult.h>
32 #include <aws/cloudformation/model/DescribeStackInstanceResult.h>
33 #include <aws/cloudformation/model/DescribeStackResourceResult.h>
34 #include <aws/cloudformation/model/DescribeStackResourceDriftsResult.h>
35 #include <aws/cloudformation/model/DescribeStackResourcesResult.h>
36 #include <aws/cloudformation/model/DescribeStackSetResult.h>
37 #include <aws/cloudformation/model/DescribeStackSetOperationResult.h>
38 #include <aws/cloudformation/model/DescribeStacksResult.h>
39 #include <aws/cloudformation/model/DescribeTypeResult.h>
40 #include <aws/cloudformation/model/DescribeTypeRegistrationResult.h>
41 #include <aws/cloudformation/model/DetectStackDriftResult.h>
42 #include <aws/cloudformation/model/DetectStackResourceDriftResult.h>
43 #include <aws/cloudformation/model/DetectStackSetDriftResult.h>
44 #include <aws/cloudformation/model/EstimateTemplateCostResult.h>
45 #include <aws/cloudformation/model/ExecuteChangeSetResult.h>
46 #include <aws/cloudformation/model/GetStackPolicyResult.h>
47 #include <aws/cloudformation/model/GetTemplateResult.h>
48 #include <aws/cloudformation/model/GetTemplateSummaryResult.h>
49 #include <aws/cloudformation/model/ImportStacksToStackSetResult.h>
50 #include <aws/cloudformation/model/ListChangeSetsResult.h>
51 #include <aws/cloudformation/model/ListExportsResult.h>
52 #include <aws/cloudformation/model/ListImportsResult.h>
53 #include <aws/cloudformation/model/ListStackInstancesResult.h>
54 #include <aws/cloudformation/model/ListStackResourcesResult.h>
55 #include <aws/cloudformation/model/ListStackSetOperationResultsResult.h>
56 #include <aws/cloudformation/model/ListStackSetOperationsResult.h>
57 #include <aws/cloudformation/model/ListStackSetsResult.h>
58 #include <aws/cloudformation/model/ListStacksResult.h>
59 #include <aws/cloudformation/model/ListTypeRegistrationsResult.h>
60 #include <aws/cloudformation/model/ListTypeVersionsResult.h>
61 #include <aws/cloudformation/model/ListTypesResult.h>
62 #include <aws/cloudformation/model/PublishTypeResult.h>
63 #include <aws/cloudformation/model/RecordHandlerProgressResult.h>
64 #include <aws/cloudformation/model/RegisterPublisherResult.h>
65 #include <aws/cloudformation/model/RegisterTypeResult.h>
66 #include <aws/cloudformation/model/RollbackStackResult.h>
67 #include <aws/cloudformation/model/SetTypeConfigurationResult.h>
68 #include <aws/cloudformation/model/SetTypeDefaultVersionResult.h>
69 #include <aws/cloudformation/model/StopStackSetOperationResult.h>
70 #include <aws/cloudformation/model/TestTypeResult.h>
71 #include <aws/cloudformation/model/UpdateStackResult.h>
72 #include <aws/cloudformation/model/UpdateStackInstancesResult.h>
73 #include <aws/cloudformation/model/UpdateStackSetResult.h>
74 #include <aws/cloudformation/model/UpdateTerminationProtectionResult.h>
75 #include <aws/cloudformation/model/ValidateTemplateResult.h>
76 #include <aws/core/NoResult.h>
77 #include <aws/core/client/AsyncCallerContext.h>
78 #include <aws/core/http/HttpTypes.h>
79 #include <future>
80 #include <functional>
81 
82 namespace Aws
83 {
84 
85 namespace Http
86 {
87   class HttpClient;
88   class HttpClientFactory;
89 } // namespace Http
90 
91 namespace Utils
92 {
93   template< typename R, typename E> class Outcome;
94 
95 namespace Threading
96 {
97   class Executor;
98 } // namespace Threading
99 
100 namespace Xml
101 {
102   class XmlDocument;
103 } // namespace Xml
104 } // namespace Utils
105 
106 namespace Auth
107 {
108   class AWSCredentials;
109   class AWSCredentialsProvider;
110 } // namespace Auth
111 
112 namespace Client
113 {
114   class RetryStrategy;
115 } // namespace Client
116 
117 namespace CloudFormation
118 {
119 
120 namespace Model
121 {
122         class ActivateTypeRequest;
123         class BatchDescribeTypeConfigurationsRequest;
124         class CancelUpdateStackRequest;
125         class ContinueUpdateRollbackRequest;
126         class CreateChangeSetRequest;
127         class CreateStackRequest;
128         class CreateStackInstancesRequest;
129         class CreateStackSetRequest;
130         class DeactivateTypeRequest;
131         class DeleteChangeSetRequest;
132         class DeleteStackRequest;
133         class DeleteStackInstancesRequest;
134         class DeleteStackSetRequest;
135         class DeregisterTypeRequest;
136         class DescribeAccountLimitsRequest;
137         class DescribeChangeSetRequest;
138         class DescribePublisherRequest;
139         class DescribeStackDriftDetectionStatusRequest;
140         class DescribeStackEventsRequest;
141         class DescribeStackInstanceRequest;
142         class DescribeStackResourceRequest;
143         class DescribeStackResourceDriftsRequest;
144         class DescribeStackResourcesRequest;
145         class DescribeStackSetRequest;
146         class DescribeStackSetOperationRequest;
147         class DescribeStacksRequest;
148         class DescribeTypeRequest;
149         class DescribeTypeRegistrationRequest;
150         class DetectStackDriftRequest;
151         class DetectStackResourceDriftRequest;
152         class DetectStackSetDriftRequest;
153         class EstimateTemplateCostRequest;
154         class ExecuteChangeSetRequest;
155         class GetStackPolicyRequest;
156         class GetTemplateRequest;
157         class GetTemplateSummaryRequest;
158         class ImportStacksToStackSetRequest;
159         class ListChangeSetsRequest;
160         class ListExportsRequest;
161         class ListImportsRequest;
162         class ListStackInstancesRequest;
163         class ListStackResourcesRequest;
164         class ListStackSetOperationResultsRequest;
165         class ListStackSetOperationsRequest;
166         class ListStackSetsRequest;
167         class ListStacksRequest;
168         class ListTypeRegistrationsRequest;
169         class ListTypeVersionsRequest;
170         class ListTypesRequest;
171         class PublishTypeRequest;
172         class RecordHandlerProgressRequest;
173         class RegisterPublisherRequest;
174         class RegisterTypeRequest;
175         class RollbackStackRequest;
176         class SetStackPolicyRequest;
177         class SetTypeConfigurationRequest;
178         class SetTypeDefaultVersionRequest;
179         class SignalResourceRequest;
180         class StopStackSetOperationRequest;
181         class TestTypeRequest;
182         class UpdateStackRequest;
183         class UpdateStackInstancesRequest;
184         class UpdateStackSetRequest;
185         class UpdateTerminationProtectionRequest;
186         class ValidateTemplateRequest;
187 
188         typedef Aws::Utils::Outcome<ActivateTypeResult, CloudFormationError> ActivateTypeOutcome;
189         typedef Aws::Utils::Outcome<BatchDescribeTypeConfigurationsResult, CloudFormationError> BatchDescribeTypeConfigurationsOutcome;
190         typedef Aws::Utils::Outcome<Aws::NoResult, CloudFormationError> CancelUpdateStackOutcome;
191         typedef Aws::Utils::Outcome<ContinueUpdateRollbackResult, CloudFormationError> ContinueUpdateRollbackOutcome;
192         typedef Aws::Utils::Outcome<CreateChangeSetResult, CloudFormationError> CreateChangeSetOutcome;
193         typedef Aws::Utils::Outcome<CreateStackResult, CloudFormationError> CreateStackOutcome;
194         typedef Aws::Utils::Outcome<CreateStackInstancesResult, CloudFormationError> CreateStackInstancesOutcome;
195         typedef Aws::Utils::Outcome<CreateStackSetResult, CloudFormationError> CreateStackSetOutcome;
196         typedef Aws::Utils::Outcome<DeactivateTypeResult, CloudFormationError> DeactivateTypeOutcome;
197         typedef Aws::Utils::Outcome<DeleteChangeSetResult, CloudFormationError> DeleteChangeSetOutcome;
198         typedef Aws::Utils::Outcome<Aws::NoResult, CloudFormationError> DeleteStackOutcome;
199         typedef Aws::Utils::Outcome<DeleteStackInstancesResult, CloudFormationError> DeleteStackInstancesOutcome;
200         typedef Aws::Utils::Outcome<DeleteStackSetResult, CloudFormationError> DeleteStackSetOutcome;
201         typedef Aws::Utils::Outcome<DeregisterTypeResult, CloudFormationError> DeregisterTypeOutcome;
202         typedef Aws::Utils::Outcome<DescribeAccountLimitsResult, CloudFormationError> DescribeAccountLimitsOutcome;
203         typedef Aws::Utils::Outcome<DescribeChangeSetResult, CloudFormationError> DescribeChangeSetOutcome;
204         typedef Aws::Utils::Outcome<DescribePublisherResult, CloudFormationError> DescribePublisherOutcome;
205         typedef Aws::Utils::Outcome<DescribeStackDriftDetectionStatusResult, CloudFormationError> DescribeStackDriftDetectionStatusOutcome;
206         typedef Aws::Utils::Outcome<DescribeStackEventsResult, CloudFormationError> DescribeStackEventsOutcome;
207         typedef Aws::Utils::Outcome<DescribeStackInstanceResult, CloudFormationError> DescribeStackInstanceOutcome;
208         typedef Aws::Utils::Outcome<DescribeStackResourceResult, CloudFormationError> DescribeStackResourceOutcome;
209         typedef Aws::Utils::Outcome<DescribeStackResourceDriftsResult, CloudFormationError> DescribeStackResourceDriftsOutcome;
210         typedef Aws::Utils::Outcome<DescribeStackResourcesResult, CloudFormationError> DescribeStackResourcesOutcome;
211         typedef Aws::Utils::Outcome<DescribeStackSetResult, CloudFormationError> DescribeStackSetOutcome;
212         typedef Aws::Utils::Outcome<DescribeStackSetOperationResult, CloudFormationError> DescribeStackSetOperationOutcome;
213         typedef Aws::Utils::Outcome<DescribeStacksResult, CloudFormationError> DescribeStacksOutcome;
214         typedef Aws::Utils::Outcome<DescribeTypeResult, CloudFormationError> DescribeTypeOutcome;
215         typedef Aws::Utils::Outcome<DescribeTypeRegistrationResult, CloudFormationError> DescribeTypeRegistrationOutcome;
216         typedef Aws::Utils::Outcome<DetectStackDriftResult, CloudFormationError> DetectStackDriftOutcome;
217         typedef Aws::Utils::Outcome<DetectStackResourceDriftResult, CloudFormationError> DetectStackResourceDriftOutcome;
218         typedef Aws::Utils::Outcome<DetectStackSetDriftResult, CloudFormationError> DetectStackSetDriftOutcome;
219         typedef Aws::Utils::Outcome<EstimateTemplateCostResult, CloudFormationError> EstimateTemplateCostOutcome;
220         typedef Aws::Utils::Outcome<ExecuteChangeSetResult, CloudFormationError> ExecuteChangeSetOutcome;
221         typedef Aws::Utils::Outcome<GetStackPolicyResult, CloudFormationError> GetStackPolicyOutcome;
222         typedef Aws::Utils::Outcome<GetTemplateResult, CloudFormationError> GetTemplateOutcome;
223         typedef Aws::Utils::Outcome<GetTemplateSummaryResult, CloudFormationError> GetTemplateSummaryOutcome;
224         typedef Aws::Utils::Outcome<ImportStacksToStackSetResult, CloudFormationError> ImportStacksToStackSetOutcome;
225         typedef Aws::Utils::Outcome<ListChangeSetsResult, CloudFormationError> ListChangeSetsOutcome;
226         typedef Aws::Utils::Outcome<ListExportsResult, CloudFormationError> ListExportsOutcome;
227         typedef Aws::Utils::Outcome<ListImportsResult, CloudFormationError> ListImportsOutcome;
228         typedef Aws::Utils::Outcome<ListStackInstancesResult, CloudFormationError> ListStackInstancesOutcome;
229         typedef Aws::Utils::Outcome<ListStackResourcesResult, CloudFormationError> ListStackResourcesOutcome;
230         typedef Aws::Utils::Outcome<ListStackSetOperationResultsResult, CloudFormationError> ListStackSetOperationResultsOutcome;
231         typedef Aws::Utils::Outcome<ListStackSetOperationsResult, CloudFormationError> ListStackSetOperationsOutcome;
232         typedef Aws::Utils::Outcome<ListStackSetsResult, CloudFormationError> ListStackSetsOutcome;
233         typedef Aws::Utils::Outcome<ListStacksResult, CloudFormationError> ListStacksOutcome;
234         typedef Aws::Utils::Outcome<ListTypeRegistrationsResult, CloudFormationError> ListTypeRegistrationsOutcome;
235         typedef Aws::Utils::Outcome<ListTypeVersionsResult, CloudFormationError> ListTypeVersionsOutcome;
236         typedef Aws::Utils::Outcome<ListTypesResult, CloudFormationError> ListTypesOutcome;
237         typedef Aws::Utils::Outcome<PublishTypeResult, CloudFormationError> PublishTypeOutcome;
238         typedef Aws::Utils::Outcome<RecordHandlerProgressResult, CloudFormationError> RecordHandlerProgressOutcome;
239         typedef Aws::Utils::Outcome<RegisterPublisherResult, CloudFormationError> RegisterPublisherOutcome;
240         typedef Aws::Utils::Outcome<RegisterTypeResult, CloudFormationError> RegisterTypeOutcome;
241         typedef Aws::Utils::Outcome<RollbackStackResult, CloudFormationError> RollbackStackOutcome;
242         typedef Aws::Utils::Outcome<Aws::NoResult, CloudFormationError> SetStackPolicyOutcome;
243         typedef Aws::Utils::Outcome<SetTypeConfigurationResult, CloudFormationError> SetTypeConfigurationOutcome;
244         typedef Aws::Utils::Outcome<SetTypeDefaultVersionResult, CloudFormationError> SetTypeDefaultVersionOutcome;
245         typedef Aws::Utils::Outcome<Aws::NoResult, CloudFormationError> SignalResourceOutcome;
246         typedef Aws::Utils::Outcome<StopStackSetOperationResult, CloudFormationError> StopStackSetOperationOutcome;
247         typedef Aws::Utils::Outcome<TestTypeResult, CloudFormationError> TestTypeOutcome;
248         typedef Aws::Utils::Outcome<UpdateStackResult, CloudFormationError> UpdateStackOutcome;
249         typedef Aws::Utils::Outcome<UpdateStackInstancesResult, CloudFormationError> UpdateStackInstancesOutcome;
250         typedef Aws::Utils::Outcome<UpdateStackSetResult, CloudFormationError> UpdateStackSetOutcome;
251         typedef Aws::Utils::Outcome<UpdateTerminationProtectionResult, CloudFormationError> UpdateTerminationProtectionOutcome;
252         typedef Aws::Utils::Outcome<ValidateTemplateResult, CloudFormationError> ValidateTemplateOutcome;
253 
254         typedef std::future<ActivateTypeOutcome> ActivateTypeOutcomeCallable;
255         typedef std::future<BatchDescribeTypeConfigurationsOutcome> BatchDescribeTypeConfigurationsOutcomeCallable;
256         typedef std::future<CancelUpdateStackOutcome> CancelUpdateStackOutcomeCallable;
257         typedef std::future<ContinueUpdateRollbackOutcome> ContinueUpdateRollbackOutcomeCallable;
258         typedef std::future<CreateChangeSetOutcome> CreateChangeSetOutcomeCallable;
259         typedef std::future<CreateStackOutcome> CreateStackOutcomeCallable;
260         typedef std::future<CreateStackInstancesOutcome> CreateStackInstancesOutcomeCallable;
261         typedef std::future<CreateStackSetOutcome> CreateStackSetOutcomeCallable;
262         typedef std::future<DeactivateTypeOutcome> DeactivateTypeOutcomeCallable;
263         typedef std::future<DeleteChangeSetOutcome> DeleteChangeSetOutcomeCallable;
264         typedef std::future<DeleteStackOutcome> DeleteStackOutcomeCallable;
265         typedef std::future<DeleteStackInstancesOutcome> DeleteStackInstancesOutcomeCallable;
266         typedef std::future<DeleteStackSetOutcome> DeleteStackSetOutcomeCallable;
267         typedef std::future<DeregisterTypeOutcome> DeregisterTypeOutcomeCallable;
268         typedef std::future<DescribeAccountLimitsOutcome> DescribeAccountLimitsOutcomeCallable;
269         typedef std::future<DescribeChangeSetOutcome> DescribeChangeSetOutcomeCallable;
270         typedef std::future<DescribePublisherOutcome> DescribePublisherOutcomeCallable;
271         typedef std::future<DescribeStackDriftDetectionStatusOutcome> DescribeStackDriftDetectionStatusOutcomeCallable;
272         typedef std::future<DescribeStackEventsOutcome> DescribeStackEventsOutcomeCallable;
273         typedef std::future<DescribeStackInstanceOutcome> DescribeStackInstanceOutcomeCallable;
274         typedef std::future<DescribeStackResourceOutcome> DescribeStackResourceOutcomeCallable;
275         typedef std::future<DescribeStackResourceDriftsOutcome> DescribeStackResourceDriftsOutcomeCallable;
276         typedef std::future<DescribeStackResourcesOutcome> DescribeStackResourcesOutcomeCallable;
277         typedef std::future<DescribeStackSetOutcome> DescribeStackSetOutcomeCallable;
278         typedef std::future<DescribeStackSetOperationOutcome> DescribeStackSetOperationOutcomeCallable;
279         typedef std::future<DescribeStacksOutcome> DescribeStacksOutcomeCallable;
280         typedef std::future<DescribeTypeOutcome> DescribeTypeOutcomeCallable;
281         typedef std::future<DescribeTypeRegistrationOutcome> DescribeTypeRegistrationOutcomeCallable;
282         typedef std::future<DetectStackDriftOutcome> DetectStackDriftOutcomeCallable;
283         typedef std::future<DetectStackResourceDriftOutcome> DetectStackResourceDriftOutcomeCallable;
284         typedef std::future<DetectStackSetDriftOutcome> DetectStackSetDriftOutcomeCallable;
285         typedef std::future<EstimateTemplateCostOutcome> EstimateTemplateCostOutcomeCallable;
286         typedef std::future<ExecuteChangeSetOutcome> ExecuteChangeSetOutcomeCallable;
287         typedef std::future<GetStackPolicyOutcome> GetStackPolicyOutcomeCallable;
288         typedef std::future<GetTemplateOutcome> GetTemplateOutcomeCallable;
289         typedef std::future<GetTemplateSummaryOutcome> GetTemplateSummaryOutcomeCallable;
290         typedef std::future<ImportStacksToStackSetOutcome> ImportStacksToStackSetOutcomeCallable;
291         typedef std::future<ListChangeSetsOutcome> ListChangeSetsOutcomeCallable;
292         typedef std::future<ListExportsOutcome> ListExportsOutcomeCallable;
293         typedef std::future<ListImportsOutcome> ListImportsOutcomeCallable;
294         typedef std::future<ListStackInstancesOutcome> ListStackInstancesOutcomeCallable;
295         typedef std::future<ListStackResourcesOutcome> ListStackResourcesOutcomeCallable;
296         typedef std::future<ListStackSetOperationResultsOutcome> ListStackSetOperationResultsOutcomeCallable;
297         typedef std::future<ListStackSetOperationsOutcome> ListStackSetOperationsOutcomeCallable;
298         typedef std::future<ListStackSetsOutcome> ListStackSetsOutcomeCallable;
299         typedef std::future<ListStacksOutcome> ListStacksOutcomeCallable;
300         typedef std::future<ListTypeRegistrationsOutcome> ListTypeRegistrationsOutcomeCallable;
301         typedef std::future<ListTypeVersionsOutcome> ListTypeVersionsOutcomeCallable;
302         typedef std::future<ListTypesOutcome> ListTypesOutcomeCallable;
303         typedef std::future<PublishTypeOutcome> PublishTypeOutcomeCallable;
304         typedef std::future<RecordHandlerProgressOutcome> RecordHandlerProgressOutcomeCallable;
305         typedef std::future<RegisterPublisherOutcome> RegisterPublisherOutcomeCallable;
306         typedef std::future<RegisterTypeOutcome> RegisterTypeOutcomeCallable;
307         typedef std::future<RollbackStackOutcome> RollbackStackOutcomeCallable;
308         typedef std::future<SetStackPolicyOutcome> SetStackPolicyOutcomeCallable;
309         typedef std::future<SetTypeConfigurationOutcome> SetTypeConfigurationOutcomeCallable;
310         typedef std::future<SetTypeDefaultVersionOutcome> SetTypeDefaultVersionOutcomeCallable;
311         typedef std::future<SignalResourceOutcome> SignalResourceOutcomeCallable;
312         typedef std::future<StopStackSetOperationOutcome> StopStackSetOperationOutcomeCallable;
313         typedef std::future<TestTypeOutcome> TestTypeOutcomeCallable;
314         typedef std::future<UpdateStackOutcome> UpdateStackOutcomeCallable;
315         typedef std::future<UpdateStackInstancesOutcome> UpdateStackInstancesOutcomeCallable;
316         typedef std::future<UpdateStackSetOutcome> UpdateStackSetOutcomeCallable;
317         typedef std::future<UpdateTerminationProtectionOutcome> UpdateTerminationProtectionOutcomeCallable;
318         typedef std::future<ValidateTemplateOutcome> ValidateTemplateOutcomeCallable;
319 } // namespace Model
320 
321   class CloudFormationClient;
322 
323     typedef std::function<void(const CloudFormationClient*, const Model::ActivateTypeRequest&, const Model::ActivateTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ActivateTypeResponseReceivedHandler;
324     typedef std::function<void(const CloudFormationClient*, const Model::BatchDescribeTypeConfigurationsRequest&, const Model::BatchDescribeTypeConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDescribeTypeConfigurationsResponseReceivedHandler;
325     typedef std::function<void(const CloudFormationClient*, const Model::CancelUpdateStackRequest&, const Model::CancelUpdateStackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelUpdateStackResponseReceivedHandler;
326     typedef std::function<void(const CloudFormationClient*, const Model::ContinueUpdateRollbackRequest&, const Model::ContinueUpdateRollbackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ContinueUpdateRollbackResponseReceivedHandler;
327     typedef std::function<void(const CloudFormationClient*, const Model::CreateChangeSetRequest&, const Model::CreateChangeSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateChangeSetResponseReceivedHandler;
328     typedef std::function<void(const CloudFormationClient*, const Model::CreateStackRequest&, const Model::CreateStackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStackResponseReceivedHandler;
329     typedef std::function<void(const CloudFormationClient*, const Model::CreateStackInstancesRequest&, const Model::CreateStackInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStackInstancesResponseReceivedHandler;
330     typedef std::function<void(const CloudFormationClient*, const Model::CreateStackSetRequest&, const Model::CreateStackSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStackSetResponseReceivedHandler;
331     typedef std::function<void(const CloudFormationClient*, const Model::DeactivateTypeRequest&, const Model::DeactivateTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeactivateTypeResponseReceivedHandler;
332     typedef std::function<void(const CloudFormationClient*, const Model::DeleteChangeSetRequest&, const Model::DeleteChangeSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteChangeSetResponseReceivedHandler;
333     typedef std::function<void(const CloudFormationClient*, const Model::DeleteStackRequest&, const Model::DeleteStackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStackResponseReceivedHandler;
334     typedef std::function<void(const CloudFormationClient*, const Model::DeleteStackInstancesRequest&, const Model::DeleteStackInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStackInstancesResponseReceivedHandler;
335     typedef std::function<void(const CloudFormationClient*, const Model::DeleteStackSetRequest&, const Model::DeleteStackSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStackSetResponseReceivedHandler;
336     typedef std::function<void(const CloudFormationClient*, const Model::DeregisterTypeRequest&, const Model::DeregisterTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterTypeResponseReceivedHandler;
337     typedef std::function<void(const CloudFormationClient*, const Model::DescribeAccountLimitsRequest&, const Model::DescribeAccountLimitsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAccountLimitsResponseReceivedHandler;
338     typedef std::function<void(const CloudFormationClient*, const Model::DescribeChangeSetRequest&, const Model::DescribeChangeSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeChangeSetResponseReceivedHandler;
339     typedef std::function<void(const CloudFormationClient*, const Model::DescribePublisherRequest&, const Model::DescribePublisherOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePublisherResponseReceivedHandler;
340     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackDriftDetectionStatusRequest&, const Model::DescribeStackDriftDetectionStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackDriftDetectionStatusResponseReceivedHandler;
341     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackEventsRequest&, const Model::DescribeStackEventsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackEventsResponseReceivedHandler;
342     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackInstanceRequest&, const Model::DescribeStackInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackInstanceResponseReceivedHandler;
343     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackResourceRequest&, const Model::DescribeStackResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackResourceResponseReceivedHandler;
344     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackResourceDriftsRequest&, const Model::DescribeStackResourceDriftsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackResourceDriftsResponseReceivedHandler;
345     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackResourcesRequest&, const Model::DescribeStackResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackResourcesResponseReceivedHandler;
346     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackSetRequest&, const Model::DescribeStackSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackSetResponseReceivedHandler;
347     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStackSetOperationRequest&, const Model::DescribeStackSetOperationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStackSetOperationResponseReceivedHandler;
348     typedef std::function<void(const CloudFormationClient*, const Model::DescribeStacksRequest&, const Model::DescribeStacksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStacksResponseReceivedHandler;
349     typedef std::function<void(const CloudFormationClient*, const Model::DescribeTypeRequest&, const Model::DescribeTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTypeResponseReceivedHandler;
350     typedef std::function<void(const CloudFormationClient*, const Model::DescribeTypeRegistrationRequest&, const Model::DescribeTypeRegistrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTypeRegistrationResponseReceivedHandler;
351     typedef std::function<void(const CloudFormationClient*, const Model::DetectStackDriftRequest&, const Model::DetectStackDriftOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetectStackDriftResponseReceivedHandler;
352     typedef std::function<void(const CloudFormationClient*, const Model::DetectStackResourceDriftRequest&, const Model::DetectStackResourceDriftOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetectStackResourceDriftResponseReceivedHandler;
353     typedef std::function<void(const CloudFormationClient*, const Model::DetectStackSetDriftRequest&, const Model::DetectStackSetDriftOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetectStackSetDriftResponseReceivedHandler;
354     typedef std::function<void(const CloudFormationClient*, const Model::EstimateTemplateCostRequest&, const Model::EstimateTemplateCostOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EstimateTemplateCostResponseReceivedHandler;
355     typedef std::function<void(const CloudFormationClient*, const Model::ExecuteChangeSetRequest&, const Model::ExecuteChangeSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExecuteChangeSetResponseReceivedHandler;
356     typedef std::function<void(const CloudFormationClient*, const Model::GetStackPolicyRequest&, const Model::GetStackPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetStackPolicyResponseReceivedHandler;
357     typedef std::function<void(const CloudFormationClient*, const Model::GetTemplateRequest&, const Model::GetTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTemplateResponseReceivedHandler;
358     typedef std::function<void(const CloudFormationClient*, const Model::GetTemplateSummaryRequest&, const Model::GetTemplateSummaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTemplateSummaryResponseReceivedHandler;
359     typedef std::function<void(const CloudFormationClient*, const Model::ImportStacksToStackSetRequest&, const Model::ImportStacksToStackSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportStacksToStackSetResponseReceivedHandler;
360     typedef std::function<void(const CloudFormationClient*, const Model::ListChangeSetsRequest&, const Model::ListChangeSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListChangeSetsResponseReceivedHandler;
361     typedef std::function<void(const CloudFormationClient*, const Model::ListExportsRequest&, const Model::ListExportsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListExportsResponseReceivedHandler;
362     typedef std::function<void(const CloudFormationClient*, const Model::ListImportsRequest&, const Model::ListImportsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListImportsResponseReceivedHandler;
363     typedef std::function<void(const CloudFormationClient*, const Model::ListStackInstancesRequest&, const Model::ListStackInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStackInstancesResponseReceivedHandler;
364     typedef std::function<void(const CloudFormationClient*, const Model::ListStackResourcesRequest&, const Model::ListStackResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStackResourcesResponseReceivedHandler;
365     typedef std::function<void(const CloudFormationClient*, const Model::ListStackSetOperationResultsRequest&, const Model::ListStackSetOperationResultsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStackSetOperationResultsResponseReceivedHandler;
366     typedef std::function<void(const CloudFormationClient*, const Model::ListStackSetOperationsRequest&, const Model::ListStackSetOperationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStackSetOperationsResponseReceivedHandler;
367     typedef std::function<void(const CloudFormationClient*, const Model::ListStackSetsRequest&, const Model::ListStackSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStackSetsResponseReceivedHandler;
368     typedef std::function<void(const CloudFormationClient*, const Model::ListStacksRequest&, const Model::ListStacksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStacksResponseReceivedHandler;
369     typedef std::function<void(const CloudFormationClient*, const Model::ListTypeRegistrationsRequest&, const Model::ListTypeRegistrationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTypeRegistrationsResponseReceivedHandler;
370     typedef std::function<void(const CloudFormationClient*, const Model::ListTypeVersionsRequest&, const Model::ListTypeVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTypeVersionsResponseReceivedHandler;
371     typedef std::function<void(const CloudFormationClient*, const Model::ListTypesRequest&, const Model::ListTypesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTypesResponseReceivedHandler;
372     typedef std::function<void(const CloudFormationClient*, const Model::PublishTypeRequest&, const Model::PublishTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PublishTypeResponseReceivedHandler;
373     typedef std::function<void(const CloudFormationClient*, const Model::RecordHandlerProgressRequest&, const Model::RecordHandlerProgressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RecordHandlerProgressResponseReceivedHandler;
374     typedef std::function<void(const CloudFormationClient*, const Model::RegisterPublisherRequest&, const Model::RegisterPublisherOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterPublisherResponseReceivedHandler;
375     typedef std::function<void(const CloudFormationClient*, const Model::RegisterTypeRequest&, const Model::RegisterTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterTypeResponseReceivedHandler;
376     typedef std::function<void(const CloudFormationClient*, const Model::RollbackStackRequest&, const Model::RollbackStackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RollbackStackResponseReceivedHandler;
377     typedef std::function<void(const CloudFormationClient*, const Model::SetStackPolicyRequest&, const Model::SetStackPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetStackPolicyResponseReceivedHandler;
378     typedef std::function<void(const CloudFormationClient*, const Model::SetTypeConfigurationRequest&, const Model::SetTypeConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetTypeConfigurationResponseReceivedHandler;
379     typedef std::function<void(const CloudFormationClient*, const Model::SetTypeDefaultVersionRequest&, const Model::SetTypeDefaultVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetTypeDefaultVersionResponseReceivedHandler;
380     typedef std::function<void(const CloudFormationClient*, const Model::SignalResourceRequest&, const Model::SignalResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SignalResourceResponseReceivedHandler;
381     typedef std::function<void(const CloudFormationClient*, const Model::StopStackSetOperationRequest&, const Model::StopStackSetOperationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopStackSetOperationResponseReceivedHandler;
382     typedef std::function<void(const CloudFormationClient*, const Model::TestTypeRequest&, const Model::TestTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TestTypeResponseReceivedHandler;
383     typedef std::function<void(const CloudFormationClient*, const Model::UpdateStackRequest&, const Model::UpdateStackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateStackResponseReceivedHandler;
384     typedef std::function<void(const CloudFormationClient*, const Model::UpdateStackInstancesRequest&, const Model::UpdateStackInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateStackInstancesResponseReceivedHandler;
385     typedef std::function<void(const CloudFormationClient*, const Model::UpdateStackSetRequest&, const Model::UpdateStackSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateStackSetResponseReceivedHandler;
386     typedef std::function<void(const CloudFormationClient*, const Model::UpdateTerminationProtectionRequest&, const Model::UpdateTerminationProtectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTerminationProtectionResponseReceivedHandler;
387     typedef std::function<void(const CloudFormationClient*, const Model::ValidateTemplateRequest&, const Model::ValidateTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ValidateTemplateResponseReceivedHandler;
388 
389   /**
390    * <fullname>AWS CloudFormation</fullname> <p>CloudFormation allows you to create
391    * and manage Amazon Web Services infrastructure deployments predictably and
392    * repeatedly. You can use CloudFormation to leverage Amazon Web Services products,
393    * such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple
394    * Notification Service, Elastic Load Balancing, and Auto Scaling to build
395    * highly-reliable, highly scalable, cost-effective applications without creating
396    * or configuring the underlying Amazon Web Services infrastructure.</p> <p>With
397    * CloudFormation, you declare all of your resources and dependencies in a template
398    * file. The template defines a collection of resources as a single unit called a
399    * stack. CloudFormation creates and deletes all member resources of the stack
400    * together and manages all dependencies between the resources for you.</p> <p>For
401    * more information about CloudFormation, see the <a
402    * href="http://aws.amazon.com/cloudformation/">CloudFormation Product
403    * Page</a>.</p> <p>CloudFormation makes use of other Amazon Web Services products.
404    * If you need additional technical information about a specific Amazon Web
405    * Services product, you can find the product's technical documentation at <a
406    * href="https://docs.aws.amazon.com/"> <code>docs.aws.amazon.com</code> </a>.</p>
407    */
408   class AWS_CLOUDFORMATION_API CloudFormationClient : public Aws::Client::AWSXMLClient
409   {
410     public:
411       typedef Aws::Client::AWSXMLClient BASECLASS;
412 
413        /**
414         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
415         * is not specified, it will be initialized to default values.
416         */
417         CloudFormationClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
418 
419        /**
420         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
421         * is not specified, it will be initialized to default values.
422         */
423         CloudFormationClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
424 
425        /**
426         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
427         * the default http client factory will be used
428         */
429         CloudFormationClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
430             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
431 
432         virtual ~CloudFormationClient();
433 
434 
435        /**
436         * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes.
437         */
438         Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const;
439 
440 
441         /**
442          * <p>Activates a public third-party extension, making it available for use in
443          * stack templates. For more information, see <a
444          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html">Using
445          * public extensions</a> in the <i>CloudFormation User Guide</i>.</p> <p>Once you
446          * have activated a public third-party extension in your account and region, use <a
447          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
448          * to specify configuration properties for the extension. For more information, see
449          * <a
450          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
451          * extensions at the account level</a> in the <i>CloudFormation User
452          * Guide</i>.</p><p><h3>See Also:</h3>   <a
453          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType">AWS
454          * API Reference</a></p>
455          */
456         virtual Model::ActivateTypeOutcome ActivateType(const Model::ActivateTypeRequest& request) const;
457 
458         /**
459          * <p>Activates a public third-party extension, making it available for use in
460          * stack templates. For more information, see <a
461          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html">Using
462          * public extensions</a> in the <i>CloudFormation User Guide</i>.</p> <p>Once you
463          * have activated a public third-party extension in your account and region, use <a
464          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
465          * to specify configuration properties for the extension. For more information, see
466          * <a
467          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
468          * extensions at the account level</a> in the <i>CloudFormation User
469          * Guide</i>.</p><p><h3>See Also:</h3>   <a
470          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType">AWS
471          * API Reference</a></p>
472          *
473          * returns a future to the operation so that it can be executed in parallel to other requests.
474          */
475         virtual Model::ActivateTypeOutcomeCallable ActivateTypeCallable(const Model::ActivateTypeRequest& request) const;
476 
477         /**
478          * <p>Activates a public third-party extension, making it available for use in
479          * stack templates. For more information, see <a
480          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html">Using
481          * public extensions</a> in the <i>CloudFormation User Guide</i>.</p> <p>Once you
482          * have activated a public third-party extension in your account and region, use <a
483          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
484          * to specify configuration properties for the extension. For more information, see
485          * <a
486          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
487          * extensions at the account level</a> in the <i>CloudFormation User
488          * Guide</i>.</p><p><h3>See Also:</h3>   <a
489          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType">AWS
490          * API Reference</a></p>
491          *
492          * Queues the request into a thread executor and triggers associated callback when operation has finished.
493          */
494         virtual void ActivateTypeAsync(const Model::ActivateTypeRequest& request, const ActivateTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
495 
496         /**
497          * <p>Returns configuration data for the specified CloudFormation extensions, from
498          * the CloudFormation registry for the account and region.</p> <p>For more
499          * information, see <a
500          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
501          * extensions at the account level</a> in the <i>CloudFormation User
502          * Guide</i>.</p><p><h3>See Also:</h3>   <a
503          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations">AWS
504          * API Reference</a></p>
505          */
506         virtual Model::BatchDescribeTypeConfigurationsOutcome BatchDescribeTypeConfigurations(const Model::BatchDescribeTypeConfigurationsRequest& request) const;
507 
508         /**
509          * <p>Returns configuration data for the specified CloudFormation extensions, from
510          * the CloudFormation registry for the account and region.</p> <p>For more
511          * information, see <a
512          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
513          * extensions at the account level</a> in the <i>CloudFormation User
514          * Guide</i>.</p><p><h3>See Also:</h3>   <a
515          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations">AWS
516          * API Reference</a></p>
517          *
518          * returns a future to the operation so that it can be executed in parallel to other requests.
519          */
520         virtual Model::BatchDescribeTypeConfigurationsOutcomeCallable BatchDescribeTypeConfigurationsCallable(const Model::BatchDescribeTypeConfigurationsRequest& request) const;
521 
522         /**
523          * <p>Returns configuration data for the specified CloudFormation extensions, from
524          * the CloudFormation registry for the account and region.</p> <p>For more
525          * information, see <a
526          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
527          * extensions at the account level</a> in the <i>CloudFormation User
528          * Guide</i>.</p><p><h3>See Also:</h3>   <a
529          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations">AWS
530          * API Reference</a></p>
531          *
532          * Queues the request into a thread executor and triggers associated callback when operation has finished.
533          */
534         virtual void BatchDescribeTypeConfigurationsAsync(const Model::BatchDescribeTypeConfigurationsRequest& request, const BatchDescribeTypeConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
535 
536         /**
537          * <p>Cancels an update on the specified stack. If the call completes successfully,
538          * the stack rolls back the update and reverts to the previous stack
539          * configuration.</p>  <p>You can cancel only stacks that are in the
540          * UPDATE_IN_PROGRESS state.</p> <p><h3>See Also:</h3>   <a
541          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack">AWS
542          * API Reference</a></p>
543          */
544         virtual Model::CancelUpdateStackOutcome CancelUpdateStack(const Model::CancelUpdateStackRequest& request) const;
545 
546         /**
547          * <p>Cancels an update on the specified stack. If the call completes successfully,
548          * the stack rolls back the update and reverts to the previous stack
549          * configuration.</p>  <p>You can cancel only stacks that are in the
550          * UPDATE_IN_PROGRESS state.</p> <p><h3>See Also:</h3>   <a
551          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack">AWS
552          * API Reference</a></p>
553          *
554          * returns a future to the operation so that it can be executed in parallel to other requests.
555          */
556         virtual Model::CancelUpdateStackOutcomeCallable CancelUpdateStackCallable(const Model::CancelUpdateStackRequest& request) const;
557 
558         /**
559          * <p>Cancels an update on the specified stack. If the call completes successfully,
560          * the stack rolls back the update and reverts to the previous stack
561          * configuration.</p>  <p>You can cancel only stacks that are in the
562          * UPDATE_IN_PROGRESS state.</p> <p><h3>See Also:</h3>   <a
563          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack">AWS
564          * API Reference</a></p>
565          *
566          * Queues the request into a thread executor and triggers associated callback when operation has finished.
567          */
568         virtual void CancelUpdateStackAsync(const Model::CancelUpdateStackRequest& request, const CancelUpdateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
569 
570         /**
571          * <p>For a specified stack that is in the <code>UPDATE_ROLLBACK_FAILED</code>
572          * state, continues rolling it back to the <code>UPDATE_ROLLBACK_COMPLETE</code>
573          * state. Depending on the cause of the failure, you can manually <a
574          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed">
575          * fix the error</a> and continue the rollback. By continuing the rollback, you can
576          * return your stack to a working state (the <code>UPDATE_ROLLBACK_COMPLETE</code>
577          * state), and then try to update the stack again.</p> <p>A stack goes into the
578          * <code>UPDATE_ROLLBACK_FAILED</code> state when CloudFormation cannot roll back
579          * all changes after a failed stack update. For example, you might have a stack
580          * that is rolling back to an old database instance that was deleted outside of
581          * CloudFormation. Because CloudFormation doesn't know the database was deleted, it
582          * assumes that the database instance still exists and attempts to roll back to it,
583          * causing the update rollback to fail.</p><p><h3>See Also:</h3>   <a
584          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback">AWS
585          * API Reference</a></p>
586          */
587         virtual Model::ContinueUpdateRollbackOutcome ContinueUpdateRollback(const Model::ContinueUpdateRollbackRequest& request) const;
588 
589         /**
590          * <p>For a specified stack that is in the <code>UPDATE_ROLLBACK_FAILED</code>
591          * state, continues rolling it back to the <code>UPDATE_ROLLBACK_COMPLETE</code>
592          * state. Depending on the cause of the failure, you can manually <a
593          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed">
594          * fix the error</a> and continue the rollback. By continuing the rollback, you can
595          * return your stack to a working state (the <code>UPDATE_ROLLBACK_COMPLETE</code>
596          * state), and then try to update the stack again.</p> <p>A stack goes into the
597          * <code>UPDATE_ROLLBACK_FAILED</code> state when CloudFormation cannot roll back
598          * all changes after a failed stack update. For example, you might have a stack
599          * that is rolling back to an old database instance that was deleted outside of
600          * CloudFormation. Because CloudFormation doesn't know the database was deleted, it
601          * assumes that the database instance still exists and attempts to roll back to it,
602          * causing the update rollback to fail.</p><p><h3>See Also:</h3>   <a
603          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback">AWS
604          * API Reference</a></p>
605          *
606          * returns a future to the operation so that it can be executed in parallel to other requests.
607          */
608         virtual Model::ContinueUpdateRollbackOutcomeCallable ContinueUpdateRollbackCallable(const Model::ContinueUpdateRollbackRequest& request) const;
609 
610         /**
611          * <p>For a specified stack that is in the <code>UPDATE_ROLLBACK_FAILED</code>
612          * state, continues rolling it back to the <code>UPDATE_ROLLBACK_COMPLETE</code>
613          * state. Depending on the cause of the failure, you can manually <a
614          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed">
615          * fix the error</a> and continue the rollback. By continuing the rollback, you can
616          * return your stack to a working state (the <code>UPDATE_ROLLBACK_COMPLETE</code>
617          * state), and then try to update the stack again.</p> <p>A stack goes into the
618          * <code>UPDATE_ROLLBACK_FAILED</code> state when CloudFormation cannot roll back
619          * all changes after a failed stack update. For example, you might have a stack
620          * that is rolling back to an old database instance that was deleted outside of
621          * CloudFormation. Because CloudFormation doesn't know the database was deleted, it
622          * assumes that the database instance still exists and attempts to roll back to it,
623          * causing the update rollback to fail.</p><p><h3>See Also:</h3>   <a
624          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback">AWS
625          * API Reference</a></p>
626          *
627          * Queues the request into a thread executor and triggers associated callback when operation has finished.
628          */
629         virtual void ContinueUpdateRollbackAsync(const Model::ContinueUpdateRollbackRequest& request, const ContinueUpdateRollbackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
630 
631         /**
632          * <p>Creates a list of changes that will be applied to a stack so that you can
633          * review the changes before executing them. You can create a change set for a
634          * stack that doesn't exist or an existing stack. If you create a change set for a
635          * stack that doesn't exist, the change set shows all of the resources that
636          * CloudFormation will create. If you create a change set for an existing stack,
637          * CloudFormation compares the stack's information with the information that you
638          * submit in the change set and lists the differences. Use change sets to
639          * understand which resources CloudFormation will create or change, and how it will
640          * change resources in an existing stack, before you create or update a stack.</p>
641          * <p>To create a change set for a stack that doesn't exist, for the
642          * <code>ChangeSetType</code> parameter, specify <code>CREATE</code>. To create a
643          * change set for an existing stack, specify <code>UPDATE</code> for the
644          * <code>ChangeSetType</code> parameter. To create a change set for an import
645          * operation, specify <code>IMPORT</code> for the <code>ChangeSetType</code>
646          * parameter. After the <code>CreateChangeSet</code> call successfully completes,
647          * CloudFormation starts creating the change set. To check the status of the change
648          * set or to review it, use the <a>DescribeChangeSet</a> action.</p> <p>When you
649          * are satisfied with the changes the change set will make, execute the change set
650          * by using the <a>ExecuteChangeSet</a> action. CloudFormation doesn't make changes
651          * until you execute the change set.</p> <p>To create a change set for the entire
652          * stack hierachy, set <code>IncludeNestedStacks</code> to
653          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
654          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">AWS
655          * API Reference</a></p>
656          */
657         virtual Model::CreateChangeSetOutcome CreateChangeSet(const Model::CreateChangeSetRequest& request) const;
658 
659         /**
660          * <p>Creates a list of changes that will be applied to a stack so that you can
661          * review the changes before executing them. You can create a change set for a
662          * stack that doesn't exist or an existing stack. If you create a change set for a
663          * stack that doesn't exist, the change set shows all of the resources that
664          * CloudFormation will create. If you create a change set for an existing stack,
665          * CloudFormation compares the stack's information with the information that you
666          * submit in the change set and lists the differences. Use change sets to
667          * understand which resources CloudFormation will create or change, and how it will
668          * change resources in an existing stack, before you create or update a stack.</p>
669          * <p>To create a change set for a stack that doesn't exist, for the
670          * <code>ChangeSetType</code> parameter, specify <code>CREATE</code>. To create a
671          * change set for an existing stack, specify <code>UPDATE</code> for the
672          * <code>ChangeSetType</code> parameter. To create a change set for an import
673          * operation, specify <code>IMPORT</code> for the <code>ChangeSetType</code>
674          * parameter. After the <code>CreateChangeSet</code> call successfully completes,
675          * CloudFormation starts creating the change set. To check the status of the change
676          * set or to review it, use the <a>DescribeChangeSet</a> action.</p> <p>When you
677          * are satisfied with the changes the change set will make, execute the change set
678          * by using the <a>ExecuteChangeSet</a> action. CloudFormation doesn't make changes
679          * until you execute the change set.</p> <p>To create a change set for the entire
680          * stack hierachy, set <code>IncludeNestedStacks</code> to
681          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
682          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">AWS
683          * API Reference</a></p>
684          *
685          * returns a future to the operation so that it can be executed in parallel to other requests.
686          */
687         virtual Model::CreateChangeSetOutcomeCallable CreateChangeSetCallable(const Model::CreateChangeSetRequest& request) const;
688 
689         /**
690          * <p>Creates a list of changes that will be applied to a stack so that you can
691          * review the changes before executing them. You can create a change set for a
692          * stack that doesn't exist or an existing stack. If you create a change set for a
693          * stack that doesn't exist, the change set shows all of the resources that
694          * CloudFormation will create. If you create a change set for an existing stack,
695          * CloudFormation compares the stack's information with the information that you
696          * submit in the change set and lists the differences. Use change sets to
697          * understand which resources CloudFormation will create or change, and how it will
698          * change resources in an existing stack, before you create or update a stack.</p>
699          * <p>To create a change set for a stack that doesn't exist, for the
700          * <code>ChangeSetType</code> parameter, specify <code>CREATE</code>. To create a
701          * change set for an existing stack, specify <code>UPDATE</code> for the
702          * <code>ChangeSetType</code> parameter. To create a change set for an import
703          * operation, specify <code>IMPORT</code> for the <code>ChangeSetType</code>
704          * parameter. After the <code>CreateChangeSet</code> call successfully completes,
705          * CloudFormation starts creating the change set. To check the status of the change
706          * set or to review it, use the <a>DescribeChangeSet</a> action.</p> <p>When you
707          * are satisfied with the changes the change set will make, execute the change set
708          * by using the <a>ExecuteChangeSet</a> action. CloudFormation doesn't make changes
709          * until you execute the change set.</p> <p>To create a change set for the entire
710          * stack hierachy, set <code>IncludeNestedStacks</code> to
711          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
712          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">AWS
713          * API Reference</a></p>
714          *
715          * Queues the request into a thread executor and triggers associated callback when operation has finished.
716          */
717         virtual void CreateChangeSetAsync(const Model::CreateChangeSetRequest& request, const CreateChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
718 
719         /**
720          * <p>Creates a stack as specified in the template. After the call completes
721          * successfully, the stack creation starts. You can check the status of the stack
722          * via the <a>DescribeStacks</a> API.</p><p><h3>See Also:</h3>   <a
723          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack">AWS
724          * API Reference</a></p>
725          */
726         virtual Model::CreateStackOutcome CreateStack(const Model::CreateStackRequest& request) const;
727 
728         /**
729          * <p>Creates a stack as specified in the template. After the call completes
730          * successfully, the stack creation starts. You can check the status of the stack
731          * via the <a>DescribeStacks</a> API.</p><p><h3>See Also:</h3>   <a
732          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack">AWS
733          * API Reference</a></p>
734          *
735          * returns a future to the operation so that it can be executed in parallel to other requests.
736          */
737         virtual Model::CreateStackOutcomeCallable CreateStackCallable(const Model::CreateStackRequest& request) const;
738 
739         /**
740          * <p>Creates a stack as specified in the template. After the call completes
741          * successfully, the stack creation starts. You can check the status of the stack
742          * via the <a>DescribeStacks</a> API.</p><p><h3>See Also:</h3>   <a
743          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack">AWS
744          * API Reference</a></p>
745          *
746          * Queues the request into a thread executor and triggers associated callback when operation has finished.
747          */
748         virtual void CreateStackAsync(const Model::CreateStackRequest& request, const CreateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
749 
750         /**
751          * <p>Creates stack instances for the specified accounts, within the specified
752          * Regions. A stack instance refers to a stack in a specific account and Region.
753          * You must specify at least one value for either <code>Accounts</code> or
754          * <code>DeploymentTargets</code>, and you must specify at least one value for
755          * <code>Regions</code>.</p><p><h3>See Also:</h3>   <a
756          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances">AWS
757          * API Reference</a></p>
758          */
759         virtual Model::CreateStackInstancesOutcome CreateStackInstances(const Model::CreateStackInstancesRequest& request) const;
760 
761         /**
762          * <p>Creates stack instances for the specified accounts, within the specified
763          * Regions. A stack instance refers to a stack in a specific account and Region.
764          * You must specify at least one value for either <code>Accounts</code> or
765          * <code>DeploymentTargets</code>, and you must specify at least one value for
766          * <code>Regions</code>.</p><p><h3>See Also:</h3>   <a
767          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances">AWS
768          * API Reference</a></p>
769          *
770          * returns a future to the operation so that it can be executed in parallel to other requests.
771          */
772         virtual Model::CreateStackInstancesOutcomeCallable CreateStackInstancesCallable(const Model::CreateStackInstancesRequest& request) const;
773 
774         /**
775          * <p>Creates stack instances for the specified accounts, within the specified
776          * Regions. A stack instance refers to a stack in a specific account and Region.
777          * You must specify at least one value for either <code>Accounts</code> or
778          * <code>DeploymentTargets</code>, and you must specify at least one value for
779          * <code>Regions</code>.</p><p><h3>See Also:</h3>   <a
780          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances">AWS
781          * API Reference</a></p>
782          *
783          * Queues the request into a thread executor and triggers associated callback when operation has finished.
784          */
785         virtual void CreateStackInstancesAsync(const Model::CreateStackInstancesRequest& request, const CreateStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
786 
787         /**
788          * <p>Creates a stack set.</p><p><h3>See Also:</h3>   <a
789          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet">AWS
790          * API Reference</a></p>
791          */
792         virtual Model::CreateStackSetOutcome CreateStackSet(const Model::CreateStackSetRequest& request) const;
793 
794         /**
795          * <p>Creates a stack set.</p><p><h3>See Also:</h3>   <a
796          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet">AWS
797          * API Reference</a></p>
798          *
799          * returns a future to the operation so that it can be executed in parallel to other requests.
800          */
801         virtual Model::CreateStackSetOutcomeCallable CreateStackSetCallable(const Model::CreateStackSetRequest& request) const;
802 
803         /**
804          * <p>Creates a stack set.</p><p><h3>See Also:</h3>   <a
805          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet">AWS
806          * API Reference</a></p>
807          *
808          * Queues the request into a thread executor and triggers associated callback when operation has finished.
809          */
810         virtual void CreateStackSetAsync(const Model::CreateStackSetRequest& request, const CreateStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
811 
812         /**
813          * <p>Deactivates a public extension that was previously activated in this account
814          * and region.</p> <p>Once deactivated, an extension cannot be used in any
815          * CloudFormation operation. This includes stack update operations where the stack
816          * template includes the extension, even if no updates are being made to the
817          * extension. In addition, deactivated extensions are not automatically updated if
818          * a new version of the extension is released.</p><p><h3>See Also:</h3>   <a
819          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType">AWS
820          * API Reference</a></p>
821          */
822         virtual Model::DeactivateTypeOutcome DeactivateType(const Model::DeactivateTypeRequest& request) const;
823 
824         /**
825          * <p>Deactivates a public extension that was previously activated in this account
826          * and region.</p> <p>Once deactivated, an extension cannot be used in any
827          * CloudFormation operation. This includes stack update operations where the stack
828          * template includes the extension, even if no updates are being made to the
829          * extension. In addition, deactivated extensions are not automatically updated if
830          * a new version of the extension is released.</p><p><h3>See Also:</h3>   <a
831          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType">AWS
832          * API Reference</a></p>
833          *
834          * returns a future to the operation so that it can be executed in parallel to other requests.
835          */
836         virtual Model::DeactivateTypeOutcomeCallable DeactivateTypeCallable(const Model::DeactivateTypeRequest& request) const;
837 
838         /**
839          * <p>Deactivates a public extension that was previously activated in this account
840          * and region.</p> <p>Once deactivated, an extension cannot be used in any
841          * CloudFormation operation. This includes stack update operations where the stack
842          * template includes the extension, even if no updates are being made to the
843          * extension. In addition, deactivated extensions are not automatically updated if
844          * a new version of the extension is released.</p><p><h3>See Also:</h3>   <a
845          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType">AWS
846          * API Reference</a></p>
847          *
848          * Queues the request into a thread executor and triggers associated callback when operation has finished.
849          */
850         virtual void DeactivateTypeAsync(const Model::DeactivateTypeRequest& request, const DeactivateTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
851 
852         /**
853          * <p>Deletes the specified change set. Deleting change sets ensures that no one
854          * executes the wrong change set.</p> <p>If the call successfully completes,
855          * CloudFormation successfully deleted the change set.</p> <p>If
856          * <code>IncludeNestedStacks</code> specifies <code>True</code> during the creation
857          * of the nested change set, then <code>DeleteChangeSet</code> will delete all
858          * change sets that belong to the stacks hierarchy and will also delete all change
859          * sets for nested stacks with the status of
860          * <code>REVIEW_IN_PROGRESS</code>.</p><p><h3>See Also:</h3>   <a
861          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet">AWS
862          * API Reference</a></p>
863          */
864         virtual Model::DeleteChangeSetOutcome DeleteChangeSet(const Model::DeleteChangeSetRequest& request) const;
865 
866         /**
867          * <p>Deletes the specified change set. Deleting change sets ensures that no one
868          * executes the wrong change set.</p> <p>If the call successfully completes,
869          * CloudFormation successfully deleted the change set.</p> <p>If
870          * <code>IncludeNestedStacks</code> specifies <code>True</code> during the creation
871          * of the nested change set, then <code>DeleteChangeSet</code> will delete all
872          * change sets that belong to the stacks hierarchy and will also delete all change
873          * sets for nested stacks with the status of
874          * <code>REVIEW_IN_PROGRESS</code>.</p><p><h3>See Also:</h3>   <a
875          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet">AWS
876          * API Reference</a></p>
877          *
878          * returns a future to the operation so that it can be executed in parallel to other requests.
879          */
880         virtual Model::DeleteChangeSetOutcomeCallable DeleteChangeSetCallable(const Model::DeleteChangeSetRequest& request) const;
881 
882         /**
883          * <p>Deletes the specified change set. Deleting change sets ensures that no one
884          * executes the wrong change set.</p> <p>If the call successfully completes,
885          * CloudFormation successfully deleted the change set.</p> <p>If
886          * <code>IncludeNestedStacks</code> specifies <code>True</code> during the creation
887          * of the nested change set, then <code>DeleteChangeSet</code> will delete all
888          * change sets that belong to the stacks hierarchy and will also delete all change
889          * sets for nested stacks with the status of
890          * <code>REVIEW_IN_PROGRESS</code>.</p><p><h3>See Also:</h3>   <a
891          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet">AWS
892          * API Reference</a></p>
893          *
894          * Queues the request into a thread executor and triggers associated callback when operation has finished.
895          */
896         virtual void DeleteChangeSetAsync(const Model::DeleteChangeSetRequest& request, const DeleteChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
897 
898         /**
899          * <p>Deletes a specified stack. Once the call completes successfully, stack
900          * deletion starts. Deleted stacks do not show up in the <a>DescribeStacks</a> API
901          * if the deletion has been completed successfully.</p><p><h3>See Also:</h3>   <a
902          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack">AWS
903          * API Reference</a></p>
904          */
905         virtual Model::DeleteStackOutcome DeleteStack(const Model::DeleteStackRequest& request) const;
906 
907         /**
908          * <p>Deletes a specified stack. Once the call completes successfully, stack
909          * deletion starts. Deleted stacks do not show up in the <a>DescribeStacks</a> API
910          * if the deletion has been completed successfully.</p><p><h3>See Also:</h3>   <a
911          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack">AWS
912          * API Reference</a></p>
913          *
914          * returns a future to the operation so that it can be executed in parallel to other requests.
915          */
916         virtual Model::DeleteStackOutcomeCallable DeleteStackCallable(const Model::DeleteStackRequest& request) const;
917 
918         /**
919          * <p>Deletes a specified stack. Once the call completes successfully, stack
920          * deletion starts. Deleted stacks do not show up in the <a>DescribeStacks</a> API
921          * if the deletion has been completed successfully.</p><p><h3>See Also:</h3>   <a
922          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack">AWS
923          * API Reference</a></p>
924          *
925          * Queues the request into a thread executor and triggers associated callback when operation has finished.
926          */
927         virtual void DeleteStackAsync(const Model::DeleteStackRequest& request, const DeleteStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
928 
929         /**
930          * <p>Deletes stack instances for the specified accounts, in the specified
931          * Regions.</p><p><h3>See Also:</h3>   <a
932          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances">AWS
933          * API Reference</a></p>
934          */
935         virtual Model::DeleteStackInstancesOutcome DeleteStackInstances(const Model::DeleteStackInstancesRequest& request) const;
936 
937         /**
938          * <p>Deletes stack instances for the specified accounts, in the specified
939          * Regions.</p><p><h3>See Also:</h3>   <a
940          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances">AWS
941          * API Reference</a></p>
942          *
943          * returns a future to the operation so that it can be executed in parallel to other requests.
944          */
945         virtual Model::DeleteStackInstancesOutcomeCallable DeleteStackInstancesCallable(const Model::DeleteStackInstancesRequest& request) const;
946 
947         /**
948          * <p>Deletes stack instances for the specified accounts, in the specified
949          * Regions.</p><p><h3>See Also:</h3>   <a
950          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances">AWS
951          * API Reference</a></p>
952          *
953          * Queues the request into a thread executor and triggers associated callback when operation has finished.
954          */
955         virtual void DeleteStackInstancesAsync(const Model::DeleteStackInstancesRequest& request, const DeleteStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
956 
957         /**
958          * <p>Deletes a stack set. Before you can delete a stack set, all of its member
959          * stack instances must be deleted. For more information about how to do this, see
960          * <a>DeleteStackInstances</a>.</p><p><h3>See Also:</h3>   <a
961          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet">AWS
962          * API Reference</a></p>
963          */
964         virtual Model::DeleteStackSetOutcome DeleteStackSet(const Model::DeleteStackSetRequest& request) const;
965 
966         /**
967          * <p>Deletes a stack set. Before you can delete a stack set, all of its member
968          * stack instances must be deleted. For more information about how to do this, see
969          * <a>DeleteStackInstances</a>.</p><p><h3>See Also:</h3>   <a
970          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet">AWS
971          * API Reference</a></p>
972          *
973          * returns a future to the operation so that it can be executed in parallel to other requests.
974          */
975         virtual Model::DeleteStackSetOutcomeCallable DeleteStackSetCallable(const Model::DeleteStackSetRequest& request) const;
976 
977         /**
978          * <p>Deletes a stack set. Before you can delete a stack set, all of its member
979          * stack instances must be deleted. For more information about how to do this, see
980          * <a>DeleteStackInstances</a>.</p><p><h3>See Also:</h3>   <a
981          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet">AWS
982          * API Reference</a></p>
983          *
984          * Queues the request into a thread executor and triggers associated callback when operation has finished.
985          */
986         virtual void DeleteStackSetAsync(const Model::DeleteStackSetRequest& request, const DeleteStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
987 
988         /**
989          * <p>Marks an extension or extension version as <code>DEPRECATED</code> in the
990          * CloudFormation registry, removing it from active use. Deprecated extensions or
991          * extension versions cannot be used in CloudFormation operations.</p> <p>To
992          * deregister an entire extension, you must individually deregister all active
993          * versions of that extension. If an extension has only a single active version,
994          * deregistering that version results in the extension itself being deregistered
995          * and marked as deprecated in the registry. </p> <p>You cannot deregister the
996          * default version of an extension if there are other active version of that
997          * extension. If you do deregister the default version of an extension, the
998          * textensionype itself is deregistered as well and marked as deprecated. </p>
999          * <p>To view the deprecation status of an extension or extension version, use <a
1000          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.</p><p><h3>See
1001          * Also:</h3>   <a
1002          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType">AWS
1003          * API Reference</a></p>
1004          */
1005         virtual Model::DeregisterTypeOutcome DeregisterType(const Model::DeregisterTypeRequest& request) const;
1006 
1007         /**
1008          * <p>Marks an extension or extension version as <code>DEPRECATED</code> in the
1009          * CloudFormation registry, removing it from active use. Deprecated extensions or
1010          * extension versions cannot be used in CloudFormation operations.</p> <p>To
1011          * deregister an entire extension, you must individually deregister all active
1012          * versions of that extension. If an extension has only a single active version,
1013          * deregistering that version results in the extension itself being deregistered
1014          * and marked as deprecated in the registry. </p> <p>You cannot deregister the
1015          * default version of an extension if there are other active version of that
1016          * extension. If you do deregister the default version of an extension, the
1017          * textensionype itself is deregistered as well and marked as deprecated. </p>
1018          * <p>To view the deprecation status of an extension or extension version, use <a
1019          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.</p><p><h3>See
1020          * Also:</h3>   <a
1021          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType">AWS
1022          * API Reference</a></p>
1023          *
1024          * returns a future to the operation so that it can be executed in parallel to other requests.
1025          */
1026         virtual Model::DeregisterTypeOutcomeCallable DeregisterTypeCallable(const Model::DeregisterTypeRequest& request) const;
1027 
1028         /**
1029          * <p>Marks an extension or extension version as <code>DEPRECATED</code> in the
1030          * CloudFormation registry, removing it from active use. Deprecated extensions or
1031          * extension versions cannot be used in CloudFormation operations.</p> <p>To
1032          * deregister an entire extension, you must individually deregister all active
1033          * versions of that extension. If an extension has only a single active version,
1034          * deregistering that version results in the extension itself being deregistered
1035          * and marked as deprecated in the registry. </p> <p>You cannot deregister the
1036          * default version of an extension if there are other active version of that
1037          * extension. If you do deregister the default version of an extension, the
1038          * textensionype itself is deregistered as well and marked as deprecated. </p>
1039          * <p>To view the deprecation status of an extension or extension version, use <a
1040          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.</p><p><h3>See
1041          * Also:</h3>   <a
1042          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType">AWS
1043          * API Reference</a></p>
1044          *
1045          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1046          */
1047         virtual void DeregisterTypeAsync(const Model::DeregisterTypeRequest& request, const DeregisterTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1048 
1049         /**
1050          * <p>Retrieves your account's CloudFormation limits, such as the maximum number of
1051          * stacks that you can create in your account. For more information about account
1052          * limits, see <a
1053          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html">CloudFormation
1054          * Limits</a> in the <i>CloudFormation User Guide</i>.</p><p><h3>See Also:</h3>
1055          * <a
1056          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits">AWS
1057          * API Reference</a></p>
1058          */
1059         virtual Model::DescribeAccountLimitsOutcome DescribeAccountLimits(const Model::DescribeAccountLimitsRequest& request) const;
1060 
1061         /**
1062          * <p>Retrieves your account's CloudFormation limits, such as the maximum number of
1063          * stacks that you can create in your account. For more information about account
1064          * limits, see <a
1065          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html">CloudFormation
1066          * Limits</a> in the <i>CloudFormation User Guide</i>.</p><p><h3>See Also:</h3>
1067          * <a
1068          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits">AWS
1069          * API Reference</a></p>
1070          *
1071          * returns a future to the operation so that it can be executed in parallel to other requests.
1072          */
1073         virtual Model::DescribeAccountLimitsOutcomeCallable DescribeAccountLimitsCallable(const Model::DescribeAccountLimitsRequest& request) const;
1074 
1075         /**
1076          * <p>Retrieves your account's CloudFormation limits, such as the maximum number of
1077          * stacks that you can create in your account. For more information about account
1078          * limits, see <a
1079          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html">CloudFormation
1080          * Limits</a> in the <i>CloudFormation User Guide</i>.</p><p><h3>See Also:</h3>
1081          * <a
1082          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits">AWS
1083          * API Reference</a></p>
1084          *
1085          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1086          */
1087         virtual void DescribeAccountLimitsAsync(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1088 
1089         /**
1090          * <p>Returns the inputs for the change set and a list of changes that
1091          * CloudFormation will make if you execute the change set. For more information,
1092          * see <a
1093          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html">Updating
1094          * Stacks Using Change Sets</a> in the CloudFormation User Guide.</p><p><h3>See
1095          * Also:</h3>   <a
1096          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet">AWS
1097          * API Reference</a></p>
1098          */
1099         virtual Model::DescribeChangeSetOutcome DescribeChangeSet(const Model::DescribeChangeSetRequest& request) const;
1100 
1101         /**
1102          * <p>Returns the inputs for the change set and a list of changes that
1103          * CloudFormation will make if you execute the change set. For more information,
1104          * see <a
1105          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html">Updating
1106          * Stacks Using Change Sets</a> in the CloudFormation User Guide.</p><p><h3>See
1107          * Also:</h3>   <a
1108          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet">AWS
1109          * API Reference</a></p>
1110          *
1111          * returns a future to the operation so that it can be executed in parallel to other requests.
1112          */
1113         virtual Model::DescribeChangeSetOutcomeCallable DescribeChangeSetCallable(const Model::DescribeChangeSetRequest& request) const;
1114 
1115         /**
1116          * <p>Returns the inputs for the change set and a list of changes that
1117          * CloudFormation will make if you execute the change set. For more information,
1118          * see <a
1119          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html">Updating
1120          * Stacks Using Change Sets</a> in the CloudFormation User Guide.</p><p><h3>See
1121          * Also:</h3>   <a
1122          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet">AWS
1123          * API Reference</a></p>
1124          *
1125          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1126          */
1127         virtual void DescribeChangeSetAsync(const Model::DescribeChangeSetRequest& request, const DescribeChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1128 
1129         /**
1130          * <p>Returns information about a CloudFormation extension publisher.</p> <p>If you
1131          * do not supply a <code>PublisherId</code>, and you have registered as an
1132          * extension publisher, <code>DescribePublisher</code> returns information about
1133          * your own publisher account. </p> <p>For more information on registering as a
1134          * publisher, see:</p> <ul> <li> <p> <a
1135          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>
1136          * </p> </li> <li> <p> <a
1137          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
1138          * extensions to make them available for public use</a> in the <i>CloudFormation
1139          * CLI User Guide</i> </p> </li> </ul><p><h3>See Also:</h3>   <a
1140          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher">AWS
1141          * API Reference</a></p>
1142          */
1143         virtual Model::DescribePublisherOutcome DescribePublisher(const Model::DescribePublisherRequest& request) const;
1144 
1145         /**
1146          * <p>Returns information about a CloudFormation extension publisher.</p> <p>If you
1147          * do not supply a <code>PublisherId</code>, and you have registered as an
1148          * extension publisher, <code>DescribePublisher</code> returns information about
1149          * your own publisher account. </p> <p>For more information on registering as a
1150          * publisher, see:</p> <ul> <li> <p> <a
1151          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>
1152          * </p> </li> <li> <p> <a
1153          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
1154          * extensions to make them available for public use</a> in the <i>CloudFormation
1155          * CLI User Guide</i> </p> </li> </ul><p><h3>See Also:</h3>   <a
1156          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher">AWS
1157          * API Reference</a></p>
1158          *
1159          * returns a future to the operation so that it can be executed in parallel to other requests.
1160          */
1161         virtual Model::DescribePublisherOutcomeCallable DescribePublisherCallable(const Model::DescribePublisherRequest& request) const;
1162 
1163         /**
1164          * <p>Returns information about a CloudFormation extension publisher.</p> <p>If you
1165          * do not supply a <code>PublisherId</code>, and you have registered as an
1166          * extension publisher, <code>DescribePublisher</code> returns information about
1167          * your own publisher account. </p> <p>For more information on registering as a
1168          * publisher, see:</p> <ul> <li> <p> <a
1169          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>
1170          * </p> </li> <li> <p> <a
1171          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
1172          * extensions to make them available for public use</a> in the <i>CloudFormation
1173          * CLI User Guide</i> </p> </li> </ul><p><h3>See Also:</h3>   <a
1174          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher">AWS
1175          * API Reference</a></p>
1176          *
1177          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1178          */
1179         virtual void DescribePublisherAsync(const Model::DescribePublisherRequest& request, const DescribePublisherResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1180 
1181         /**
1182          * <p>Returns information about a stack drift detection operation. A stack drift
1183          * detection operation detects whether a stack's actual configuration differs, or
1184          * has <i>drifted</i>, from it's expected configuration, as defined in the stack
1185          * template and any values specified as template parameters. A stack is considered
1186          * to have drifted if one or more of its resources have drifted. For more
1187          * information on stack and resource drift, see <a
1188          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1189          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1190          * <a>DetectStackDrift</a> to initiate a stack drift detection operation.
1191          * <code>DetectStackDrift</code> returns a <code>StackDriftDetectionId</code> you
1192          * can use to monitor the progress of the operation using
1193          * <code>DescribeStackDriftDetectionStatus</code>. Once the drift detection
1194          * operation has completed, use <a>DescribeStackResourceDrifts</a> to return drift
1195          * information about the stack and its resources.</p><p><h3>See Also:</h3>   <a
1196          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus">AWS
1197          * API Reference</a></p>
1198          */
1199         virtual Model::DescribeStackDriftDetectionStatusOutcome DescribeStackDriftDetectionStatus(const Model::DescribeStackDriftDetectionStatusRequest& request) const;
1200 
1201         /**
1202          * <p>Returns information about a stack drift detection operation. A stack drift
1203          * detection operation detects whether a stack's actual configuration differs, or
1204          * has <i>drifted</i>, from it's expected configuration, as defined in the stack
1205          * template and any values specified as template parameters. A stack is considered
1206          * to have drifted if one or more of its resources have drifted. For more
1207          * information on stack and resource drift, see <a
1208          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1209          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1210          * <a>DetectStackDrift</a> to initiate a stack drift detection operation.
1211          * <code>DetectStackDrift</code> returns a <code>StackDriftDetectionId</code> you
1212          * can use to monitor the progress of the operation using
1213          * <code>DescribeStackDriftDetectionStatus</code>. Once the drift detection
1214          * operation has completed, use <a>DescribeStackResourceDrifts</a> to return drift
1215          * information about the stack and its resources.</p><p><h3>See Also:</h3>   <a
1216          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus">AWS
1217          * API Reference</a></p>
1218          *
1219          * returns a future to the operation so that it can be executed in parallel to other requests.
1220          */
1221         virtual Model::DescribeStackDriftDetectionStatusOutcomeCallable DescribeStackDriftDetectionStatusCallable(const Model::DescribeStackDriftDetectionStatusRequest& request) const;
1222 
1223         /**
1224          * <p>Returns information about a stack drift detection operation. A stack drift
1225          * detection operation detects whether a stack's actual configuration differs, or
1226          * has <i>drifted</i>, from it's expected configuration, as defined in the stack
1227          * template and any values specified as template parameters. A stack is considered
1228          * to have drifted if one or more of its resources have drifted. For more
1229          * information on stack and resource drift, see <a
1230          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1231          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1232          * <a>DetectStackDrift</a> to initiate a stack drift detection operation.
1233          * <code>DetectStackDrift</code> returns a <code>StackDriftDetectionId</code> you
1234          * can use to monitor the progress of the operation using
1235          * <code>DescribeStackDriftDetectionStatus</code>. Once the drift detection
1236          * operation has completed, use <a>DescribeStackResourceDrifts</a> to return drift
1237          * information about the stack and its resources.</p><p><h3>See Also:</h3>   <a
1238          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus">AWS
1239          * API Reference</a></p>
1240          *
1241          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1242          */
1243         virtual void DescribeStackDriftDetectionStatusAsync(const Model::DescribeStackDriftDetectionStatusRequest& request, const DescribeStackDriftDetectionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1244 
1245         /**
1246          * <p>Returns all stack related events for a specified stack in reverse
1247          * chronological order. For more information about a stack's event history, go to
1248          * <a
1249          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html">Stacks</a>
1250          * in the CloudFormation User Guide.</p>  <p>You can list events for stacks
1251          * that have failed to create or have been deleted by specifying the unique stack
1252          * identifier (stack ID).</p> <p><h3>See Also:</h3>   <a
1253          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents">AWS
1254          * API Reference</a></p>
1255          */
1256         virtual Model::DescribeStackEventsOutcome DescribeStackEvents(const Model::DescribeStackEventsRequest& request) const;
1257 
1258         /**
1259          * <p>Returns all stack related events for a specified stack in reverse
1260          * chronological order. For more information about a stack's event history, go to
1261          * <a
1262          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html">Stacks</a>
1263          * in the CloudFormation User Guide.</p>  <p>You can list events for stacks
1264          * that have failed to create or have been deleted by specifying the unique stack
1265          * identifier (stack ID).</p> <p><h3>See Also:</h3>   <a
1266          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents">AWS
1267          * API Reference</a></p>
1268          *
1269          * returns a future to the operation so that it can be executed in parallel to other requests.
1270          */
1271         virtual Model::DescribeStackEventsOutcomeCallable DescribeStackEventsCallable(const Model::DescribeStackEventsRequest& request) const;
1272 
1273         /**
1274          * <p>Returns all stack related events for a specified stack in reverse
1275          * chronological order. For more information about a stack's event history, go to
1276          * <a
1277          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html">Stacks</a>
1278          * in the CloudFormation User Guide.</p>  <p>You can list events for stacks
1279          * that have failed to create or have been deleted by specifying the unique stack
1280          * identifier (stack ID).</p> <p><h3>See Also:</h3>   <a
1281          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents">AWS
1282          * API Reference</a></p>
1283          *
1284          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1285          */
1286         virtual void DescribeStackEventsAsync(const Model::DescribeStackEventsRequest& request, const DescribeStackEventsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1287 
1288         /**
1289          * <p>Returns the stack instance that's associated with the specified stack set,
1290          * Amazon Web Services account, and Region.</p> <p>For a list of stack instances
1291          * that are associated with a specific stack set, use
1292          * <a>ListStackInstances</a>.</p><p><h3>See Also:</h3>   <a
1293          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance">AWS
1294          * API Reference</a></p>
1295          */
1296         virtual Model::DescribeStackInstanceOutcome DescribeStackInstance(const Model::DescribeStackInstanceRequest& request) const;
1297 
1298         /**
1299          * <p>Returns the stack instance that's associated with the specified stack set,
1300          * Amazon Web Services account, and Region.</p> <p>For a list of stack instances
1301          * that are associated with a specific stack set, use
1302          * <a>ListStackInstances</a>.</p><p><h3>See Also:</h3>   <a
1303          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance">AWS
1304          * API Reference</a></p>
1305          *
1306          * returns a future to the operation so that it can be executed in parallel to other requests.
1307          */
1308         virtual Model::DescribeStackInstanceOutcomeCallable DescribeStackInstanceCallable(const Model::DescribeStackInstanceRequest& request) const;
1309 
1310         /**
1311          * <p>Returns the stack instance that's associated with the specified stack set,
1312          * Amazon Web Services account, and Region.</p> <p>For a list of stack instances
1313          * that are associated with a specific stack set, use
1314          * <a>ListStackInstances</a>.</p><p><h3>See Also:</h3>   <a
1315          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance">AWS
1316          * API Reference</a></p>
1317          *
1318          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1319          */
1320         virtual void DescribeStackInstanceAsync(const Model::DescribeStackInstanceRequest& request, const DescribeStackInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1321 
1322         /**
1323          * <p>Returns a description of the specified resource in the specified stack.</p>
1324          * <p>For deleted stacks, DescribeStackResource returns resource information for up
1325          * to 90 days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
1326          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource">AWS
1327          * API Reference</a></p>
1328          */
1329         virtual Model::DescribeStackResourceOutcome DescribeStackResource(const Model::DescribeStackResourceRequest& request) const;
1330 
1331         /**
1332          * <p>Returns a description of the specified resource in the specified stack.</p>
1333          * <p>For deleted stacks, DescribeStackResource returns resource information for up
1334          * to 90 days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
1335          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource">AWS
1336          * API Reference</a></p>
1337          *
1338          * returns a future to the operation so that it can be executed in parallel to other requests.
1339          */
1340         virtual Model::DescribeStackResourceOutcomeCallable DescribeStackResourceCallable(const Model::DescribeStackResourceRequest& request) const;
1341 
1342         /**
1343          * <p>Returns a description of the specified resource in the specified stack.</p>
1344          * <p>For deleted stacks, DescribeStackResource returns resource information for up
1345          * to 90 days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
1346          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource">AWS
1347          * API Reference</a></p>
1348          *
1349          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1350          */
1351         virtual void DescribeStackResourceAsync(const Model::DescribeStackResourceRequest& request, const DescribeStackResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1352 
1353         /**
1354          * <p>Returns drift information for the resources that have been checked for drift
1355          * in the specified stack. This includes actual and expected configuration values
1356          * for resources where CloudFormation detects configuration drift.</p> <p>For a
1357          * given stack, there will be one <code>StackResourceDrift</code> for each stack
1358          * resource that has been checked for drift. Resources that haven't yet been
1359          * checked for drift are not included. Resources that do not currently support
1360          * drift detection are not checked, and so not included. For a list of resources
1361          * that support drift detection, see <a
1362          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1363          * that Support Drift Detection</a>.</p> <p>Use <a>DetectStackResourceDrift</a> to
1364          * detect drift on individual resources, or <a>DetectStackDrift</a> to detect drift
1365          * on all supported resources for a given stack.</p><p><h3>See Also:</h3>   <a
1366          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts">AWS
1367          * API Reference</a></p>
1368          */
1369         virtual Model::DescribeStackResourceDriftsOutcome DescribeStackResourceDrifts(const Model::DescribeStackResourceDriftsRequest& request) const;
1370 
1371         /**
1372          * <p>Returns drift information for the resources that have been checked for drift
1373          * in the specified stack. This includes actual and expected configuration values
1374          * for resources where CloudFormation detects configuration drift.</p> <p>For a
1375          * given stack, there will be one <code>StackResourceDrift</code> for each stack
1376          * resource that has been checked for drift. Resources that haven't yet been
1377          * checked for drift are not included. Resources that do not currently support
1378          * drift detection are not checked, and so not included. For a list of resources
1379          * that support drift detection, see <a
1380          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1381          * that Support Drift Detection</a>.</p> <p>Use <a>DetectStackResourceDrift</a> to
1382          * detect drift on individual resources, or <a>DetectStackDrift</a> to detect drift
1383          * on all supported resources for a given stack.</p><p><h3>See Also:</h3>   <a
1384          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts">AWS
1385          * API Reference</a></p>
1386          *
1387          * returns a future to the operation so that it can be executed in parallel to other requests.
1388          */
1389         virtual Model::DescribeStackResourceDriftsOutcomeCallable DescribeStackResourceDriftsCallable(const Model::DescribeStackResourceDriftsRequest& request) const;
1390 
1391         /**
1392          * <p>Returns drift information for the resources that have been checked for drift
1393          * in the specified stack. This includes actual and expected configuration values
1394          * for resources where CloudFormation detects configuration drift.</p> <p>For a
1395          * given stack, there will be one <code>StackResourceDrift</code> for each stack
1396          * resource that has been checked for drift. Resources that haven't yet been
1397          * checked for drift are not included. Resources that do not currently support
1398          * drift detection are not checked, and so not included. For a list of resources
1399          * that support drift detection, see <a
1400          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1401          * that Support Drift Detection</a>.</p> <p>Use <a>DetectStackResourceDrift</a> to
1402          * detect drift on individual resources, or <a>DetectStackDrift</a> to detect drift
1403          * on all supported resources for a given stack.</p><p><h3>See Also:</h3>   <a
1404          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts">AWS
1405          * API Reference</a></p>
1406          *
1407          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1408          */
1409         virtual void DescribeStackResourceDriftsAsync(const Model::DescribeStackResourceDriftsRequest& request, const DescribeStackResourceDriftsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1410 
1411         /**
1412          * <p>Returns Amazon Web Services resource descriptions for running and deleted
1413          * stacks. If <code>StackName</code> is specified, all the associated resources
1414          * that are part of the stack are returned. If <code>PhysicalResourceId</code> is
1415          * specified, the associated resources of the stack that the resource belongs to
1416          * are returned.</p>  <p>Only the first 100 resources will be returned. If
1417          * your stack has more resources than this, you should use
1418          * <code>ListStackResources</code> instead.</p>  <p>For deleted stacks,
1419          * <code>DescribeStackResources</code> returns resource information for up to 90
1420          * days after the stack has been deleted.</p> <p>You must specify either
1421          * <code>StackName</code> or <code>PhysicalResourceId</code>, but not both. In
1422          * addition, you can specify <code>LogicalResourceId</code> to filter the returned
1423          * result. For more information about resources, the <code>LogicalResourceId</code>
1424          * and <code>PhysicalResourceId</code>, go to the <a
1425          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/">CloudFormation
1426          * User Guide</a>.</p>  <p>A <code>ValidationError</code> is returned if you
1427          * specify both <code>StackName</code> and <code>PhysicalResourceId</code> in the
1428          * same request.</p> <p><h3>See Also:</h3>   <a
1429          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources">AWS
1430          * API Reference</a></p>
1431          */
1432         virtual Model::DescribeStackResourcesOutcome DescribeStackResources(const Model::DescribeStackResourcesRequest& request) const;
1433 
1434         /**
1435          * <p>Returns Amazon Web Services resource descriptions for running and deleted
1436          * stacks. If <code>StackName</code> is specified, all the associated resources
1437          * that are part of the stack are returned. If <code>PhysicalResourceId</code> is
1438          * specified, the associated resources of the stack that the resource belongs to
1439          * are returned.</p>  <p>Only the first 100 resources will be returned. If
1440          * your stack has more resources than this, you should use
1441          * <code>ListStackResources</code> instead.</p>  <p>For deleted stacks,
1442          * <code>DescribeStackResources</code> returns resource information for up to 90
1443          * days after the stack has been deleted.</p> <p>You must specify either
1444          * <code>StackName</code> or <code>PhysicalResourceId</code>, but not both. In
1445          * addition, you can specify <code>LogicalResourceId</code> to filter the returned
1446          * result. For more information about resources, the <code>LogicalResourceId</code>
1447          * and <code>PhysicalResourceId</code>, go to the <a
1448          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/">CloudFormation
1449          * User Guide</a>.</p>  <p>A <code>ValidationError</code> is returned if you
1450          * specify both <code>StackName</code> and <code>PhysicalResourceId</code> in the
1451          * same request.</p> <p><h3>See Also:</h3>   <a
1452          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources">AWS
1453          * API Reference</a></p>
1454          *
1455          * returns a future to the operation so that it can be executed in parallel to other requests.
1456          */
1457         virtual Model::DescribeStackResourcesOutcomeCallable DescribeStackResourcesCallable(const Model::DescribeStackResourcesRequest& request) const;
1458 
1459         /**
1460          * <p>Returns Amazon Web Services resource descriptions for running and deleted
1461          * stacks. If <code>StackName</code> is specified, all the associated resources
1462          * that are part of the stack are returned. If <code>PhysicalResourceId</code> is
1463          * specified, the associated resources of the stack that the resource belongs to
1464          * are returned.</p>  <p>Only the first 100 resources will be returned. If
1465          * your stack has more resources than this, you should use
1466          * <code>ListStackResources</code> instead.</p>  <p>For deleted stacks,
1467          * <code>DescribeStackResources</code> returns resource information for up to 90
1468          * days after the stack has been deleted.</p> <p>You must specify either
1469          * <code>StackName</code> or <code>PhysicalResourceId</code>, but not both. In
1470          * addition, you can specify <code>LogicalResourceId</code> to filter the returned
1471          * result. For more information about resources, the <code>LogicalResourceId</code>
1472          * and <code>PhysicalResourceId</code>, go to the <a
1473          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/">CloudFormation
1474          * User Guide</a>.</p>  <p>A <code>ValidationError</code> is returned if you
1475          * specify both <code>StackName</code> and <code>PhysicalResourceId</code> in the
1476          * same request.</p> <p><h3>See Also:</h3>   <a
1477          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources">AWS
1478          * API Reference</a></p>
1479          *
1480          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1481          */
1482         virtual void DescribeStackResourcesAsync(const Model::DescribeStackResourcesRequest& request, const DescribeStackResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1483 
1484         /**
1485          * <p>Returns the description of the specified stack set. </p><p><h3>See Also:</h3>
1486          * <a
1487          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet">AWS
1488          * API Reference</a></p>
1489          */
1490         virtual Model::DescribeStackSetOutcome DescribeStackSet(const Model::DescribeStackSetRequest& request) const;
1491 
1492         /**
1493          * <p>Returns the description of the specified stack set. </p><p><h3>See Also:</h3>
1494          * <a
1495          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet">AWS
1496          * API Reference</a></p>
1497          *
1498          * returns a future to the operation so that it can be executed in parallel to other requests.
1499          */
1500         virtual Model::DescribeStackSetOutcomeCallable DescribeStackSetCallable(const Model::DescribeStackSetRequest& request) const;
1501 
1502         /**
1503          * <p>Returns the description of the specified stack set. </p><p><h3>See Also:</h3>
1504          * <a
1505          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet">AWS
1506          * API Reference</a></p>
1507          *
1508          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1509          */
1510         virtual void DescribeStackSetAsync(const Model::DescribeStackSetRequest& request, const DescribeStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1511 
1512         /**
1513          * <p>Returns the description of the specified stack set operation. </p><p><h3>See
1514          * Also:</h3>   <a
1515          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation">AWS
1516          * API Reference</a></p>
1517          */
1518         virtual Model::DescribeStackSetOperationOutcome DescribeStackSetOperation(const Model::DescribeStackSetOperationRequest& request) const;
1519 
1520         /**
1521          * <p>Returns the description of the specified stack set operation. </p><p><h3>See
1522          * Also:</h3>   <a
1523          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation">AWS
1524          * API Reference</a></p>
1525          *
1526          * returns a future to the operation so that it can be executed in parallel to other requests.
1527          */
1528         virtual Model::DescribeStackSetOperationOutcomeCallable DescribeStackSetOperationCallable(const Model::DescribeStackSetOperationRequest& request) const;
1529 
1530         /**
1531          * <p>Returns the description of the specified stack set operation. </p><p><h3>See
1532          * Also:</h3>   <a
1533          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation">AWS
1534          * API Reference</a></p>
1535          *
1536          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1537          */
1538         virtual void DescribeStackSetOperationAsync(const Model::DescribeStackSetOperationRequest& request, const DescribeStackSetOperationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1539 
1540         /**
1541          * <p>Returns the description for the specified stack; if no stack name was
1542          * specified, then it returns the description for all the stacks created.</p>
1543          *  <p>If the stack does not exist, an <code>ValidationError</code> is
1544          * returned.</p> <p><h3>See Also:</h3>   <a
1545          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks">AWS
1546          * API Reference</a></p>
1547          */
1548         virtual Model::DescribeStacksOutcome DescribeStacks(const Model::DescribeStacksRequest& request) const;
1549 
1550         /**
1551          * <p>Returns the description for the specified stack; if no stack name was
1552          * specified, then it returns the description for all the stacks created.</p>
1553          *  <p>If the stack does not exist, an <code>ValidationError</code> is
1554          * returned.</p> <p><h3>See Also:</h3>   <a
1555          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks">AWS
1556          * API Reference</a></p>
1557          *
1558          * returns a future to the operation so that it can be executed in parallel to other requests.
1559          */
1560         virtual Model::DescribeStacksOutcomeCallable DescribeStacksCallable(const Model::DescribeStacksRequest& request) const;
1561 
1562         /**
1563          * <p>Returns the description for the specified stack; if no stack name was
1564          * specified, then it returns the description for all the stacks created.</p>
1565          *  <p>If the stack does not exist, an <code>ValidationError</code> is
1566          * returned.</p> <p><h3>See Also:</h3>   <a
1567          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks">AWS
1568          * API Reference</a></p>
1569          *
1570          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1571          */
1572         virtual void DescribeStacksAsync(const Model::DescribeStacksRequest& request, const DescribeStacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1573 
1574         /**
1575          * <p>Returns detailed information about an extension that has been registered.</p>
1576          * <p>If you specify a <code>VersionId</code>, <code>DescribeType</code> returns
1577          * information about that specific extension version. Otherwise, it returns
1578          * information about the default extension version.</p><p><h3>See Also:</h3>   <a
1579          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType">AWS
1580          * API Reference</a></p>
1581          */
1582         virtual Model::DescribeTypeOutcome DescribeType(const Model::DescribeTypeRequest& request) const;
1583 
1584         /**
1585          * <p>Returns detailed information about an extension that has been registered.</p>
1586          * <p>If you specify a <code>VersionId</code>, <code>DescribeType</code> returns
1587          * information about that specific extension version. Otherwise, it returns
1588          * information about the default extension version.</p><p><h3>See Also:</h3>   <a
1589          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType">AWS
1590          * API Reference</a></p>
1591          *
1592          * returns a future to the operation so that it can be executed in parallel to other requests.
1593          */
1594         virtual Model::DescribeTypeOutcomeCallable DescribeTypeCallable(const Model::DescribeTypeRequest& request) const;
1595 
1596         /**
1597          * <p>Returns detailed information about an extension that has been registered.</p>
1598          * <p>If you specify a <code>VersionId</code>, <code>DescribeType</code> returns
1599          * information about that specific extension version. Otherwise, it returns
1600          * information about the default extension version.</p><p><h3>See Also:</h3>   <a
1601          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType">AWS
1602          * API Reference</a></p>
1603          *
1604          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1605          */
1606         virtual void DescribeTypeAsync(const Model::DescribeTypeRequest& request, const DescribeTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1607 
1608         /**
1609          * <p>Returns information about an extension's registration, including its current
1610          * status and type and version identifiers.</p> <p>When you initiate a registration
1611          * request using <code> <a>RegisterType</a> </code>, you can then use <code>
1612          * <a>DescribeTypeRegistration</a> </code> to monitor the progress of that
1613          * registration request.</p> <p>Once the registration request has completed, use
1614          * <code> <a>DescribeType</a> </code> to return detailed information about an
1615          * extension.</p><p><h3>See Also:</h3>   <a
1616          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration">AWS
1617          * API Reference</a></p>
1618          */
1619         virtual Model::DescribeTypeRegistrationOutcome DescribeTypeRegistration(const Model::DescribeTypeRegistrationRequest& request) const;
1620 
1621         /**
1622          * <p>Returns information about an extension's registration, including its current
1623          * status and type and version identifiers.</p> <p>When you initiate a registration
1624          * request using <code> <a>RegisterType</a> </code>, you can then use <code>
1625          * <a>DescribeTypeRegistration</a> </code> to monitor the progress of that
1626          * registration request.</p> <p>Once the registration request has completed, use
1627          * <code> <a>DescribeType</a> </code> to return detailed information about an
1628          * extension.</p><p><h3>See Also:</h3>   <a
1629          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration">AWS
1630          * API Reference</a></p>
1631          *
1632          * returns a future to the operation so that it can be executed in parallel to other requests.
1633          */
1634         virtual Model::DescribeTypeRegistrationOutcomeCallable DescribeTypeRegistrationCallable(const Model::DescribeTypeRegistrationRequest& request) const;
1635 
1636         /**
1637          * <p>Returns information about an extension's registration, including its current
1638          * status and type and version identifiers.</p> <p>When you initiate a registration
1639          * request using <code> <a>RegisterType</a> </code>, you can then use <code>
1640          * <a>DescribeTypeRegistration</a> </code> to monitor the progress of that
1641          * registration request.</p> <p>Once the registration request has completed, use
1642          * <code> <a>DescribeType</a> </code> to return detailed information about an
1643          * extension.</p><p><h3>See Also:</h3>   <a
1644          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration">AWS
1645          * API Reference</a></p>
1646          *
1647          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1648          */
1649         virtual void DescribeTypeRegistrationAsync(const Model::DescribeTypeRegistrationRequest& request, const DescribeTypeRegistrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1650 
1651         /**
1652          * <p>Detects whether a stack's actual configuration differs, or has
1653          * <i>drifted</i>, from it's expected configuration, as defined in the stack
1654          * template and any values specified as template parameters. For each resource in
1655          * the stack that supports drift detection, CloudFormation compares the actual
1656          * configuration of the resource with its expected template configuration. Only
1657          * resource properties explicitly defined in the stack template are checked for
1658          * drift. A stack is considered to have drifted if one or more of its resources
1659          * differ from their expected template configurations. For more information, see <a
1660          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1661          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1662          * <code>DetectStackDrift</code> to detect drift on all supported resources for a
1663          * given stack, or <a>DetectStackResourceDrift</a> to detect drift on individual
1664          * resources.</p> <p>For a list of stack resources that currently support drift
1665          * detection, see <a
1666          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1667          * that Support Drift Detection</a>.</p> <p> <code>DetectStackDrift</code> can take
1668          * up to several minutes, depending on the number of resources contained within the
1669          * stack. Use <a>DescribeStackDriftDetectionStatus</a> to monitor the progress of a
1670          * detect stack drift operation. Once the drift detection operation has completed,
1671          * use <a>DescribeStackResourceDrifts</a> to return drift information about the
1672          * stack and its resources.</p> <p>When detecting drift on a stack, CloudFormation
1673          * does not detect drift on any nested stacks belonging to that stack. Perform
1674          * <code>DetectStackDrift</code> directly on the nested stack itself.</p><p><h3>See
1675          * Also:</h3>   <a
1676          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift">AWS
1677          * API Reference</a></p>
1678          */
1679         virtual Model::DetectStackDriftOutcome DetectStackDrift(const Model::DetectStackDriftRequest& request) const;
1680 
1681         /**
1682          * <p>Detects whether a stack's actual configuration differs, or has
1683          * <i>drifted</i>, from it's expected configuration, as defined in the stack
1684          * template and any values specified as template parameters. For each resource in
1685          * the stack that supports drift detection, CloudFormation compares the actual
1686          * configuration of the resource with its expected template configuration. Only
1687          * resource properties explicitly defined in the stack template are checked for
1688          * drift. A stack is considered to have drifted if one or more of its resources
1689          * differ from their expected template configurations. For more information, see <a
1690          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1691          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1692          * <code>DetectStackDrift</code> to detect drift on all supported resources for a
1693          * given stack, or <a>DetectStackResourceDrift</a> to detect drift on individual
1694          * resources.</p> <p>For a list of stack resources that currently support drift
1695          * detection, see <a
1696          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1697          * that Support Drift Detection</a>.</p> <p> <code>DetectStackDrift</code> can take
1698          * up to several minutes, depending on the number of resources contained within the
1699          * stack. Use <a>DescribeStackDriftDetectionStatus</a> to monitor the progress of a
1700          * detect stack drift operation. Once the drift detection operation has completed,
1701          * use <a>DescribeStackResourceDrifts</a> to return drift information about the
1702          * stack and its resources.</p> <p>When detecting drift on a stack, CloudFormation
1703          * does not detect drift on any nested stacks belonging to that stack. Perform
1704          * <code>DetectStackDrift</code> directly on the nested stack itself.</p><p><h3>See
1705          * Also:</h3>   <a
1706          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift">AWS
1707          * API Reference</a></p>
1708          *
1709          * returns a future to the operation so that it can be executed in parallel to other requests.
1710          */
1711         virtual Model::DetectStackDriftOutcomeCallable DetectStackDriftCallable(const Model::DetectStackDriftRequest& request) const;
1712 
1713         /**
1714          * <p>Detects whether a stack's actual configuration differs, or has
1715          * <i>drifted</i>, from it's expected configuration, as defined in the stack
1716          * template and any values specified as template parameters. For each resource in
1717          * the stack that supports drift detection, CloudFormation compares the actual
1718          * configuration of the resource with its expected template configuration. Only
1719          * resource properties explicitly defined in the stack template are checked for
1720          * drift. A stack is considered to have drifted if one or more of its resources
1721          * differ from their expected template configurations. For more information, see <a
1722          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1723          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1724          * <code>DetectStackDrift</code> to detect drift on all supported resources for a
1725          * given stack, or <a>DetectStackResourceDrift</a> to detect drift on individual
1726          * resources.</p> <p>For a list of stack resources that currently support drift
1727          * detection, see <a
1728          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1729          * that Support Drift Detection</a>.</p> <p> <code>DetectStackDrift</code> can take
1730          * up to several minutes, depending on the number of resources contained within the
1731          * stack. Use <a>DescribeStackDriftDetectionStatus</a> to monitor the progress of a
1732          * detect stack drift operation. Once the drift detection operation has completed,
1733          * use <a>DescribeStackResourceDrifts</a> to return drift information about the
1734          * stack and its resources.</p> <p>When detecting drift on a stack, CloudFormation
1735          * does not detect drift on any nested stacks belonging to that stack. Perform
1736          * <code>DetectStackDrift</code> directly on the nested stack itself.</p><p><h3>See
1737          * Also:</h3>   <a
1738          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift">AWS
1739          * API Reference</a></p>
1740          *
1741          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1742          */
1743         virtual void DetectStackDriftAsync(const Model::DetectStackDriftRequest& request, const DetectStackDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1744 
1745         /**
1746          * <p>Returns information about whether a resource's actual configuration differs,
1747          * or has <i>drifted</i>, from it's expected configuration, as defined in the stack
1748          * template and any values specified as template parameters. This information
1749          * includes actual and expected property values for resources in which
1750          * CloudFormation detects drift. Only resource properties explicitly defined in the
1751          * stack template are checked for drift. For more information about stack and
1752          * resource drift, see <a
1753          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1754          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1755          * <code>DetectStackResourceDrift</code> to detect drift on individual resources,
1756          * or <a>DetectStackDrift</a> to detect drift on all resources in a given stack
1757          * that support drift detection.</p> <p>Resources that do not currently support
1758          * drift detection cannot be checked. For a list of resources that support drift
1759          * detection, see <a
1760          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1761          * that Support Drift Detection</a>.</p><p><h3>See Also:</h3>   <a
1762          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift">AWS
1763          * API Reference</a></p>
1764          */
1765         virtual Model::DetectStackResourceDriftOutcome DetectStackResourceDrift(const Model::DetectStackResourceDriftRequest& request) const;
1766 
1767         /**
1768          * <p>Returns information about whether a resource's actual configuration differs,
1769          * or has <i>drifted</i>, from it's expected configuration, as defined in the stack
1770          * template and any values specified as template parameters. This information
1771          * includes actual and expected property values for resources in which
1772          * CloudFormation detects drift. Only resource properties explicitly defined in the
1773          * stack template are checked for drift. For more information about stack and
1774          * resource drift, see <a
1775          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1776          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1777          * <code>DetectStackResourceDrift</code> to detect drift on individual resources,
1778          * or <a>DetectStackDrift</a> to detect drift on all resources in a given stack
1779          * that support drift detection.</p> <p>Resources that do not currently support
1780          * drift detection cannot be checked. For a list of resources that support drift
1781          * detection, see <a
1782          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1783          * that Support Drift Detection</a>.</p><p><h3>See Also:</h3>   <a
1784          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift">AWS
1785          * API Reference</a></p>
1786          *
1787          * returns a future to the operation so that it can be executed in parallel to other requests.
1788          */
1789         virtual Model::DetectStackResourceDriftOutcomeCallable DetectStackResourceDriftCallable(const Model::DetectStackResourceDriftRequest& request) const;
1790 
1791         /**
1792          * <p>Returns information about whether a resource's actual configuration differs,
1793          * or has <i>drifted</i>, from it's expected configuration, as defined in the stack
1794          * template and any values specified as template parameters. This information
1795          * includes actual and expected property values for resources in which
1796          * CloudFormation detects drift. Only resource properties explicitly defined in the
1797          * stack template are checked for drift. For more information about stack and
1798          * resource drift, see <a
1799          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting
1800          * Unregulated Configuration Changes to Stacks and Resources</a>.</p> <p>Use
1801          * <code>DetectStackResourceDrift</code> to detect drift on individual resources,
1802          * or <a>DetectStackDrift</a> to detect drift on all resources in a given stack
1803          * that support drift detection.</p> <p>Resources that do not currently support
1804          * drift detection cannot be checked. For a list of resources that support drift
1805          * detection, see <a
1806          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources
1807          * that Support Drift Detection</a>.</p><p><h3>See Also:</h3>   <a
1808          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift">AWS
1809          * API Reference</a></p>
1810          *
1811          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1812          */
1813         virtual void DetectStackResourceDriftAsync(const Model::DetectStackResourceDriftRequest& request, const DetectStackResourceDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1814 
1815         /**
1816          * <p>Detect drift on a stack set. When CloudFormation performs drift detection on
1817          * a stack set, it performs drift detection on the stack associated with each stack
1818          * instance in the stack set. For more information, see <a
1819          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">How
1820          * CloudFormation Performs Drift Detection on a Stack Set</a>.</p> <p>
1821          * <code>DetectStackSetDrift</code> returns the <code>OperationId</code> of the
1822          * stack set drift detection operation. Use this operation id with <code>
1823          * <a>DescribeStackSetOperation</a> </code> to monitor the progress of the drift
1824          * detection operation. The drift detection operation may take some time, depending
1825          * on the number of stack instances included in the stack set, as well as the
1826          * number of resources included in each stack.</p> <p>Once the operation has
1827          * completed, use the following actions to return drift information:</p> <ul> <li>
1828          * <p>Use <code> <a>DescribeStackSet</a> </code> to return detailed information
1829          * about the stack set, including detailed information about the last
1830          * <i>completed</i> drift operation performed on the stack set. (Information about
1831          * drift operations that are in progress is not included.)</p> </li> <li> <p>Use
1832          * <code> <a>ListStackInstances</a> </code> to return a list of stack instances
1833          * belonging to the stack set, including the drift status and last drift time
1834          * checked of each instance.</p> </li> <li> <p>Use <code>
1835          * <a>DescribeStackInstance</a> </code> to return detailed information about a
1836          * specific stack instance, including its drift status and last drift time
1837          * checked.</p> </li> </ul> <p>For more information on performing a drift detection
1838          * operation on a stack set, see <a
1839          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting
1840          * Unmanaged Changes in Stack Sets</a>. </p> <p>You can only run a single drift
1841          * detection operation on a given stack set at one time. </p> <p>To stop a drift
1842          * detection stack set operation, use <code> <a>StopStackSetOperation</a>
1843          * </code>.</p><p><h3>See Also:</h3>   <a
1844          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift">AWS
1845          * API Reference</a></p>
1846          */
1847         virtual Model::DetectStackSetDriftOutcome DetectStackSetDrift(const Model::DetectStackSetDriftRequest& request) const;
1848 
1849         /**
1850          * <p>Detect drift on a stack set. When CloudFormation performs drift detection on
1851          * a stack set, it performs drift detection on the stack associated with each stack
1852          * instance in the stack set. For more information, see <a
1853          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">How
1854          * CloudFormation Performs Drift Detection on a Stack Set</a>.</p> <p>
1855          * <code>DetectStackSetDrift</code> returns the <code>OperationId</code> of the
1856          * stack set drift detection operation. Use this operation id with <code>
1857          * <a>DescribeStackSetOperation</a> </code> to monitor the progress of the drift
1858          * detection operation. The drift detection operation may take some time, depending
1859          * on the number of stack instances included in the stack set, as well as the
1860          * number of resources included in each stack.</p> <p>Once the operation has
1861          * completed, use the following actions to return drift information:</p> <ul> <li>
1862          * <p>Use <code> <a>DescribeStackSet</a> </code> to return detailed information
1863          * about the stack set, including detailed information about the last
1864          * <i>completed</i> drift operation performed on the stack set. (Information about
1865          * drift operations that are in progress is not included.)</p> </li> <li> <p>Use
1866          * <code> <a>ListStackInstances</a> </code> to return a list of stack instances
1867          * belonging to the stack set, including the drift status and last drift time
1868          * checked of each instance.</p> </li> <li> <p>Use <code>
1869          * <a>DescribeStackInstance</a> </code> to return detailed information about a
1870          * specific stack instance, including its drift status and last drift time
1871          * checked.</p> </li> </ul> <p>For more information on performing a drift detection
1872          * operation on a stack set, see <a
1873          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting
1874          * Unmanaged Changes in Stack Sets</a>. </p> <p>You can only run a single drift
1875          * detection operation on a given stack set at one time. </p> <p>To stop a drift
1876          * detection stack set operation, use <code> <a>StopStackSetOperation</a>
1877          * </code>.</p><p><h3>See Also:</h3>   <a
1878          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift">AWS
1879          * API Reference</a></p>
1880          *
1881          * returns a future to the operation so that it can be executed in parallel to other requests.
1882          */
1883         virtual Model::DetectStackSetDriftOutcomeCallable DetectStackSetDriftCallable(const Model::DetectStackSetDriftRequest& request) const;
1884 
1885         /**
1886          * <p>Detect drift on a stack set. When CloudFormation performs drift detection on
1887          * a stack set, it performs drift detection on the stack associated with each stack
1888          * instance in the stack set. For more information, see <a
1889          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">How
1890          * CloudFormation Performs Drift Detection on a Stack Set</a>.</p> <p>
1891          * <code>DetectStackSetDrift</code> returns the <code>OperationId</code> of the
1892          * stack set drift detection operation. Use this operation id with <code>
1893          * <a>DescribeStackSetOperation</a> </code> to monitor the progress of the drift
1894          * detection operation. The drift detection operation may take some time, depending
1895          * on the number of stack instances included in the stack set, as well as the
1896          * number of resources included in each stack.</p> <p>Once the operation has
1897          * completed, use the following actions to return drift information:</p> <ul> <li>
1898          * <p>Use <code> <a>DescribeStackSet</a> </code> to return detailed information
1899          * about the stack set, including detailed information about the last
1900          * <i>completed</i> drift operation performed on the stack set. (Information about
1901          * drift operations that are in progress is not included.)</p> </li> <li> <p>Use
1902          * <code> <a>ListStackInstances</a> </code> to return a list of stack instances
1903          * belonging to the stack set, including the drift status and last drift time
1904          * checked of each instance.</p> </li> <li> <p>Use <code>
1905          * <a>DescribeStackInstance</a> </code> to return detailed information about a
1906          * specific stack instance, including its drift status and last drift time
1907          * checked.</p> </li> </ul> <p>For more information on performing a drift detection
1908          * operation on a stack set, see <a
1909          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting
1910          * Unmanaged Changes in Stack Sets</a>. </p> <p>You can only run a single drift
1911          * detection operation on a given stack set at one time. </p> <p>To stop a drift
1912          * detection stack set operation, use <code> <a>StopStackSetOperation</a>
1913          * </code>.</p><p><h3>See Also:</h3>   <a
1914          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift">AWS
1915          * API Reference</a></p>
1916          *
1917          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1918          */
1919         virtual void DetectStackSetDriftAsync(const Model::DetectStackSetDriftRequest& request, const DetectStackSetDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1920 
1921         /**
1922          * <p>Returns the estimated monthly cost of a template. The return value is an
1923          * Amazon Web Services Simple Monthly Calculator URL with a query string that
1924          * describes the resources required to run the template.</p><p><h3>See Also:</h3>
1925          * <a
1926          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost">AWS
1927          * API Reference</a></p>
1928          */
1929         virtual Model::EstimateTemplateCostOutcome EstimateTemplateCost(const Model::EstimateTemplateCostRequest& request) const;
1930 
1931         /**
1932          * <p>Returns the estimated monthly cost of a template. The return value is an
1933          * Amazon Web Services Simple Monthly Calculator URL with a query string that
1934          * describes the resources required to run the template.</p><p><h3>See Also:</h3>
1935          * <a
1936          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost">AWS
1937          * API Reference</a></p>
1938          *
1939          * returns a future to the operation so that it can be executed in parallel to other requests.
1940          */
1941         virtual Model::EstimateTemplateCostOutcomeCallable EstimateTemplateCostCallable(const Model::EstimateTemplateCostRequest& request) const;
1942 
1943         /**
1944          * <p>Returns the estimated monthly cost of a template. The return value is an
1945          * Amazon Web Services Simple Monthly Calculator URL with a query string that
1946          * describes the resources required to run the template.</p><p><h3>See Also:</h3>
1947          * <a
1948          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost">AWS
1949          * API Reference</a></p>
1950          *
1951          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1952          */
1953         virtual void EstimateTemplateCostAsync(const Model::EstimateTemplateCostRequest& request, const EstimateTemplateCostResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1954 
1955         /**
1956          * <p>Updates a stack using the input information that was provided when the
1957          * specified change set was created. After the call successfully completes,
1958          * CloudFormation starts updating the stack. Use the <a>DescribeStacks</a> action
1959          * to view the status of the update.</p> <p>When you execute a change set,
1960          * CloudFormation deletes all other change sets associated with the stack because
1961          * they aren't valid for the updated stack.</p> <p>If a stack policy is associated
1962          * with the stack, CloudFormation enforces the policy during the update. You can't
1963          * specify a temporary stack policy that overrides the current policy.</p> <p>To
1964          * create a change set for the entire stack hierachy,
1965          * <code>IncludeNestedStacks</code> must have been set to
1966          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
1967          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet">AWS
1968          * API Reference</a></p>
1969          */
1970         virtual Model::ExecuteChangeSetOutcome ExecuteChangeSet(const Model::ExecuteChangeSetRequest& request) const;
1971 
1972         /**
1973          * <p>Updates a stack using the input information that was provided when the
1974          * specified change set was created. After the call successfully completes,
1975          * CloudFormation starts updating the stack. Use the <a>DescribeStacks</a> action
1976          * to view the status of the update.</p> <p>When you execute a change set,
1977          * CloudFormation deletes all other change sets associated with the stack because
1978          * they aren't valid for the updated stack.</p> <p>If a stack policy is associated
1979          * with the stack, CloudFormation enforces the policy during the update. You can't
1980          * specify a temporary stack policy that overrides the current policy.</p> <p>To
1981          * create a change set for the entire stack hierachy,
1982          * <code>IncludeNestedStacks</code> must have been set to
1983          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
1984          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet">AWS
1985          * API Reference</a></p>
1986          *
1987          * returns a future to the operation so that it can be executed in parallel to other requests.
1988          */
1989         virtual Model::ExecuteChangeSetOutcomeCallable ExecuteChangeSetCallable(const Model::ExecuteChangeSetRequest& request) const;
1990 
1991         /**
1992          * <p>Updates a stack using the input information that was provided when the
1993          * specified change set was created. After the call successfully completes,
1994          * CloudFormation starts updating the stack. Use the <a>DescribeStacks</a> action
1995          * to view the status of the update.</p> <p>When you execute a change set,
1996          * CloudFormation deletes all other change sets associated with the stack because
1997          * they aren't valid for the updated stack.</p> <p>If a stack policy is associated
1998          * with the stack, CloudFormation enforces the policy during the update. You can't
1999          * specify a temporary stack policy that overrides the current policy.</p> <p>To
2000          * create a change set for the entire stack hierachy,
2001          * <code>IncludeNestedStacks</code> must have been set to
2002          * <code>True</code>.</p><p><h3>See Also:</h3>   <a
2003          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet">AWS
2004          * API Reference</a></p>
2005          *
2006          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2007          */
2008         virtual void ExecuteChangeSetAsync(const Model::ExecuteChangeSetRequest& request, const ExecuteChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2009 
2010         /**
2011          * <p>Returns the stack policy for a specified stack. If a stack doesn't have a
2012          * policy, a null value is returned.</p><p><h3>See Also:</h3>   <a
2013          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy">AWS
2014          * API Reference</a></p>
2015          */
2016         virtual Model::GetStackPolicyOutcome GetStackPolicy(const Model::GetStackPolicyRequest& request) const;
2017 
2018         /**
2019          * <p>Returns the stack policy for a specified stack. If a stack doesn't have a
2020          * policy, a null value is returned.</p><p><h3>See Also:</h3>   <a
2021          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy">AWS
2022          * API Reference</a></p>
2023          *
2024          * returns a future to the operation so that it can be executed in parallel to other requests.
2025          */
2026         virtual Model::GetStackPolicyOutcomeCallable GetStackPolicyCallable(const Model::GetStackPolicyRequest& request) const;
2027 
2028         /**
2029          * <p>Returns the stack policy for a specified stack. If a stack doesn't have a
2030          * policy, a null value is returned.</p><p><h3>See Also:</h3>   <a
2031          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy">AWS
2032          * API Reference</a></p>
2033          *
2034          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2035          */
2036         virtual void GetStackPolicyAsync(const Model::GetStackPolicyRequest& request, const GetStackPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2037 
2038         /**
2039          * <p>Returns the template body for a specified stack. You can get the template for
2040          * running or deleted stacks.</p> <p>For deleted stacks, GetTemplate returns the
2041          * template for up to 90 days after the stack has been deleted.</p>  <p>If
2042          * the template does not exist, a <code>ValidationError</code> is returned.</p>
2043          * <p><h3>See Also:</h3>   <a
2044          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate">AWS
2045          * API Reference</a></p>
2046          */
2047         virtual Model::GetTemplateOutcome GetTemplate(const Model::GetTemplateRequest& request) const;
2048 
2049         /**
2050          * <p>Returns the template body for a specified stack. You can get the template for
2051          * running or deleted stacks.</p> <p>For deleted stacks, GetTemplate returns the
2052          * template for up to 90 days after the stack has been deleted.</p>  <p>If
2053          * the template does not exist, a <code>ValidationError</code> is returned.</p>
2054          * <p><h3>See Also:</h3>   <a
2055          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate">AWS
2056          * API Reference</a></p>
2057          *
2058          * returns a future to the operation so that it can be executed in parallel to other requests.
2059          */
2060         virtual Model::GetTemplateOutcomeCallable GetTemplateCallable(const Model::GetTemplateRequest& request) const;
2061 
2062         /**
2063          * <p>Returns the template body for a specified stack. You can get the template for
2064          * running or deleted stacks.</p> <p>For deleted stacks, GetTemplate returns the
2065          * template for up to 90 days after the stack has been deleted.</p>  <p>If
2066          * the template does not exist, a <code>ValidationError</code> is returned.</p>
2067          * <p><h3>See Also:</h3>   <a
2068          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate">AWS
2069          * API Reference</a></p>
2070          *
2071          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2072          */
2073         virtual void GetTemplateAsync(const Model::GetTemplateRequest& request, const GetTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2074 
2075         /**
2076          * <p>Returns information about a new or existing template. The
2077          * <code>GetTemplateSummary</code> action is useful for viewing parameter
2078          * information, such as default parameter values and parameter types, before you
2079          * create or update a stack or stack set.</p> <p>You can use the
2080          * <code>GetTemplateSummary</code> action when you submit a template, or you can
2081          * get template information for a stack set, or a running or deleted stack.</p>
2082          * <p>For deleted stacks, <code>GetTemplateSummary</code> returns the template
2083          * information for up to 90 days after the stack has been deleted. If the template
2084          * does not exist, a <code>ValidationError</code> is returned.</p><p><h3>See
2085          * Also:</h3>   <a
2086          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary">AWS
2087          * API Reference</a></p>
2088          */
2089         virtual Model::GetTemplateSummaryOutcome GetTemplateSummary(const Model::GetTemplateSummaryRequest& request) const;
2090 
2091         /**
2092          * <p>Returns information about a new or existing template. The
2093          * <code>GetTemplateSummary</code> action is useful for viewing parameter
2094          * information, such as default parameter values and parameter types, before you
2095          * create or update a stack or stack set.</p> <p>You can use the
2096          * <code>GetTemplateSummary</code> action when you submit a template, or you can
2097          * get template information for a stack set, or a running or deleted stack.</p>
2098          * <p>For deleted stacks, <code>GetTemplateSummary</code> returns the template
2099          * information for up to 90 days after the stack has been deleted. If the template
2100          * does not exist, a <code>ValidationError</code> is returned.</p><p><h3>See
2101          * Also:</h3>   <a
2102          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary">AWS
2103          * API Reference</a></p>
2104          *
2105          * returns a future to the operation so that it can be executed in parallel to other requests.
2106          */
2107         virtual Model::GetTemplateSummaryOutcomeCallable GetTemplateSummaryCallable(const Model::GetTemplateSummaryRequest& request) const;
2108 
2109         /**
2110          * <p>Returns information about a new or existing template. The
2111          * <code>GetTemplateSummary</code> action is useful for viewing parameter
2112          * information, such as default parameter values and parameter types, before you
2113          * create or update a stack or stack set.</p> <p>You can use the
2114          * <code>GetTemplateSummary</code> action when you submit a template, or you can
2115          * get template information for a stack set, or a running or deleted stack.</p>
2116          * <p>For deleted stacks, <code>GetTemplateSummary</code> returns the template
2117          * information for up to 90 days after the stack has been deleted. If the template
2118          * does not exist, a <code>ValidationError</code> is returned.</p><p><h3>See
2119          * Also:</h3>   <a
2120          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary">AWS
2121          * API Reference</a></p>
2122          *
2123          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2124          */
2125         virtual void GetTemplateSummaryAsync(const Model::GetTemplateSummaryRequest& request, const GetTemplateSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2126 
2127         /**
2128          * <p>Import existing stacks into a new stack sets. Use the stack import operation
2129          * to import up to 10 stacks into a new stack set in the same account as the source
2130          * stack or in a different administrator account and Region, by specifying the
2131          * stack ID of the stack you intend to import.</p>  <p>
2132          * <code>ImportStacksToStackSet</code> is only supported by self-managed
2133          * permissions.</p> <p><h3>See Also:</h3>   <a
2134          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet">AWS
2135          * API Reference</a></p>
2136          */
2137         virtual Model::ImportStacksToStackSetOutcome ImportStacksToStackSet(const Model::ImportStacksToStackSetRequest& request) const;
2138 
2139         /**
2140          * <p>Import existing stacks into a new stack sets. Use the stack import operation
2141          * to import up to 10 stacks into a new stack set in the same account as the source
2142          * stack or in a different administrator account and Region, by specifying the
2143          * stack ID of the stack you intend to import.</p>  <p>
2144          * <code>ImportStacksToStackSet</code> is only supported by self-managed
2145          * permissions.</p> <p><h3>See Also:</h3>   <a
2146          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet">AWS
2147          * API Reference</a></p>
2148          *
2149          * returns a future to the operation so that it can be executed in parallel to other requests.
2150          */
2151         virtual Model::ImportStacksToStackSetOutcomeCallable ImportStacksToStackSetCallable(const Model::ImportStacksToStackSetRequest& request) const;
2152 
2153         /**
2154          * <p>Import existing stacks into a new stack sets. Use the stack import operation
2155          * to import up to 10 stacks into a new stack set in the same account as the source
2156          * stack or in a different administrator account and Region, by specifying the
2157          * stack ID of the stack you intend to import.</p>  <p>
2158          * <code>ImportStacksToStackSet</code> is only supported by self-managed
2159          * permissions.</p> <p><h3>See Also:</h3>   <a
2160          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet">AWS
2161          * API Reference</a></p>
2162          *
2163          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2164          */
2165         virtual void ImportStacksToStackSetAsync(const Model::ImportStacksToStackSetRequest& request, const ImportStacksToStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2166 
2167         /**
2168          * <p>Returns the ID and status of each active change set for a stack. For example,
2169          * CloudFormation lists change sets that are in the <code>CREATE_IN_PROGRESS</code>
2170          * or <code>CREATE_PENDING</code> state.</p><p><h3>See Also:</h3>   <a
2171          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets">AWS
2172          * API Reference</a></p>
2173          */
2174         virtual Model::ListChangeSetsOutcome ListChangeSets(const Model::ListChangeSetsRequest& request) const;
2175 
2176         /**
2177          * <p>Returns the ID and status of each active change set for a stack. For example,
2178          * CloudFormation lists change sets that are in the <code>CREATE_IN_PROGRESS</code>
2179          * or <code>CREATE_PENDING</code> state.</p><p><h3>See Also:</h3>   <a
2180          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets">AWS
2181          * API Reference</a></p>
2182          *
2183          * returns a future to the operation so that it can be executed in parallel to other requests.
2184          */
2185         virtual Model::ListChangeSetsOutcomeCallable ListChangeSetsCallable(const Model::ListChangeSetsRequest& request) const;
2186 
2187         /**
2188          * <p>Returns the ID and status of each active change set for a stack. For example,
2189          * CloudFormation lists change sets that are in the <code>CREATE_IN_PROGRESS</code>
2190          * or <code>CREATE_PENDING</code> state.</p><p><h3>See Also:</h3>   <a
2191          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets">AWS
2192          * API Reference</a></p>
2193          *
2194          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2195          */
2196         virtual void ListChangeSetsAsync(const Model::ListChangeSetsRequest& request, const ListChangeSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2197 
2198         /**
2199          * <p>Lists all exported output values in the account and Region in which you call
2200          * this action. Use this action to see the exported output values that you can
2201          * import into other stacks. To import values, use the <a
2202          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2203          * <code>Fn::ImportValue</code> </a> function.</p> <p>For more information, see <a
2204          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html">
2205          * CloudFormation Export Stack Output Values</a>.</p><p><h3>See Also:</h3>   <a
2206          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports">AWS
2207          * API Reference</a></p>
2208          */
2209         virtual Model::ListExportsOutcome ListExports(const Model::ListExportsRequest& request) const;
2210 
2211         /**
2212          * <p>Lists all exported output values in the account and Region in which you call
2213          * this action. Use this action to see the exported output values that you can
2214          * import into other stacks. To import values, use the <a
2215          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2216          * <code>Fn::ImportValue</code> </a> function.</p> <p>For more information, see <a
2217          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html">
2218          * CloudFormation Export Stack Output Values</a>.</p><p><h3>See Also:</h3>   <a
2219          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports">AWS
2220          * API Reference</a></p>
2221          *
2222          * returns a future to the operation so that it can be executed in parallel to other requests.
2223          */
2224         virtual Model::ListExportsOutcomeCallable ListExportsCallable(const Model::ListExportsRequest& request) const;
2225 
2226         /**
2227          * <p>Lists all exported output values in the account and Region in which you call
2228          * this action. Use this action to see the exported output values that you can
2229          * import into other stacks. To import values, use the <a
2230          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2231          * <code>Fn::ImportValue</code> </a> function.</p> <p>For more information, see <a
2232          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html">
2233          * CloudFormation Export Stack Output Values</a>.</p><p><h3>See Also:</h3>   <a
2234          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports">AWS
2235          * API Reference</a></p>
2236          *
2237          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2238          */
2239         virtual void ListExportsAsync(const Model::ListExportsRequest& request, const ListExportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2240 
2241         /**
2242          * <p>Lists all stacks that are importing an exported output value. To modify or
2243          * remove an exported output value, first use this action to see which stacks are
2244          * using it. To see the exported output values in your account, see
2245          * <a>ListExports</a>.</p> <p>For more information about importing an exported
2246          * output value, see the <a
2247          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2248          * <code>Fn::ImportValue</code> </a> function.</p><p><h3>See Also:</h3>   <a
2249          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports">AWS
2250          * API Reference</a></p>
2251          */
2252         virtual Model::ListImportsOutcome ListImports(const Model::ListImportsRequest& request) const;
2253 
2254         /**
2255          * <p>Lists all stacks that are importing an exported output value. To modify or
2256          * remove an exported output value, first use this action to see which stacks are
2257          * using it. To see the exported output values in your account, see
2258          * <a>ListExports</a>.</p> <p>For more information about importing an exported
2259          * output value, see the <a
2260          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2261          * <code>Fn::ImportValue</code> </a> function.</p><p><h3>See Also:</h3>   <a
2262          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports">AWS
2263          * API Reference</a></p>
2264          *
2265          * returns a future to the operation so that it can be executed in parallel to other requests.
2266          */
2267         virtual Model::ListImportsOutcomeCallable ListImportsCallable(const Model::ListImportsRequest& request) const;
2268 
2269         /**
2270          * <p>Lists all stacks that are importing an exported output value. To modify or
2271          * remove an exported output value, first use this action to see which stacks are
2272          * using it. To see the exported output values in your account, see
2273          * <a>ListExports</a>.</p> <p>For more information about importing an exported
2274          * output value, see the <a
2275          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html">
2276          * <code>Fn::ImportValue</code> </a> function.</p><p><h3>See Also:</h3>   <a
2277          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports">AWS
2278          * API Reference</a></p>
2279          *
2280          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2281          */
2282         virtual void ListImportsAsync(const Model::ListImportsRequest& request, const ListImportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2283 
2284         /**
2285          * <p>Returns summary information about stack instances that are associated with
2286          * the specified stack set. You can filter for stack instances that are associated
2287          * with a specific Amazon Web Services account name or Region, or that have a
2288          * specific status.</p><p><h3>See Also:</h3>   <a
2289          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances">AWS
2290          * API Reference</a></p>
2291          */
2292         virtual Model::ListStackInstancesOutcome ListStackInstances(const Model::ListStackInstancesRequest& request) const;
2293 
2294         /**
2295          * <p>Returns summary information about stack instances that are associated with
2296          * the specified stack set. You can filter for stack instances that are associated
2297          * with a specific Amazon Web Services account name or Region, or that have a
2298          * specific status.</p><p><h3>See Also:</h3>   <a
2299          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances">AWS
2300          * API Reference</a></p>
2301          *
2302          * returns a future to the operation so that it can be executed in parallel to other requests.
2303          */
2304         virtual Model::ListStackInstancesOutcomeCallable ListStackInstancesCallable(const Model::ListStackInstancesRequest& request) const;
2305 
2306         /**
2307          * <p>Returns summary information about stack instances that are associated with
2308          * the specified stack set. You can filter for stack instances that are associated
2309          * with a specific Amazon Web Services account name or Region, or that have a
2310          * specific status.</p><p><h3>See Also:</h3>   <a
2311          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances">AWS
2312          * API Reference</a></p>
2313          *
2314          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2315          */
2316         virtual void ListStackInstancesAsync(const Model::ListStackInstancesRequest& request, const ListStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2317 
2318         /**
2319          * <p>Returns descriptions of all resources of the specified stack.</p> <p>For
2320          * deleted stacks, ListStackResources returns resource information for up to 90
2321          * days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
2322          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources">AWS
2323          * API Reference</a></p>
2324          */
2325         virtual Model::ListStackResourcesOutcome ListStackResources(const Model::ListStackResourcesRequest& request) const;
2326 
2327         /**
2328          * <p>Returns descriptions of all resources of the specified stack.</p> <p>For
2329          * deleted stacks, ListStackResources returns resource information for up to 90
2330          * days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
2331          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources">AWS
2332          * API Reference</a></p>
2333          *
2334          * returns a future to the operation so that it can be executed in parallel to other requests.
2335          */
2336         virtual Model::ListStackResourcesOutcomeCallable ListStackResourcesCallable(const Model::ListStackResourcesRequest& request) const;
2337 
2338         /**
2339          * <p>Returns descriptions of all resources of the specified stack.</p> <p>For
2340          * deleted stacks, ListStackResources returns resource information for up to 90
2341          * days after the stack has been deleted.</p><p><h3>See Also:</h3>   <a
2342          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources">AWS
2343          * API Reference</a></p>
2344          *
2345          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2346          */
2347         virtual void ListStackResourcesAsync(const Model::ListStackResourcesRequest& request, const ListStackResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2348 
2349         /**
2350          * <p>Returns summary information about the results of a stack set operation.
2351          * </p><p><h3>See Also:</h3>   <a
2352          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults">AWS
2353          * API Reference</a></p>
2354          */
2355         virtual Model::ListStackSetOperationResultsOutcome ListStackSetOperationResults(const Model::ListStackSetOperationResultsRequest& request) const;
2356 
2357         /**
2358          * <p>Returns summary information about the results of a stack set operation.
2359          * </p><p><h3>See Also:</h3>   <a
2360          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults">AWS
2361          * API Reference</a></p>
2362          *
2363          * returns a future to the operation so that it can be executed in parallel to other requests.
2364          */
2365         virtual Model::ListStackSetOperationResultsOutcomeCallable ListStackSetOperationResultsCallable(const Model::ListStackSetOperationResultsRequest& request) const;
2366 
2367         /**
2368          * <p>Returns summary information about the results of a stack set operation.
2369          * </p><p><h3>See Also:</h3>   <a
2370          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults">AWS
2371          * API Reference</a></p>
2372          *
2373          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2374          */
2375         virtual void ListStackSetOperationResultsAsync(const Model::ListStackSetOperationResultsRequest& request, const ListStackSetOperationResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2376 
2377         /**
2378          * <p>Returns summary information about operations performed on a stack set.
2379          * </p><p><h3>See Also:</h3>   <a
2380          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations">AWS
2381          * API Reference</a></p>
2382          */
2383         virtual Model::ListStackSetOperationsOutcome ListStackSetOperations(const Model::ListStackSetOperationsRequest& request) const;
2384 
2385         /**
2386          * <p>Returns summary information about operations performed on a stack set.
2387          * </p><p><h3>See Also:</h3>   <a
2388          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations">AWS
2389          * API Reference</a></p>
2390          *
2391          * returns a future to the operation so that it can be executed in parallel to other requests.
2392          */
2393         virtual Model::ListStackSetOperationsOutcomeCallable ListStackSetOperationsCallable(const Model::ListStackSetOperationsRequest& request) const;
2394 
2395         /**
2396          * <p>Returns summary information about operations performed on a stack set.
2397          * </p><p><h3>See Also:</h3>   <a
2398          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations">AWS
2399          * API Reference</a></p>
2400          *
2401          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2402          */
2403         virtual void ListStackSetOperationsAsync(const Model::ListStackSetOperationsRequest& request, const ListStackSetOperationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2404 
2405         /**
2406          * <p>Returns summary information about stack sets that are associated with the
2407          * user.</p> <ul> <li> <p>[Self-managed permissions] If you set the
2408          * <code>CallAs</code> parameter to <code>SELF</code> while signed in to your
2409          * Amazon Web Services account, <code>ListStackSets</code> returns all self-managed
2410          * stack sets in your Amazon Web Services account.</p> </li> <li>
2411          * <p>[Service-managed permissions] If you set the <code>CallAs</code> parameter to
2412          * <code>SELF</code> while signed in to the organization's management account,
2413          * <code>ListStackSets</code> returns all stack sets in the management account.</p>
2414          * </li> <li> <p>[Service-managed permissions] If you set the <code>CallAs</code>
2415          * parameter to <code>DELEGATED_ADMIN</code> while signed in to your member
2416          * account, <code>ListStackSets</code> returns all stack sets with service-managed
2417          * permissions in the management account.</p> </li> </ul><p><h3>See Also:</h3>   <a
2418          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets">AWS
2419          * API Reference</a></p>
2420          */
2421         virtual Model::ListStackSetsOutcome ListStackSets(const Model::ListStackSetsRequest& request) const;
2422 
2423         /**
2424          * <p>Returns summary information about stack sets that are associated with the
2425          * user.</p> <ul> <li> <p>[Self-managed permissions] If you set the
2426          * <code>CallAs</code> parameter to <code>SELF</code> while signed in to your
2427          * Amazon Web Services account, <code>ListStackSets</code> returns all self-managed
2428          * stack sets in your Amazon Web Services account.</p> </li> <li>
2429          * <p>[Service-managed permissions] If you set the <code>CallAs</code> parameter to
2430          * <code>SELF</code> while signed in to the organization's management account,
2431          * <code>ListStackSets</code> returns all stack sets in the management account.</p>
2432          * </li> <li> <p>[Service-managed permissions] If you set the <code>CallAs</code>
2433          * parameter to <code>DELEGATED_ADMIN</code> while signed in to your member
2434          * account, <code>ListStackSets</code> returns all stack sets with service-managed
2435          * permissions in the management account.</p> </li> </ul><p><h3>See Also:</h3>   <a
2436          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets">AWS
2437          * API Reference</a></p>
2438          *
2439          * returns a future to the operation so that it can be executed in parallel to other requests.
2440          */
2441         virtual Model::ListStackSetsOutcomeCallable ListStackSetsCallable(const Model::ListStackSetsRequest& request) const;
2442 
2443         /**
2444          * <p>Returns summary information about stack sets that are associated with the
2445          * user.</p> <ul> <li> <p>[Self-managed permissions] If you set the
2446          * <code>CallAs</code> parameter to <code>SELF</code> while signed in to your
2447          * Amazon Web Services account, <code>ListStackSets</code> returns all self-managed
2448          * stack sets in your Amazon Web Services account.</p> </li> <li>
2449          * <p>[Service-managed permissions] If you set the <code>CallAs</code> parameter to
2450          * <code>SELF</code> while signed in to the organization's management account,
2451          * <code>ListStackSets</code> returns all stack sets in the management account.</p>
2452          * </li> <li> <p>[Service-managed permissions] If you set the <code>CallAs</code>
2453          * parameter to <code>DELEGATED_ADMIN</code> while signed in to your member
2454          * account, <code>ListStackSets</code> returns all stack sets with service-managed
2455          * permissions in the management account.</p> </li> </ul><p><h3>See Also:</h3>   <a
2456          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets">AWS
2457          * API Reference</a></p>
2458          *
2459          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2460          */
2461         virtual void ListStackSetsAsync(const Model::ListStackSetsRequest& request, const ListStackSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2462 
2463         /**
2464          * <p>Returns the summary information for stacks whose status matches the specified
2465          * StackStatusFilter. Summary information for stacks that have been deleted is kept
2466          * for 90 days after the stack is deleted. If no StackStatusFilter is specified,
2467          * summary information for all stacks is returned (including existing stacks and
2468          * stacks that have been deleted).</p><p><h3>See Also:</h3>   <a
2469          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks">AWS
2470          * API Reference</a></p>
2471          */
2472         virtual Model::ListStacksOutcome ListStacks(const Model::ListStacksRequest& request) const;
2473 
2474         /**
2475          * <p>Returns the summary information for stacks whose status matches the specified
2476          * StackStatusFilter. Summary information for stacks that have been deleted is kept
2477          * for 90 days after the stack is deleted. If no StackStatusFilter is specified,
2478          * summary information for all stacks is returned (including existing stacks and
2479          * stacks that have been deleted).</p><p><h3>See Also:</h3>   <a
2480          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks">AWS
2481          * API Reference</a></p>
2482          *
2483          * returns a future to the operation so that it can be executed in parallel to other requests.
2484          */
2485         virtual Model::ListStacksOutcomeCallable ListStacksCallable(const Model::ListStacksRequest& request) const;
2486 
2487         /**
2488          * <p>Returns the summary information for stacks whose status matches the specified
2489          * StackStatusFilter. Summary information for stacks that have been deleted is kept
2490          * for 90 days after the stack is deleted. If no StackStatusFilter is specified,
2491          * summary information for all stacks is returned (including existing stacks and
2492          * stacks that have been deleted).</p><p><h3>See Also:</h3>   <a
2493          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks">AWS
2494          * API Reference</a></p>
2495          *
2496          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2497          */
2498         virtual void ListStacksAsync(const Model::ListStacksRequest& request, const ListStacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2499 
2500         /**
2501          * <p>Returns a list of registration tokens for the specified
2502          * extension(s).</p><p><h3>See Also:</h3>   <a
2503          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations">AWS
2504          * API Reference</a></p>
2505          */
2506         virtual Model::ListTypeRegistrationsOutcome ListTypeRegistrations(const Model::ListTypeRegistrationsRequest& request) const;
2507 
2508         /**
2509          * <p>Returns a list of registration tokens for the specified
2510          * extension(s).</p><p><h3>See Also:</h3>   <a
2511          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations">AWS
2512          * API Reference</a></p>
2513          *
2514          * returns a future to the operation so that it can be executed in parallel to other requests.
2515          */
2516         virtual Model::ListTypeRegistrationsOutcomeCallable ListTypeRegistrationsCallable(const Model::ListTypeRegistrationsRequest& request) const;
2517 
2518         /**
2519          * <p>Returns a list of registration tokens for the specified
2520          * extension(s).</p><p><h3>See Also:</h3>   <a
2521          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations">AWS
2522          * API Reference</a></p>
2523          *
2524          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2525          */
2526         virtual void ListTypeRegistrationsAsync(const Model::ListTypeRegistrationsRequest& request, const ListTypeRegistrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2527 
2528         /**
2529          * <p>Returns summary information about the versions of an extension.</p><p><h3>See
2530          * Also:</h3>   <a
2531          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions">AWS
2532          * API Reference</a></p>
2533          */
2534         virtual Model::ListTypeVersionsOutcome ListTypeVersions(const Model::ListTypeVersionsRequest& request) const;
2535 
2536         /**
2537          * <p>Returns summary information about the versions of an extension.</p><p><h3>See
2538          * Also:</h3>   <a
2539          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions">AWS
2540          * API Reference</a></p>
2541          *
2542          * returns a future to the operation so that it can be executed in parallel to other requests.
2543          */
2544         virtual Model::ListTypeVersionsOutcomeCallable ListTypeVersionsCallable(const Model::ListTypeVersionsRequest& request) const;
2545 
2546         /**
2547          * <p>Returns summary information about the versions of an extension.</p><p><h3>See
2548          * Also:</h3>   <a
2549          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions">AWS
2550          * API Reference</a></p>
2551          *
2552          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2553          */
2554         virtual void ListTypeVersionsAsync(const Model::ListTypeVersionsRequest& request, const ListTypeVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2555 
2556         /**
2557          * <p>Returns summary information about extension that have been registered with
2558          * CloudFormation.</p><p><h3>See Also:</h3>   <a
2559          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes">AWS
2560          * API Reference</a></p>
2561          */
2562         virtual Model::ListTypesOutcome ListTypes(const Model::ListTypesRequest& request) const;
2563 
2564         /**
2565          * <p>Returns summary information about extension that have been registered with
2566          * CloudFormation.</p><p><h3>See Also:</h3>   <a
2567          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes">AWS
2568          * API Reference</a></p>
2569          *
2570          * returns a future to the operation so that it can be executed in parallel to other requests.
2571          */
2572         virtual Model::ListTypesOutcomeCallable ListTypesCallable(const Model::ListTypesRequest& request) const;
2573 
2574         /**
2575          * <p>Returns summary information about extension that have been registered with
2576          * CloudFormation.</p><p><h3>See Also:</h3>   <a
2577          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes">AWS
2578          * API Reference</a></p>
2579          *
2580          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2581          */
2582         virtual void ListTypesAsync(const Model::ListTypesRequest& request, const ListTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2583 
2584         /**
2585          * <p>Publishes the specified extension to the CloudFormation registry as a public
2586          * extension in this region. Public extensions are available for use by all
2587          * CloudFormation users. For more information on publishing extensions, see <a
2588          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
2589          * extensions to make them available for public use</a> in the <i>CloudFormation
2590          * CLI User Guide</i>.</p> <p>To publish an extension, you must be registered as a
2591          * publisher with CloudFormation. For more information, see <a
2592          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>.</p><p><h3>See
2593          * Also:</h3>   <a
2594          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType">AWS
2595          * API Reference</a></p>
2596          */
2597         virtual Model::PublishTypeOutcome PublishType(const Model::PublishTypeRequest& request) const;
2598 
2599         /**
2600          * <p>Publishes the specified extension to the CloudFormation registry as a public
2601          * extension in this region. Public extensions are available for use by all
2602          * CloudFormation users. For more information on publishing extensions, see <a
2603          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
2604          * extensions to make them available for public use</a> in the <i>CloudFormation
2605          * CLI User Guide</i>.</p> <p>To publish an extension, you must be registered as a
2606          * publisher with CloudFormation. For more information, see <a
2607          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>.</p><p><h3>See
2608          * Also:</h3>   <a
2609          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType">AWS
2610          * API Reference</a></p>
2611          *
2612          * returns a future to the operation so that it can be executed in parallel to other requests.
2613          */
2614         virtual Model::PublishTypeOutcomeCallable PublishTypeCallable(const Model::PublishTypeRequest& request) const;
2615 
2616         /**
2617          * <p>Publishes the specified extension to the CloudFormation registry as a public
2618          * extension in this region. Public extensions are available for use by all
2619          * CloudFormation users. For more information on publishing extensions, see <a
2620          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing
2621          * extensions to make them available for public use</a> in the <i>CloudFormation
2622          * CLI User Guide</i>.</p> <p>To publish an extension, you must be registered as a
2623          * publisher with CloudFormation. For more information, see <a
2624          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>.</p><p><h3>See
2625          * Also:</h3>   <a
2626          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType">AWS
2627          * API Reference</a></p>
2628          *
2629          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2630          */
2631         virtual void PublishTypeAsync(const Model::PublishTypeRequest& request, const PublishTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2632 
2633         /**
2634          * <p>Reports progress of a resource handler to CloudFormation.</p> <p>Reserved for
2635          * use by the <a
2636          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation
2637          * CLI</a>. Do not use this API in your code.</p><p><h3>See Also:</h3>   <a
2638          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress">AWS
2639          * API Reference</a></p>
2640          */
2641         virtual Model::RecordHandlerProgressOutcome RecordHandlerProgress(const Model::RecordHandlerProgressRequest& request) const;
2642 
2643         /**
2644          * <p>Reports progress of a resource handler to CloudFormation.</p> <p>Reserved for
2645          * use by the <a
2646          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation
2647          * CLI</a>. Do not use this API in your code.</p><p><h3>See Also:</h3>   <a
2648          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress">AWS
2649          * API Reference</a></p>
2650          *
2651          * returns a future to the operation so that it can be executed in parallel to other requests.
2652          */
2653         virtual Model::RecordHandlerProgressOutcomeCallable RecordHandlerProgressCallable(const Model::RecordHandlerProgressRequest& request) const;
2654 
2655         /**
2656          * <p>Reports progress of a resource handler to CloudFormation.</p> <p>Reserved for
2657          * use by the <a
2658          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation
2659          * CLI</a>. Do not use this API in your code.</p><p><h3>See Also:</h3>   <a
2660          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress">AWS
2661          * API Reference</a></p>
2662          *
2663          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2664          */
2665         virtual void RecordHandlerProgressAsync(const Model::RecordHandlerProgressRequest& request, const RecordHandlerProgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2666 
2667         /**
2668          * <p>Registers your account as a publisher of public extensions in the
2669          * CloudFormation registry. Public extensions are available for use by all
2670          * CloudFormation users. This publisher ID applies to your account in all Amazon
2671          * Web Services Regions.</p> <p>For information on requirements for registering as
2672          * a public extension publisher, see <a
2673          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs">Registering
2674          * your account to publish CloudFormation extensions</a> in the <i>CloudFormation
2675          * CLI User Guide</i>.</p> <p/><p><h3>See Also:</h3>   <a
2676          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher">AWS
2677          * API Reference</a></p>
2678          */
2679         virtual Model::RegisterPublisherOutcome RegisterPublisher(const Model::RegisterPublisherRequest& request) const;
2680 
2681         /**
2682          * <p>Registers your account as a publisher of public extensions in the
2683          * CloudFormation registry. Public extensions are available for use by all
2684          * CloudFormation users. This publisher ID applies to your account in all Amazon
2685          * Web Services Regions.</p> <p>For information on requirements for registering as
2686          * a public extension publisher, see <a
2687          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs">Registering
2688          * your account to publish CloudFormation extensions</a> in the <i>CloudFormation
2689          * CLI User Guide</i>.</p> <p/><p><h3>See Also:</h3>   <a
2690          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher">AWS
2691          * API Reference</a></p>
2692          *
2693          * returns a future to the operation so that it can be executed in parallel to other requests.
2694          */
2695         virtual Model::RegisterPublisherOutcomeCallable RegisterPublisherCallable(const Model::RegisterPublisherRequest& request) const;
2696 
2697         /**
2698          * <p>Registers your account as a publisher of public extensions in the
2699          * CloudFormation registry. Public extensions are available for use by all
2700          * CloudFormation users. This publisher ID applies to your account in all Amazon
2701          * Web Services Regions.</p> <p>For information on requirements for registering as
2702          * a public extension publisher, see <a
2703          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs">Registering
2704          * your account to publish CloudFormation extensions</a> in the <i>CloudFormation
2705          * CLI User Guide</i>.</p> <p/><p><h3>See Also:</h3>   <a
2706          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher">AWS
2707          * API Reference</a></p>
2708          *
2709          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2710          */
2711         virtual void RegisterPublisherAsync(const Model::RegisterPublisherRequest& request, const RegisterPublisherResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2712 
2713         /**
2714          * <p>Registers an extension with the CloudFormation service. Registering an
2715          * extension makes it available for use in CloudFormation templates in your Amazon
2716          * Web Services account, and includes:</p> <ul> <li> <p>Validating the extension
2717          * schema</p> </li> <li> <p>Determining which handlers, if any, have been specified
2718          * for the extension</p> </li> <li> <p>Making the extension available for use in
2719          * your account</p> </li> </ul> <p>For more information on how to develop
2720          * extensions and ready them for registeration, see <a
2721          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html">Creating
2722          * Resource Providers</a> in the <i>CloudFormation CLI User Guide</i>.</p> <p>You
2723          * can have a maximum of 50 resource extension versions registered at a time. This
2724          * maximum is per account and per region. Use <a
2725          * href="AWSCloudFormation/latest/APIReference/API_DeregisterType.html">DeregisterType</a>
2726          * to deregister specific extension versions if necessary.</p> <p>Once you have
2727          * initiated a registration request using <code> <a>RegisterType</a> </code>, you
2728          * can use <code> <a>DescribeTypeRegistration</a> </code> to monitor the progress
2729          * of the registration request.</p> <p>Once you have registered a private extension
2730          * in your account and region, use <a
2731          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
2732          * to specify configuration properties for the extension. For more information, see
2733          * <a
2734          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2735          * extensions at the account level</a> in the <i>CloudFormation User
2736          * Guide</i>.</p><p><h3>See Also:</h3>   <a
2737          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType">AWS
2738          * API Reference</a></p>
2739          */
2740         virtual Model::RegisterTypeOutcome RegisterType(const Model::RegisterTypeRequest& request) const;
2741 
2742         /**
2743          * <p>Registers an extension with the CloudFormation service. Registering an
2744          * extension makes it available for use in CloudFormation templates in your Amazon
2745          * Web Services account, and includes:</p> <ul> <li> <p>Validating the extension
2746          * schema</p> </li> <li> <p>Determining which handlers, if any, have been specified
2747          * for the extension</p> </li> <li> <p>Making the extension available for use in
2748          * your account</p> </li> </ul> <p>For more information on how to develop
2749          * extensions and ready them for registeration, see <a
2750          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html">Creating
2751          * Resource Providers</a> in the <i>CloudFormation CLI User Guide</i>.</p> <p>You
2752          * can have a maximum of 50 resource extension versions registered at a time. This
2753          * maximum is per account and per region. Use <a
2754          * href="AWSCloudFormation/latest/APIReference/API_DeregisterType.html">DeregisterType</a>
2755          * to deregister specific extension versions if necessary.</p> <p>Once you have
2756          * initiated a registration request using <code> <a>RegisterType</a> </code>, you
2757          * can use <code> <a>DescribeTypeRegistration</a> </code> to monitor the progress
2758          * of the registration request.</p> <p>Once you have registered a private extension
2759          * in your account and region, use <a
2760          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
2761          * to specify configuration properties for the extension. For more information, see
2762          * <a
2763          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2764          * extensions at the account level</a> in the <i>CloudFormation User
2765          * Guide</i>.</p><p><h3>See Also:</h3>   <a
2766          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType">AWS
2767          * API Reference</a></p>
2768          *
2769          * returns a future to the operation so that it can be executed in parallel to other requests.
2770          */
2771         virtual Model::RegisterTypeOutcomeCallable RegisterTypeCallable(const Model::RegisterTypeRequest& request) const;
2772 
2773         /**
2774          * <p>Registers an extension with the CloudFormation service. Registering an
2775          * extension makes it available for use in CloudFormation templates in your Amazon
2776          * Web Services account, and includes:</p> <ul> <li> <p>Validating the extension
2777          * schema</p> </li> <li> <p>Determining which handlers, if any, have been specified
2778          * for the extension</p> </li> <li> <p>Making the extension available for use in
2779          * your account</p> </li> </ul> <p>For more information on how to develop
2780          * extensions and ready them for registeration, see <a
2781          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html">Creating
2782          * Resource Providers</a> in the <i>CloudFormation CLI User Guide</i>.</p> <p>You
2783          * can have a maximum of 50 resource extension versions registered at a time. This
2784          * maximum is per account and per region. Use <a
2785          * href="AWSCloudFormation/latest/APIReference/API_DeregisterType.html">DeregisterType</a>
2786          * to deregister specific extension versions if necessary.</p> <p>Once you have
2787          * initiated a registration request using <code> <a>RegisterType</a> </code>, you
2788          * can use <code> <a>DescribeTypeRegistration</a> </code> to monitor the progress
2789          * of the registration request.</p> <p>Once you have registered a private extension
2790          * in your account and region, use <a
2791          * href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>
2792          * to specify configuration properties for the extension. For more information, see
2793          * <a
2794          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2795          * extensions at the account level</a> in the <i>CloudFormation User
2796          * Guide</i>.</p><p><h3>See Also:</h3>   <a
2797          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType">AWS
2798          * API Reference</a></p>
2799          *
2800          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2801          */
2802         virtual void RegisterTypeAsync(const Model::RegisterTypeRequest& request, const RegisterTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2803 
2804         /**
2805          * <p>When specifying <code>RollbackStack</code>, you preserve the state of
2806          * previously provisioned resources when an operation fails. You can check the
2807          * status of the stack through the <a>DescribeStacks</a> API.</p> <p>Rolls back the
2808          * specified stack to the last known stable state from <code>CREATE_FAILED</code>
2809          * or <code>UPDATE_FAILED</code> stack statuses.</p> <p>This operation will delete
2810          * a stack if it doesn't contain a last known stable state. A last known stable
2811          * state includes any status in a <code>*_COMPLETE</code>. This includes the
2812          * following stack statuses.</p> <ul> <li> <p> <code>CREATE_COMPLETE</code> </p>
2813          * </li> <li> <p> <code>UPDATE_COMPLETE</code> </p> </li> <li> <p>
2814          * <code>UPDATE_ROLLBACK_COMPLETE</code> </p> </li> <li> <p>
2815          * <code>IMPORT_COMPLETE</code> </p> </li> <li> <p>
2816          * <code>IMPORT_ROLLBACK_COMPLETE</code> </p> </li> </ul><p><h3>See Also:</h3>   <a
2817          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack">AWS
2818          * API Reference</a></p>
2819          */
2820         virtual Model::RollbackStackOutcome RollbackStack(const Model::RollbackStackRequest& request) const;
2821 
2822         /**
2823          * <p>When specifying <code>RollbackStack</code>, you preserve the state of
2824          * previously provisioned resources when an operation fails. You can check the
2825          * status of the stack through the <a>DescribeStacks</a> API.</p> <p>Rolls back the
2826          * specified stack to the last known stable state from <code>CREATE_FAILED</code>
2827          * or <code>UPDATE_FAILED</code> stack statuses.</p> <p>This operation will delete
2828          * a stack if it doesn't contain a last known stable state. A last known stable
2829          * state includes any status in a <code>*_COMPLETE</code>. This includes the
2830          * following stack statuses.</p> <ul> <li> <p> <code>CREATE_COMPLETE</code> </p>
2831          * </li> <li> <p> <code>UPDATE_COMPLETE</code> </p> </li> <li> <p>
2832          * <code>UPDATE_ROLLBACK_COMPLETE</code> </p> </li> <li> <p>
2833          * <code>IMPORT_COMPLETE</code> </p> </li> <li> <p>
2834          * <code>IMPORT_ROLLBACK_COMPLETE</code> </p> </li> </ul><p><h3>See Also:</h3>   <a
2835          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack">AWS
2836          * API Reference</a></p>
2837          *
2838          * returns a future to the operation so that it can be executed in parallel to other requests.
2839          */
2840         virtual Model::RollbackStackOutcomeCallable RollbackStackCallable(const Model::RollbackStackRequest& request) const;
2841 
2842         /**
2843          * <p>When specifying <code>RollbackStack</code>, you preserve the state of
2844          * previously provisioned resources when an operation fails. You can check the
2845          * status of the stack through the <a>DescribeStacks</a> API.</p> <p>Rolls back the
2846          * specified stack to the last known stable state from <code>CREATE_FAILED</code>
2847          * or <code>UPDATE_FAILED</code> stack statuses.</p> <p>This operation will delete
2848          * a stack if it doesn't contain a last known stable state. A last known stable
2849          * state includes any status in a <code>*_COMPLETE</code>. This includes the
2850          * following stack statuses.</p> <ul> <li> <p> <code>CREATE_COMPLETE</code> </p>
2851          * </li> <li> <p> <code>UPDATE_COMPLETE</code> </p> </li> <li> <p>
2852          * <code>UPDATE_ROLLBACK_COMPLETE</code> </p> </li> <li> <p>
2853          * <code>IMPORT_COMPLETE</code> </p> </li> <li> <p>
2854          * <code>IMPORT_ROLLBACK_COMPLETE</code> </p> </li> </ul><p><h3>See Also:</h3>   <a
2855          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack">AWS
2856          * API Reference</a></p>
2857          *
2858          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2859          */
2860         virtual void RollbackStackAsync(const Model::RollbackStackRequest& request, const RollbackStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2861 
2862         /**
2863          * <p>Sets a stack policy for a specified stack.</p><p><h3>See Also:</h3>   <a
2864          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy">AWS
2865          * API Reference</a></p>
2866          */
2867         virtual Model::SetStackPolicyOutcome SetStackPolicy(const Model::SetStackPolicyRequest& request) const;
2868 
2869         /**
2870          * <p>Sets a stack policy for a specified stack.</p><p><h3>See Also:</h3>   <a
2871          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy">AWS
2872          * API Reference</a></p>
2873          *
2874          * returns a future to the operation so that it can be executed in parallel to other requests.
2875          */
2876         virtual Model::SetStackPolicyOutcomeCallable SetStackPolicyCallable(const Model::SetStackPolicyRequest& request) const;
2877 
2878         /**
2879          * <p>Sets a stack policy for a specified stack.</p><p><h3>See Also:</h3>   <a
2880          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy">AWS
2881          * API Reference</a></p>
2882          *
2883          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2884          */
2885         virtual void SetStackPolicyAsync(const Model::SetStackPolicyRequest& request, const SetStackPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2886 
2887         /**
2888          * <p>Specifies the configuration data for a registered CloudFormation extension,
2889          * in the given account and region.</p> <p>To view the current configuration data
2890          * for an extension, refer to the <code>ConfigurationSchema</code> element of <a
2891          * href="AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.
2892          * For more information, see <a
2893          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2894          * extensions at the account level</a> in the <i>CloudFormation User Guide</i>.</p>
2895          *  <p>It is strongly recommended that you use dynamic references to
2896          * restrict sensitive configuration definitions, such as third-party credentials.
2897          * For more details on dynamic references, see <a
2898          * href="https://docs.aws.amazon.com/">Using dynamic references to specify template
2899          * values</a> in the <i>CloudFormation User Guide</i>.</p> <p><h3>See
2900          * Also:</h3>   <a
2901          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration">AWS
2902          * API Reference</a></p>
2903          */
2904         virtual Model::SetTypeConfigurationOutcome SetTypeConfiguration(const Model::SetTypeConfigurationRequest& request) const;
2905 
2906         /**
2907          * <p>Specifies the configuration data for a registered CloudFormation extension,
2908          * in the given account and region.</p> <p>To view the current configuration data
2909          * for an extension, refer to the <code>ConfigurationSchema</code> element of <a
2910          * href="AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.
2911          * For more information, see <a
2912          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2913          * extensions at the account level</a> in the <i>CloudFormation User Guide</i>.</p>
2914          *  <p>It is strongly recommended that you use dynamic references to
2915          * restrict sensitive configuration definitions, such as third-party credentials.
2916          * For more details on dynamic references, see <a
2917          * href="https://docs.aws.amazon.com/">Using dynamic references to specify template
2918          * values</a> in the <i>CloudFormation User Guide</i>.</p> <p><h3>See
2919          * Also:</h3>   <a
2920          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration">AWS
2921          * API Reference</a></p>
2922          *
2923          * returns a future to the operation so that it can be executed in parallel to other requests.
2924          */
2925         virtual Model::SetTypeConfigurationOutcomeCallable SetTypeConfigurationCallable(const Model::SetTypeConfigurationRequest& request) const;
2926 
2927         /**
2928          * <p>Specifies the configuration data for a registered CloudFormation extension,
2929          * in the given account and region.</p> <p>To view the current configuration data
2930          * for an extension, refer to the <code>ConfigurationSchema</code> element of <a
2931          * href="AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.
2932          * For more information, see <a
2933          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring
2934          * extensions at the account level</a> in the <i>CloudFormation User Guide</i>.</p>
2935          *  <p>It is strongly recommended that you use dynamic references to
2936          * restrict sensitive configuration definitions, such as third-party credentials.
2937          * For more details on dynamic references, see <a
2938          * href="https://docs.aws.amazon.com/">Using dynamic references to specify template
2939          * values</a> in the <i>CloudFormation User Guide</i>.</p> <p><h3>See
2940          * Also:</h3>   <a
2941          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration">AWS
2942          * API Reference</a></p>
2943          *
2944          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2945          */
2946         virtual void SetTypeConfigurationAsync(const Model::SetTypeConfigurationRequest& request, const SetTypeConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2947 
2948         /**
2949          * <p>Specify the default version of an extension. The default version of an
2950          * extension will be used in CloudFormation operations.</p><p><h3>See Also:</h3>
2951          * <a
2952          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion">AWS
2953          * API Reference</a></p>
2954          */
2955         virtual Model::SetTypeDefaultVersionOutcome SetTypeDefaultVersion(const Model::SetTypeDefaultVersionRequest& request) const;
2956 
2957         /**
2958          * <p>Specify the default version of an extension. The default version of an
2959          * extension will be used in CloudFormation operations.</p><p><h3>See Also:</h3>
2960          * <a
2961          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion">AWS
2962          * API Reference</a></p>
2963          *
2964          * returns a future to the operation so that it can be executed in parallel to other requests.
2965          */
2966         virtual Model::SetTypeDefaultVersionOutcomeCallable SetTypeDefaultVersionCallable(const Model::SetTypeDefaultVersionRequest& request) const;
2967 
2968         /**
2969          * <p>Specify the default version of an extension. The default version of an
2970          * extension will be used in CloudFormation operations.</p><p><h3>See Also:</h3>
2971          * <a
2972          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion">AWS
2973          * API Reference</a></p>
2974          *
2975          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2976          */
2977         virtual void SetTypeDefaultVersionAsync(const Model::SetTypeDefaultVersionRequest& request, const SetTypeDefaultVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2978 
2979         /**
2980          * <p>Sends a signal to the specified resource with a success or failure status.
2981          * You can use the SignalResource API in conjunction with a creation policy or
2982          * update policy. CloudFormation doesn't proceed with a stack creation or update
2983          * until resources receive the required number of signals or the timeout period is
2984          * exceeded. The SignalResource API is useful in cases where you want to send
2985          * signals from anywhere other than an Amazon EC2 instance.</p><p><h3>See
2986          * Also:</h3>   <a
2987          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource">AWS
2988          * API Reference</a></p>
2989          */
2990         virtual Model::SignalResourceOutcome SignalResource(const Model::SignalResourceRequest& request) const;
2991 
2992         /**
2993          * <p>Sends a signal to the specified resource with a success or failure status.
2994          * You can use the SignalResource API in conjunction with a creation policy or
2995          * update policy. CloudFormation doesn't proceed with a stack creation or update
2996          * until resources receive the required number of signals or the timeout period is
2997          * exceeded. The SignalResource API is useful in cases where you want to send
2998          * signals from anywhere other than an Amazon EC2 instance.</p><p><h3>See
2999          * Also:</h3>   <a
3000          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource">AWS
3001          * API Reference</a></p>
3002          *
3003          * returns a future to the operation so that it can be executed in parallel to other requests.
3004          */
3005         virtual Model::SignalResourceOutcomeCallable SignalResourceCallable(const Model::SignalResourceRequest& request) const;
3006 
3007         /**
3008          * <p>Sends a signal to the specified resource with a success or failure status.
3009          * You can use the SignalResource API in conjunction with a creation policy or
3010          * update policy. CloudFormation doesn't proceed with a stack creation or update
3011          * until resources receive the required number of signals or the timeout period is
3012          * exceeded. The SignalResource API is useful in cases where you want to send
3013          * signals from anywhere other than an Amazon EC2 instance.</p><p><h3>See
3014          * Also:</h3>   <a
3015          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource">AWS
3016          * API Reference</a></p>
3017          *
3018          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3019          */
3020         virtual void SignalResourceAsync(const Model::SignalResourceRequest& request, const SignalResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3021 
3022         /**
3023          * <p>Stops an in-progress operation on a stack set and its associated stack
3024          * instances. </p><p><h3>See Also:</h3>   <a
3025          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation">AWS
3026          * API Reference</a></p>
3027          */
3028         virtual Model::StopStackSetOperationOutcome StopStackSetOperation(const Model::StopStackSetOperationRequest& request) const;
3029 
3030         /**
3031          * <p>Stops an in-progress operation on a stack set and its associated stack
3032          * instances. </p><p><h3>See Also:</h3>   <a
3033          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation">AWS
3034          * API Reference</a></p>
3035          *
3036          * returns a future to the operation so that it can be executed in parallel to other requests.
3037          */
3038         virtual Model::StopStackSetOperationOutcomeCallable StopStackSetOperationCallable(const Model::StopStackSetOperationRequest& request) const;
3039 
3040         /**
3041          * <p>Stops an in-progress operation on a stack set and its associated stack
3042          * instances. </p><p><h3>See Also:</h3>   <a
3043          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation">AWS
3044          * API Reference</a></p>
3045          *
3046          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3047          */
3048         virtual void StopStackSetOperationAsync(const Model::StopStackSetOperationRequest& request, const StopStackSetOperationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3049 
3050         /**
3051          * <p>Tests a registered extension to make sure it meets all necessary requirements
3052          * for being published in the CloudFormation registry.</p> <ul> <li> <p>For
3053          * resource types, this includes passing all contracts tests defined for the
3054          * type.</p> </li> <li> <p>For modules, this includes determining if the module's
3055          * model meets all necessary requirements.</p> </li> </ul> <p>For more information,
3056          * see <a
3057          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing">Testing
3058          * your public extension prior to publishing</a> in the <i>CloudFormation CLI User
3059          * Guide</i>.</p> <p>If you do not specify a version, CloudFormation uses the
3060          * default version of the extension in your account and region for testing.</p>
3061          * <p>To perform testing, CloudFormation assumes the execution role specified when
3062          * the type was registered. For more information, see <a
3063          * href="AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
3064          * <p>Once you've initiated testing on an extension using <code>TestType</code>,
3065          * you can use <a
3066          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>
3067          * to monitor the current test status and test status description for the
3068          * extension.</p> <p>An extension must have a test status of <code>PASSED</code>
3069          * before it can be published. For more information, see <a
3070          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing
3071          * extensions to make them available for public use</a> in the <i>CloudFormation
3072          * CLI User Guide</i>.</p><p><h3>See Also:</h3>   <a
3073          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType">AWS
3074          * API Reference</a></p>
3075          */
3076         virtual Model::TestTypeOutcome TestType(const Model::TestTypeRequest& request) const;
3077 
3078         /**
3079          * <p>Tests a registered extension to make sure it meets all necessary requirements
3080          * for being published in the CloudFormation registry.</p> <ul> <li> <p>For
3081          * resource types, this includes passing all contracts tests defined for the
3082          * type.</p> </li> <li> <p>For modules, this includes determining if the module's
3083          * model meets all necessary requirements.</p> </li> </ul> <p>For more information,
3084          * see <a
3085          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing">Testing
3086          * your public extension prior to publishing</a> in the <i>CloudFormation CLI User
3087          * Guide</i>.</p> <p>If you do not specify a version, CloudFormation uses the
3088          * default version of the extension in your account and region for testing.</p>
3089          * <p>To perform testing, CloudFormation assumes the execution role specified when
3090          * the type was registered. For more information, see <a
3091          * href="AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
3092          * <p>Once you've initiated testing on an extension using <code>TestType</code>,
3093          * you can use <a
3094          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>
3095          * to monitor the current test status and test status description for the
3096          * extension.</p> <p>An extension must have a test status of <code>PASSED</code>
3097          * before it can be published. For more information, see <a
3098          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing
3099          * extensions to make them available for public use</a> in the <i>CloudFormation
3100          * CLI User Guide</i>.</p><p><h3>See Also:</h3>   <a
3101          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType">AWS
3102          * API Reference</a></p>
3103          *
3104          * returns a future to the operation so that it can be executed in parallel to other requests.
3105          */
3106         virtual Model::TestTypeOutcomeCallable TestTypeCallable(const Model::TestTypeRequest& request) const;
3107 
3108         /**
3109          * <p>Tests a registered extension to make sure it meets all necessary requirements
3110          * for being published in the CloudFormation registry.</p> <ul> <li> <p>For
3111          * resource types, this includes passing all contracts tests defined for the
3112          * type.</p> </li> <li> <p>For modules, this includes determining if the module's
3113          * model meets all necessary requirements.</p> </li> </ul> <p>For more information,
3114          * see <a
3115          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing">Testing
3116          * your public extension prior to publishing</a> in the <i>CloudFormation CLI User
3117          * Guide</i>.</p> <p>If you do not specify a version, CloudFormation uses the
3118          * default version of the extension in your account and region for testing.</p>
3119          * <p>To perform testing, CloudFormation assumes the execution role specified when
3120          * the type was registered. For more information, see <a
3121          * href="AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
3122          * <p>Once you've initiated testing on an extension using <code>TestType</code>,
3123          * you can use <a
3124          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>
3125          * to monitor the current test status and test status description for the
3126          * extension.</p> <p>An extension must have a test status of <code>PASSED</code>
3127          * before it can be published. For more information, see <a
3128          * href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing
3129          * extensions to make them available for public use</a> in the <i>CloudFormation
3130          * CLI User Guide</i>.</p><p><h3>See Also:</h3>   <a
3131          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType">AWS
3132          * API Reference</a></p>
3133          *
3134          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3135          */
3136         virtual void TestTypeAsync(const Model::TestTypeRequest& request, const TestTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3137 
3138         /**
3139          * <p>Updates a stack as specified in the template. After the call completes
3140          * successfully, the stack update starts. You can check the status of the stack via
3141          * the <a>DescribeStacks</a> action.</p> <p>To get a copy of the template for an
3142          * existing stack, you can use the <a>GetTemplate</a> action.</p> <p>For more
3143          * information about creating an update template, updating a stack, and monitoring
3144          * the progress of the update, see <a
3145          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html">Updating
3146          * a Stack</a>.</p><p><h3>See Also:</h3>   <a
3147          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack">AWS
3148          * API Reference</a></p>
3149          */
3150         virtual Model::UpdateStackOutcome UpdateStack(const Model::UpdateStackRequest& request) const;
3151 
3152         /**
3153          * <p>Updates a stack as specified in the template. After the call completes
3154          * successfully, the stack update starts. You can check the status of the stack via
3155          * the <a>DescribeStacks</a> action.</p> <p>To get a copy of the template for an
3156          * existing stack, you can use the <a>GetTemplate</a> action.</p> <p>For more
3157          * information about creating an update template, updating a stack, and monitoring
3158          * the progress of the update, see <a
3159          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html">Updating
3160          * a Stack</a>.</p><p><h3>See Also:</h3>   <a
3161          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack">AWS
3162          * API Reference</a></p>
3163          *
3164          * returns a future to the operation so that it can be executed in parallel to other requests.
3165          */
3166         virtual Model::UpdateStackOutcomeCallable UpdateStackCallable(const Model::UpdateStackRequest& request) const;
3167 
3168         /**
3169          * <p>Updates a stack as specified in the template. After the call completes
3170          * successfully, the stack update starts. You can check the status of the stack via
3171          * the <a>DescribeStacks</a> action.</p> <p>To get a copy of the template for an
3172          * existing stack, you can use the <a>GetTemplate</a> action.</p> <p>For more
3173          * information about creating an update template, updating a stack, and monitoring
3174          * the progress of the update, see <a
3175          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html">Updating
3176          * a Stack</a>.</p><p><h3>See Also:</h3>   <a
3177          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack">AWS
3178          * API Reference</a></p>
3179          *
3180          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3181          */
3182         virtual void UpdateStackAsync(const Model::UpdateStackRequest& request, const UpdateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3183 
3184         /**
3185          * <p>Updates the parameter values for stack instances for the specified accounts,
3186          * within the specified Regions. A stack instance refers to a stack in a specific
3187          * account and Region. </p> <p>You can only update stack instances in Regions and
3188          * accounts where they already exist; to create additional stack instances, use <a
3189          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html">CreateStackInstances</a>.
3190          * </p> <p>During stack set updates, any parameters overridden for a stack instance
3191          * are not updated, but retain their overridden value.</p> <p>You can only update
3192          * the parameter <i>values</i> that are specified in the stack set; to add or
3193          * delete a parameter itself, use <a
3194          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3195          * to update the stack set template. If you add a parameter to a template, before
3196          * you can override the parameter value specified in the stack set you must first
3197          * use <a
3198          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3199          * to update all stack instances with the updated template and parameter value
3200          * specified in the stack set. Once a stack instance has been updated with the new
3201          * parameter, you can then override the parameter value using
3202          * <code>UpdateStackInstances</code>.</p><p><h3>See Also:</h3>   <a
3203          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances">AWS
3204          * API Reference</a></p>
3205          */
3206         virtual Model::UpdateStackInstancesOutcome UpdateStackInstances(const Model::UpdateStackInstancesRequest& request) const;
3207 
3208         /**
3209          * <p>Updates the parameter values for stack instances for the specified accounts,
3210          * within the specified Regions. A stack instance refers to a stack in a specific
3211          * account and Region. </p> <p>You can only update stack instances in Regions and
3212          * accounts where they already exist; to create additional stack instances, use <a
3213          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html">CreateStackInstances</a>.
3214          * </p> <p>During stack set updates, any parameters overridden for a stack instance
3215          * are not updated, but retain their overridden value.</p> <p>You can only update
3216          * the parameter <i>values</i> that are specified in the stack set; to add or
3217          * delete a parameter itself, use <a
3218          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3219          * to update the stack set template. If you add a parameter to a template, before
3220          * you can override the parameter value specified in the stack set you must first
3221          * use <a
3222          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3223          * to update all stack instances with the updated template and parameter value
3224          * specified in the stack set. Once a stack instance has been updated with the new
3225          * parameter, you can then override the parameter value using
3226          * <code>UpdateStackInstances</code>.</p><p><h3>See Also:</h3>   <a
3227          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances">AWS
3228          * API Reference</a></p>
3229          *
3230          * returns a future to the operation so that it can be executed in parallel to other requests.
3231          */
3232         virtual Model::UpdateStackInstancesOutcomeCallable UpdateStackInstancesCallable(const Model::UpdateStackInstancesRequest& request) const;
3233 
3234         /**
3235          * <p>Updates the parameter values for stack instances for the specified accounts,
3236          * within the specified Regions. A stack instance refers to a stack in a specific
3237          * account and Region. </p> <p>You can only update stack instances in Regions and
3238          * accounts where they already exist; to create additional stack instances, use <a
3239          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html">CreateStackInstances</a>.
3240          * </p> <p>During stack set updates, any parameters overridden for a stack instance
3241          * are not updated, but retain their overridden value.</p> <p>You can only update
3242          * the parameter <i>values</i> that are specified in the stack set; to add or
3243          * delete a parameter itself, use <a
3244          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3245          * to update the stack set template. If you add a parameter to a template, before
3246          * you can override the parameter value specified in the stack set you must first
3247          * use <a
3248          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a>
3249          * to update all stack instances with the updated template and parameter value
3250          * specified in the stack set. Once a stack instance has been updated with the new
3251          * parameter, you can then override the parameter value using
3252          * <code>UpdateStackInstances</code>.</p><p><h3>See Also:</h3>   <a
3253          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances">AWS
3254          * API Reference</a></p>
3255          *
3256          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3257          */
3258         virtual void UpdateStackInstancesAsync(const Model::UpdateStackInstancesRequest& request, const UpdateStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3259 
3260         /**
3261          * <p>Updates the stack set, and associated stack instances in the specified
3262          * accounts and Regions.</p> <p>Even if the stack set operation created by updating
3263          * the stack set fails (completely or partially, below or above a specified failure
3264          * tolerance), the stack set is updated with your changes. Subsequent
3265          * <a>CreateStackInstances</a> calls on the specified stack set use the updated
3266          * stack set.</p><p><h3>See Also:</h3>   <a
3267          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet">AWS
3268          * API Reference</a></p>
3269          */
3270         virtual Model::UpdateStackSetOutcome UpdateStackSet(const Model::UpdateStackSetRequest& request) const;
3271 
3272         /**
3273          * <p>Updates the stack set, and associated stack instances in the specified
3274          * accounts and Regions.</p> <p>Even if the stack set operation created by updating
3275          * the stack set fails (completely or partially, below or above a specified failure
3276          * tolerance), the stack set is updated with your changes. Subsequent
3277          * <a>CreateStackInstances</a> calls on the specified stack set use the updated
3278          * stack set.</p><p><h3>See Also:</h3>   <a
3279          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet">AWS
3280          * API Reference</a></p>
3281          *
3282          * returns a future to the operation so that it can be executed in parallel to other requests.
3283          */
3284         virtual Model::UpdateStackSetOutcomeCallable UpdateStackSetCallable(const Model::UpdateStackSetRequest& request) const;
3285 
3286         /**
3287          * <p>Updates the stack set, and associated stack instances in the specified
3288          * accounts and Regions.</p> <p>Even if the stack set operation created by updating
3289          * the stack set fails (completely or partially, below or above a specified failure
3290          * tolerance), the stack set is updated with your changes. Subsequent
3291          * <a>CreateStackInstances</a> calls on the specified stack set use the updated
3292          * stack set.</p><p><h3>See Also:</h3>   <a
3293          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet">AWS
3294          * API Reference</a></p>
3295          *
3296          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3297          */
3298         virtual void UpdateStackSetAsync(const Model::UpdateStackSetRequest& request, const UpdateStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3299 
3300         /**
3301          * <p>Updates termination protection for the specified stack. If a user attempts to
3302          * delete a stack with termination protection enabled, the operation fails and the
3303          * stack remains unchanged. For more information, see <a
3304          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting
3305          * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>.</p>
3306          * <p>For <a
3307          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested
3308          * stacks</a>, termination protection is set on the root stack and cannot be
3309          * changed directly on the nested stack.</p><p><h3>See Also:</h3>   <a
3310          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection">AWS
3311          * API Reference</a></p>
3312          */
3313         virtual Model::UpdateTerminationProtectionOutcome UpdateTerminationProtection(const Model::UpdateTerminationProtectionRequest& request) const;
3314 
3315         /**
3316          * <p>Updates termination protection for the specified stack. If a user attempts to
3317          * delete a stack with termination protection enabled, the operation fails and the
3318          * stack remains unchanged. For more information, see <a
3319          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting
3320          * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>.</p>
3321          * <p>For <a
3322          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested
3323          * stacks</a>, termination protection is set on the root stack and cannot be
3324          * changed directly on the nested stack.</p><p><h3>See Also:</h3>   <a
3325          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection">AWS
3326          * API Reference</a></p>
3327          *
3328          * returns a future to the operation so that it can be executed in parallel to other requests.
3329          */
3330         virtual Model::UpdateTerminationProtectionOutcomeCallable UpdateTerminationProtectionCallable(const Model::UpdateTerminationProtectionRequest& request) const;
3331 
3332         /**
3333          * <p>Updates termination protection for the specified stack. If a user attempts to
3334          * delete a stack with termination protection enabled, the operation fails and the
3335          * stack remains unchanged. For more information, see <a
3336          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting
3337          * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>.</p>
3338          * <p>For <a
3339          * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested
3340          * stacks</a>, termination protection is set on the root stack and cannot be
3341          * changed directly on the nested stack.</p><p><h3>See Also:</h3>   <a
3342          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection">AWS
3343          * API Reference</a></p>
3344          *
3345          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3346          */
3347         virtual void UpdateTerminationProtectionAsync(const Model::UpdateTerminationProtectionRequest& request, const UpdateTerminationProtectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3348 
3349         /**
3350          * <p>Validates a specified template. CloudFormation first checks if the template
3351          * is valid JSON. If it isn't, CloudFormation checks if the template is valid YAML.
3352          * If both these checks fail, CloudFormation returns a template validation
3353          * error.</p><p><h3>See Also:</h3>   <a
3354          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate">AWS
3355          * API Reference</a></p>
3356          */
3357         virtual Model::ValidateTemplateOutcome ValidateTemplate(const Model::ValidateTemplateRequest& request) const;
3358 
3359         /**
3360          * <p>Validates a specified template. CloudFormation first checks if the template
3361          * is valid JSON. If it isn't, CloudFormation checks if the template is valid YAML.
3362          * If both these checks fail, CloudFormation returns a template validation
3363          * error.</p><p><h3>See Also:</h3>   <a
3364          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate">AWS
3365          * API Reference</a></p>
3366          *
3367          * returns a future to the operation so that it can be executed in parallel to other requests.
3368          */
3369         virtual Model::ValidateTemplateOutcomeCallable ValidateTemplateCallable(const Model::ValidateTemplateRequest& request) const;
3370 
3371         /**
3372          * <p>Validates a specified template. CloudFormation first checks if the template
3373          * is valid JSON. If it isn't, CloudFormation checks if the template is valid YAML.
3374          * If both these checks fail, CloudFormation returns a template validation
3375          * error.</p><p><h3>See Also:</h3>   <a
3376          * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate">AWS
3377          * API Reference</a></p>
3378          *
3379          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3380          */
3381         virtual void ValidateTemplateAsync(const Model::ValidateTemplateRequest& request, const ValidateTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3382 
3383 
3384         void OverrideEndpoint(const Aws::String& endpoint);
3385   private:
3386         void init(const Aws::Client::ClientConfiguration& clientConfiguration);
3387         void ActivateTypeAsyncHelper(const Model::ActivateTypeRequest& request, const ActivateTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3388         void BatchDescribeTypeConfigurationsAsyncHelper(const Model::BatchDescribeTypeConfigurationsRequest& request, const BatchDescribeTypeConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3389         void CancelUpdateStackAsyncHelper(const Model::CancelUpdateStackRequest& request, const CancelUpdateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3390         void ContinueUpdateRollbackAsyncHelper(const Model::ContinueUpdateRollbackRequest& request, const ContinueUpdateRollbackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3391         void CreateChangeSetAsyncHelper(const Model::CreateChangeSetRequest& request, const CreateChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3392         void CreateStackAsyncHelper(const Model::CreateStackRequest& request, const CreateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3393         void CreateStackInstancesAsyncHelper(const Model::CreateStackInstancesRequest& request, const CreateStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3394         void CreateStackSetAsyncHelper(const Model::CreateStackSetRequest& request, const CreateStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3395         void DeactivateTypeAsyncHelper(const Model::DeactivateTypeRequest& request, const DeactivateTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3396         void DeleteChangeSetAsyncHelper(const Model::DeleteChangeSetRequest& request, const DeleteChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3397         void DeleteStackAsyncHelper(const Model::DeleteStackRequest& request, const DeleteStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3398         void DeleteStackInstancesAsyncHelper(const Model::DeleteStackInstancesRequest& request, const DeleteStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3399         void DeleteStackSetAsyncHelper(const Model::DeleteStackSetRequest& request, const DeleteStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3400         void DeregisterTypeAsyncHelper(const Model::DeregisterTypeRequest& request, const DeregisterTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3401         void DescribeAccountLimitsAsyncHelper(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3402         void DescribeChangeSetAsyncHelper(const Model::DescribeChangeSetRequest& request, const DescribeChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3403         void DescribePublisherAsyncHelper(const Model::DescribePublisherRequest& request, const DescribePublisherResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3404         void DescribeStackDriftDetectionStatusAsyncHelper(const Model::DescribeStackDriftDetectionStatusRequest& request, const DescribeStackDriftDetectionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3405         void DescribeStackEventsAsyncHelper(const Model::DescribeStackEventsRequest& request, const DescribeStackEventsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3406         void DescribeStackInstanceAsyncHelper(const Model::DescribeStackInstanceRequest& request, const DescribeStackInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3407         void DescribeStackResourceAsyncHelper(const Model::DescribeStackResourceRequest& request, const DescribeStackResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3408         void DescribeStackResourceDriftsAsyncHelper(const Model::DescribeStackResourceDriftsRequest& request, const DescribeStackResourceDriftsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3409         void DescribeStackResourcesAsyncHelper(const Model::DescribeStackResourcesRequest& request, const DescribeStackResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3410         void DescribeStackSetAsyncHelper(const Model::DescribeStackSetRequest& request, const DescribeStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3411         void DescribeStackSetOperationAsyncHelper(const Model::DescribeStackSetOperationRequest& request, const DescribeStackSetOperationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3412         void DescribeStacksAsyncHelper(const Model::DescribeStacksRequest& request, const DescribeStacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3413         void DescribeTypeAsyncHelper(const Model::DescribeTypeRequest& request, const DescribeTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3414         void DescribeTypeRegistrationAsyncHelper(const Model::DescribeTypeRegistrationRequest& request, const DescribeTypeRegistrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3415         void DetectStackDriftAsyncHelper(const Model::DetectStackDriftRequest& request, const DetectStackDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3416         void DetectStackResourceDriftAsyncHelper(const Model::DetectStackResourceDriftRequest& request, const DetectStackResourceDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3417         void DetectStackSetDriftAsyncHelper(const Model::DetectStackSetDriftRequest& request, const DetectStackSetDriftResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3418         void EstimateTemplateCostAsyncHelper(const Model::EstimateTemplateCostRequest& request, const EstimateTemplateCostResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3419         void ExecuteChangeSetAsyncHelper(const Model::ExecuteChangeSetRequest& request, const ExecuteChangeSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3420         void GetStackPolicyAsyncHelper(const Model::GetStackPolicyRequest& request, const GetStackPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3421         void GetTemplateAsyncHelper(const Model::GetTemplateRequest& request, const GetTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3422         void GetTemplateSummaryAsyncHelper(const Model::GetTemplateSummaryRequest& request, const GetTemplateSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3423         void ImportStacksToStackSetAsyncHelper(const Model::ImportStacksToStackSetRequest& request, const ImportStacksToStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3424         void ListChangeSetsAsyncHelper(const Model::ListChangeSetsRequest& request, const ListChangeSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3425         void ListExportsAsyncHelper(const Model::ListExportsRequest& request, const ListExportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3426         void ListImportsAsyncHelper(const Model::ListImportsRequest& request, const ListImportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3427         void ListStackInstancesAsyncHelper(const Model::ListStackInstancesRequest& request, const ListStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3428         void ListStackResourcesAsyncHelper(const Model::ListStackResourcesRequest& request, const ListStackResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3429         void ListStackSetOperationResultsAsyncHelper(const Model::ListStackSetOperationResultsRequest& request, const ListStackSetOperationResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3430         void ListStackSetOperationsAsyncHelper(const Model::ListStackSetOperationsRequest& request, const ListStackSetOperationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3431         void ListStackSetsAsyncHelper(const Model::ListStackSetsRequest& request, const ListStackSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3432         void ListStacksAsyncHelper(const Model::ListStacksRequest& request, const ListStacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3433         void ListTypeRegistrationsAsyncHelper(const Model::ListTypeRegistrationsRequest& request, const ListTypeRegistrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3434         void ListTypeVersionsAsyncHelper(const Model::ListTypeVersionsRequest& request, const ListTypeVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3435         void ListTypesAsyncHelper(const Model::ListTypesRequest& request, const ListTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3436         void PublishTypeAsyncHelper(const Model::PublishTypeRequest& request, const PublishTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3437         void RecordHandlerProgressAsyncHelper(const Model::RecordHandlerProgressRequest& request, const RecordHandlerProgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3438         void RegisterPublisherAsyncHelper(const Model::RegisterPublisherRequest& request, const RegisterPublisherResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3439         void RegisterTypeAsyncHelper(const Model::RegisterTypeRequest& request, const RegisterTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3440         void RollbackStackAsyncHelper(const Model::RollbackStackRequest& request, const RollbackStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3441         void SetStackPolicyAsyncHelper(const Model::SetStackPolicyRequest& request, const SetStackPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3442         void SetTypeConfigurationAsyncHelper(const Model::SetTypeConfigurationRequest& request, const SetTypeConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3443         void SetTypeDefaultVersionAsyncHelper(const Model::SetTypeDefaultVersionRequest& request, const SetTypeDefaultVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3444         void SignalResourceAsyncHelper(const Model::SignalResourceRequest& request, const SignalResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3445         void StopStackSetOperationAsyncHelper(const Model::StopStackSetOperationRequest& request, const StopStackSetOperationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3446         void TestTypeAsyncHelper(const Model::TestTypeRequest& request, const TestTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3447         void UpdateStackAsyncHelper(const Model::UpdateStackRequest& request, const UpdateStackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3448         void UpdateStackInstancesAsyncHelper(const Model::UpdateStackInstancesRequest& request, const UpdateStackInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3449         void UpdateStackSetAsyncHelper(const Model::UpdateStackSetRequest& request, const UpdateStackSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3450         void UpdateTerminationProtectionAsyncHelper(const Model::UpdateTerminationProtectionRequest& request, const UpdateTerminationProtectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3451         void ValidateTemplateAsyncHelper(const Model::ValidateTemplateRequest& request, const ValidateTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3452 
3453         Aws::String m_uri;
3454         Aws::String m_configScheme;
3455         std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
3456   };
3457 
3458 } // namespace CloudFormation
3459 } // namespace Aws
3460