All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.cloudformation.DefaultCloudFormationAsyncClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS CloudFormation module holds the client classes that are used for communicating with AWS CloudFormation Service

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.cloudformation;

import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsAsyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.AsyncClientHandler;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.retry.RetryMode;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.cloudformation.internal.CloudFormationServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.cloudformation.model.ActivateOrganizationsAccessRequest;
import software.amazon.awssdk.services.cloudformation.model.ActivateOrganizationsAccessResponse;
import software.amazon.awssdk.services.cloudformation.model.ActivateTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.ActivateTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.AlreadyExistsException;
import software.amazon.awssdk.services.cloudformation.model.BatchDescribeTypeConfigurationsRequest;
import software.amazon.awssdk.services.cloudformation.model.BatchDescribeTypeConfigurationsResponse;
import software.amazon.awssdk.services.cloudformation.model.CancelUpdateStackRequest;
import software.amazon.awssdk.services.cloudformation.model.CancelUpdateStackResponse;
import software.amazon.awssdk.services.cloudformation.model.CfnRegistryException;
import software.amazon.awssdk.services.cloudformation.model.ChangeSetNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.CloudFormationException;
import software.amazon.awssdk.services.cloudformation.model.ConcurrentResourcesLimitExceededException;
import software.amazon.awssdk.services.cloudformation.model.ContinueUpdateRollbackRequest;
import software.amazon.awssdk.services.cloudformation.model.ContinueUpdateRollbackResponse;
import software.amazon.awssdk.services.cloudformation.model.CreateChangeSetRequest;
import software.amazon.awssdk.services.cloudformation.model.CreateChangeSetResponse;
import software.amazon.awssdk.services.cloudformation.model.CreateGeneratedTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.CreateGeneratedTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.CreateStackInstancesRequest;
import software.amazon.awssdk.services.cloudformation.model.CreateStackInstancesResponse;
import software.amazon.awssdk.services.cloudformation.model.CreateStackRequest;
import software.amazon.awssdk.services.cloudformation.model.CreateStackResponse;
import software.amazon.awssdk.services.cloudformation.model.CreateStackSetRequest;
import software.amazon.awssdk.services.cloudformation.model.CreateStackSetResponse;
import software.amazon.awssdk.services.cloudformation.model.CreatedButModifiedException;
import software.amazon.awssdk.services.cloudformation.model.DeactivateOrganizationsAccessRequest;
import software.amazon.awssdk.services.cloudformation.model.DeactivateOrganizationsAccessResponse;
import software.amazon.awssdk.services.cloudformation.model.DeactivateTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.DeactivateTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.DeleteChangeSetRequest;
import software.amazon.awssdk.services.cloudformation.model.DeleteChangeSetResponse;
import software.amazon.awssdk.services.cloudformation.model.DeleteGeneratedTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.DeleteGeneratedTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackInstancesRequest;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackInstancesResponse;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackRequest;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackResponse;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackSetRequest;
import software.amazon.awssdk.services.cloudformation.model.DeleteStackSetResponse;
import software.amazon.awssdk.services.cloudformation.model.DeregisterTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.DeregisterTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetHooksRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetHooksResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeGeneratedTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeGeneratedTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeOrganizationsAccessRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeOrganizationsAccessResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribePublisherRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribePublisherResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeResourceScanRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeResourceScanResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackDriftDetectionStatusRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackDriftDetectionStatusResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackEventsRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackEventsResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackInstanceRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackInstanceResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceDriftsRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceDriftsResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourcesRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackResourcesResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackSetOperationRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackSetOperationResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackSetRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStackSetResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeStacksRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeStacksResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeTypeRegistrationRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeTypeRegistrationResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.DetectStackDriftRequest;
import software.amazon.awssdk.services.cloudformation.model.DetectStackDriftResponse;
import software.amazon.awssdk.services.cloudformation.model.DetectStackResourceDriftRequest;
import software.amazon.awssdk.services.cloudformation.model.DetectStackResourceDriftResponse;
import software.amazon.awssdk.services.cloudformation.model.DetectStackSetDriftRequest;
import software.amazon.awssdk.services.cloudformation.model.DetectStackSetDriftResponse;
import software.amazon.awssdk.services.cloudformation.model.EstimateTemplateCostRequest;
import software.amazon.awssdk.services.cloudformation.model.EstimateTemplateCostResponse;
import software.amazon.awssdk.services.cloudformation.model.ExecuteChangeSetRequest;
import software.amazon.awssdk.services.cloudformation.model.ExecuteChangeSetResponse;
import software.amazon.awssdk.services.cloudformation.model.GeneratedTemplateNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.GetGeneratedTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.GetGeneratedTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.GetStackPolicyRequest;
import software.amazon.awssdk.services.cloudformation.model.GetStackPolicyResponse;
import software.amazon.awssdk.services.cloudformation.model.GetTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.GetTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.GetTemplateSummaryRequest;
import software.amazon.awssdk.services.cloudformation.model.GetTemplateSummaryResponse;
import software.amazon.awssdk.services.cloudformation.model.HookResultNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.ImportStacksToStackSetRequest;
import software.amazon.awssdk.services.cloudformation.model.ImportStacksToStackSetResponse;
import software.amazon.awssdk.services.cloudformation.model.InsufficientCapabilitiesException;
import software.amazon.awssdk.services.cloudformation.model.InvalidChangeSetStatusException;
import software.amazon.awssdk.services.cloudformation.model.InvalidOperationException;
import software.amazon.awssdk.services.cloudformation.model.InvalidStateTransitionException;
import software.amazon.awssdk.services.cloudformation.model.LimitExceededException;
import software.amazon.awssdk.services.cloudformation.model.ListChangeSetsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListChangeSetsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListExportsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListExportsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListGeneratedTemplatesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListGeneratedTemplatesResponse;
import software.amazon.awssdk.services.cloudformation.model.ListHookResultsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListHookResultsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListImportsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListImportsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScanRelatedResourcesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScanRelatedResourcesResponse;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScanResourcesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScanResourcesResponse;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScansRequest;
import software.amazon.awssdk.services.cloudformation.model.ListResourceScansResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackInstanceResourceDriftsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackInstanceResourceDriftsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackInstancesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackInstancesResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackResourcesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackResourcesResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetAutoDeploymentTargetsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetAutoDeploymentTargetsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationResultsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationResultsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStackSetsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListStacksRequest;
import software.amazon.awssdk.services.cloudformation.model.ListStacksResponse;
import software.amazon.awssdk.services.cloudformation.model.ListTypeRegistrationsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListTypeRegistrationsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListTypeVersionsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListTypeVersionsResponse;
import software.amazon.awssdk.services.cloudformation.model.ListTypesRequest;
import software.amazon.awssdk.services.cloudformation.model.ListTypesResponse;
import software.amazon.awssdk.services.cloudformation.model.NameAlreadyExistsException;
import software.amazon.awssdk.services.cloudformation.model.OperationIdAlreadyExistsException;
import software.amazon.awssdk.services.cloudformation.model.OperationInProgressException;
import software.amazon.awssdk.services.cloudformation.model.OperationNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.OperationStatusCheckFailedException;
import software.amazon.awssdk.services.cloudformation.model.PublishTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.PublishTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.RecordHandlerProgressRequest;
import software.amazon.awssdk.services.cloudformation.model.RecordHandlerProgressResponse;
import software.amazon.awssdk.services.cloudformation.model.RegisterPublisherRequest;
import software.amazon.awssdk.services.cloudformation.model.RegisterPublisherResponse;
import software.amazon.awssdk.services.cloudformation.model.RegisterTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.RegisterTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.ResourceScanInProgressException;
import software.amazon.awssdk.services.cloudformation.model.ResourceScanLimitExceededException;
import software.amazon.awssdk.services.cloudformation.model.ResourceScanNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.RollbackStackRequest;
import software.amazon.awssdk.services.cloudformation.model.RollbackStackResponse;
import software.amazon.awssdk.services.cloudformation.model.SetStackPolicyRequest;
import software.amazon.awssdk.services.cloudformation.model.SetStackPolicyResponse;
import software.amazon.awssdk.services.cloudformation.model.SetTypeConfigurationRequest;
import software.amazon.awssdk.services.cloudformation.model.SetTypeConfigurationResponse;
import software.amazon.awssdk.services.cloudformation.model.SetTypeDefaultVersionRequest;
import software.amazon.awssdk.services.cloudformation.model.SetTypeDefaultVersionResponse;
import software.amazon.awssdk.services.cloudformation.model.SignalResourceRequest;
import software.amazon.awssdk.services.cloudformation.model.SignalResourceResponse;
import software.amazon.awssdk.services.cloudformation.model.StackInstanceNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.StackNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.StackSetNotEmptyException;
import software.amazon.awssdk.services.cloudformation.model.StackSetNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.StaleRequestException;
import software.amazon.awssdk.services.cloudformation.model.StartResourceScanRequest;
import software.amazon.awssdk.services.cloudformation.model.StartResourceScanResponse;
import software.amazon.awssdk.services.cloudformation.model.StopStackSetOperationRequest;
import software.amazon.awssdk.services.cloudformation.model.StopStackSetOperationResponse;
import software.amazon.awssdk.services.cloudformation.model.TestTypeRequest;
import software.amazon.awssdk.services.cloudformation.model.TestTypeResponse;
import software.amazon.awssdk.services.cloudformation.model.TokenAlreadyExistsException;
import software.amazon.awssdk.services.cloudformation.model.TypeConfigurationNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.TypeNotFoundException;
import software.amazon.awssdk.services.cloudformation.model.UpdateGeneratedTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.UpdateGeneratedTemplateResponse;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackInstancesRequest;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackInstancesResponse;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackRequest;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackResponse;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackSetRequest;
import software.amazon.awssdk.services.cloudformation.model.UpdateStackSetResponse;
import software.amazon.awssdk.services.cloudformation.model.UpdateTerminationProtectionRequest;
import software.amazon.awssdk.services.cloudformation.model.UpdateTerminationProtectionResponse;
import software.amazon.awssdk.services.cloudformation.model.ValidateTemplateRequest;
import software.amazon.awssdk.services.cloudformation.model.ValidateTemplateResponse;
import software.amazon.awssdk.services.cloudformation.transform.ActivateOrganizationsAccessRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ActivateTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.BatchDescribeTypeConfigurationsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CancelUpdateStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ContinueUpdateRollbackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateChangeSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateGeneratedTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeactivateOrganizationsAccessRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeactivateTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteChangeSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteGeneratedTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeregisterTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeAccountLimitsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeChangeSetHooksRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeChangeSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeGeneratedTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeOrganizationsAccessRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribePublisherRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeResourceScanRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackDriftDetectionStatusRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackEventsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackInstanceRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackResourceDriftsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackResourceRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackResourcesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackSetOperationRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeStacksRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeTypeRegistrationRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DetectStackDriftRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DetectStackResourceDriftRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DetectStackSetDriftRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.EstimateTemplateCostRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ExecuteChangeSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.GetGeneratedTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.GetStackPolicyRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.GetTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.GetTemplateSummaryRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ImportStacksToStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListChangeSetsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListExportsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListGeneratedTemplatesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListHookResultsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListImportsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListResourceScanRelatedResourcesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListResourceScanResourcesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListResourceScansRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackInstanceResourceDriftsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackResourcesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackSetAutoDeploymentTargetsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackSetOperationResultsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackSetOperationsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackSetsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStacksRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListTypeRegistrationsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListTypeVersionsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListTypesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.PublishTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.RecordHandlerProgressRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.RegisterPublisherRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.RegisterTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.RollbackStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.SetStackPolicyRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.SetTypeConfigurationRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.SetTypeDefaultVersionRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.SignalResourceRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.StartResourceScanRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.StopStackSetOperationRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.TestTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.UpdateGeneratedTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.UpdateStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.UpdateStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.UpdateStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.UpdateTerminationProtectionRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ValidateTemplateRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.waiters.CloudFormationAsyncWaiter;
import software.amazon.awssdk.utils.CompletableFutureUtils;

/**
 * Internal implementation of {@link CloudFormationAsyncClient}.
 *
 * @see CloudFormationAsyncClient#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultCloudFormationAsyncClient implements CloudFormationAsyncClient {
    private static final Logger log = LoggerFactory.getLogger(DefaultCloudFormationAsyncClient.class);

    private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
            .serviceProtocol(AwsServiceProtocol.QUERY).build();

    private final AsyncClientHandler clientHandler;

    private final AwsQueryProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    private final ScheduledExecutorService executorService;

    protected DefaultCloudFormationAsyncClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
        this.protocolFactory = init();
        this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE);
    }

    /**
     * 

* Activate trusted access with Organizations. With trusted access between StackSets and Organizations activated, * the management account has permissions to create and manage StackSets for your organization. *

* * @param activateOrganizationsAccessRequest * @return A Java Future containing the result of the ActivateOrganizationsAccess operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ActivateOrganizationsAccess * @see AWS API Documentation */ @Override public CompletableFuture activateOrganizationsAccess( ActivateOrganizationsAccessRequest activateOrganizationsAccessRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(activateOrganizationsAccessRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, activateOrganizationsAccessRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ActivateOrganizationsAccess"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ActivateOrganizationsAccessResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ActivateOrganizationsAccess").withProtocolMetadata(protocolMetadata) .withMarshaller(new ActivateOrganizationsAccessRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(activateOrganizationsAccessRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Activates a public third-party extension, making it available for use in stack templates. Once you have activated * a public third-party extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Using public * extensions in the CloudFormation User Guide. *

* * @param activateTypeRequest * @return A Java Future containing the result of the ActivateType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ActivateType * @see AWS * API Documentation */ @Override public CompletableFuture activateType(ActivateTypeRequest activateTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(activateTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, activateTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ActivateType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ActivateTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ActivateType").withProtocolMetadata(protocolMetadata) .withMarshaller(new ActivateTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(activateTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the * account and Region. *

*

* For more information, see Edit * configuration data for extensions in your account in the CloudFormation User Guide. *

* * @param batchDescribeTypeConfigurationsRequest * @return A Java Future containing the result of the BatchDescribeTypeConfigurations operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • TypeConfigurationNotFoundException The specified extension configuration can't be found.
  • *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.BatchDescribeTypeConfigurations * @see AWS API Documentation */ @Override public CompletableFuture batchDescribeTypeConfigurations( BatchDescribeTypeConfigurationsRequest batchDescribeTypeConfigurationsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(batchDescribeTypeConfigurationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, batchDescribeTypeConfigurationsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "BatchDescribeTypeConfigurations"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(BatchDescribeTypeConfigurationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("BatchDescribeTypeConfigurations").withProtocolMetadata(protocolMetadata) .withMarshaller(new BatchDescribeTypeConfigurationsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(batchDescribeTypeConfigurationsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and * reverts to the previous stack configuration. *

* *

* You can cancel only stacks that are in the UPDATE_IN_PROGRESS state. *

*
* * @param cancelUpdateStackRequest * The input for the CancelUpdateStack action. * @return A Java Future containing the result of the CancelUpdateStack operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CancelUpdateStack * @see AWS API Documentation */ @Override public CompletableFuture cancelUpdateStack(CancelUpdateStackRequest cancelUpdateStackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(cancelUpdateStackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, cancelUpdateStackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CancelUpdateStack"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CancelUpdateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CancelUpdateStack").withProtocolMetadata(protocolMetadata) .withMarshaller(new CancelUpdateStackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(cancelUpdateStackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* For a specified stack that's in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the * UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can return your stack to a working * state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. *

*

* A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll back all changes * after a failed stack update. For example, you might have a stack that's rolling back to an old database instance * that was deleted outside of CloudFormation. Because CloudFormation doesn't know the database was deleted, it * assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to * fail. *

* * @param continueUpdateRollbackRequest * The input for the ContinueUpdateRollback action. * @return A Java Future containing the result of the ContinueUpdateRollback operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ContinueUpdateRollback * @see AWS API Documentation */ @Override public CompletableFuture continueUpdateRollback( ContinueUpdateRollbackRequest continueUpdateRollbackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(continueUpdateRollbackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, continueUpdateRollbackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ContinueUpdateRollback"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ContinueUpdateRollbackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ContinueUpdateRollback").withProtocolMetadata(protocolMetadata) .withMarshaller(new ContinueUpdateRollbackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(continueUpdateRollbackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates a list of changes that will be applied to a stack so that you can review the changes before executing * them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set * for a stack that doesn't exist, the change set shows all of the resources that CloudFormation will create. If you * create a change set for an existing stack, CloudFormation compares the stack's information with the information * that you submit in the change set and lists the differences. Use change sets to understand which resources * CloudFormation will create or change, and how it will change resources in an existing stack, before you create or * update a stack. *

*

* To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify * CREATE. To create a change set for an existing stack, specify UPDATE for the * ChangeSetType parameter. To create a change set for an import operation, specify IMPORT * for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, * CloudFormation starts creating the change set. To check the status of the change set or to review it, use the * DescribeChangeSet action. *

*

* When you are satisfied with the changes the change set will make, execute the change set by using the * ExecuteChangeSet action. CloudFormation doesn't make changes until you execute the change set. *

*

* To create a change set for the entire stack hierarchy, set IncludeNestedStacks to True. *

* * @param createChangeSetRequest * The input for the CreateChangeSet action. * @return A Java Future containing the result of the CreateChangeSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • AlreadyExistsException The resource with the name requested already exists.
  • *
  • InsufficientCapabilitiesException The template contains resources with capabilities that weren't * specified in the Capabilities parameter.
  • *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CreateChangeSet * @see AWS API Documentation */ @Override public CompletableFuture createChangeSet(CreateChangeSetRequest createChangeSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createChangeSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createChangeSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateChangeSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateChangeSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateChangeSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createChangeSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates a template from existing resources that are not already managed with CloudFormation. You can check the * status of the template generation using the DescribeGeneratedTemplate API action. *

* * @param createGeneratedTemplateRequest * @return A Java Future containing the result of the CreateGeneratedTemplate operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • AlreadyExistsException The resource with the name requested already exists.
  • *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • ConcurrentResourcesLimitExceededException No more than 5 generated templates can be in an * InProgress or Pending status at one time. This error is also returned if a * generated template that is in an InProgress or Pending status is attempted to * be updated or deleted.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CreateGeneratedTemplate * @see AWS API Documentation */ @Override public CompletableFuture createGeneratedTemplate( CreateGeneratedTemplateRequest createGeneratedTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createGeneratedTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createGeneratedTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateGeneratedTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateGeneratedTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateGeneratedTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateGeneratedTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createGeneratedTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. * You can check the status of the stack through the DescribeStacks operation. *

*

* For more information about creating a stack and monitoring stack progress, see Managing Amazon Web Services * resources as a single unit with CloudFormation stacks in the CloudFormation User Guide. *

* * @param createStackRequest * The input for CreateStack action. * @return A Java Future containing the result of the CreateStack operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • AlreadyExistsException The resource with the name requested already exists.
  • *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • InsufficientCapabilitiesException The template contains resources with capabilities that weren't * specified in the Capabilities parameter.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CreateStack * @see AWS * API Documentation */ @Override public CompletableFuture createStack(CreateStackRequest createStackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createStackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createStackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateStack"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateStack").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateStackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createStackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack * instance refers to a stack in a specific account and Region. You must specify at least one value for either * Accounts or DeploymentTargets, and you must specify at least one value for * Regions. *

* * @param createStackInstancesRequest * @return A Java Future containing the result of the CreateStackInstances operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
  • *
  • OperationIdAlreadyExistsException The specified operation ID already exists.
  • *
  • StaleRequestException Another operation has been performed on this stack set since the specified * operation was performed.
  • *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CreateStackInstances * @see AWS API Documentation */ @Override public CompletableFuture createStackInstances( CreateStackInstancesRequest createStackInstancesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createStackInstancesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createStackInstancesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateStackInstances"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateStackInstances").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateStackInstancesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createStackInstancesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates a stack set. *

* * @param createStackSetRequest * @return A Java Future containing the result of the CreateStackSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • NameAlreadyExistsException The specified name is already in use.
  • *
  • CreatedButModifiedException The specified resource exists, but has been changed.
  • *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.CreateStackSet * @see AWS * API Documentation */ @Override public CompletableFuture createStackSet(CreateStackSetRequest createStackSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createStackSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createStackSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateStackSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateStackSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateStackSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createStackSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deactivates trusted access with Organizations. If trusted access is deactivated, the management account does not * have permissions to create and manage service-managed StackSets for your organization. *

* * @param deactivateOrganizationsAccessRequest * @return A Java Future containing the result of the DeactivateOrganizationsAccess operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeactivateOrganizationsAccess * @see AWS API Documentation */ @Override public CompletableFuture deactivateOrganizationsAccess( DeactivateOrganizationsAccessRequest deactivateOrganizationsAccessRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deactivateOrganizationsAccessRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deactivateOrganizationsAccessRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeactivateOrganizationsAccess"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeactivateOrganizationsAccessResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeactivateOrganizationsAccess").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeactivateOrganizationsAccessRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deactivateOrganizationsAccessRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deactivates a public extension that was previously activated in this account and Region. *

*

* Once deactivated, an extension can't be used in any CloudFormation operation. This includes stack update * operations where the stack template includes the extension, even if no updates are being made to the extension. * In addition, deactivated extensions aren't automatically updated if a new version of the extension is released. *

* * @param deactivateTypeRequest * @return A Java Future containing the result of the DeactivateType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeactivateType * @see AWS * API Documentation */ @Override public CompletableFuture deactivateType(DeactivateTypeRequest deactivateTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deactivateTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deactivateTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeactivateType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeactivateTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeactivateType").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeactivateTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deactivateTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. *

*

* If the call successfully completes, CloudFormation successfully deleted the change set. *

*

* If IncludeNestedStacks specifies True during the creation of the nested change set, * then DeleteChangeSet will delete all change sets that belong to the stacks hierarchy and will also * delete all change sets for nested stacks with the status of REVIEW_IN_PROGRESS. *

* * @param deleteChangeSetRequest * The input for the DeleteChangeSet action. * @return A Java Future containing the result of the DeleteChangeSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidChangeSetStatusException The specified change set can't be used to update the stack. For * example, the change set status might be CREATE_IN_PROGRESS, or the stack status might be * UPDATE_IN_PROGRESS.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeleteChangeSet * @see AWS API Documentation */ @Override public CompletableFuture deleteChangeSet(DeleteChangeSetRequest deleteChangeSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteChangeSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteChangeSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteChangeSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteChangeSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteChangeSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteChangeSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deleted a generated template. *

* * @param deleteGeneratedTemplateRequest * @return A Java Future containing the result of the DeleteGeneratedTemplate operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • GeneratedTemplateNotFoundException The generated template was not found.
  • *
  • ConcurrentResourcesLimitExceededException No more than 5 generated templates can be in an * InProgress or Pending status at one time. This error is also returned if a * generated template that is in an InProgress or Pending status is attempted to * be updated or deleted.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeleteGeneratedTemplate * @see AWS API Documentation */ @Override public CompletableFuture deleteGeneratedTemplate( DeleteGeneratedTemplateRequest deleteGeneratedTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteGeneratedTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteGeneratedTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteGeneratedTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteGeneratedTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteGeneratedTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteGeneratedTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteGeneratedTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks don't show * up in the DescribeStacks operation if the deletion has been completed successfully. *

*

* For more information about deleting a stack, see Delete a * stack from the CloudFormation console in the CloudFormation User Guide. *

* * @param deleteStackRequest * The input for DeleteStack action. * @return A Java Future containing the result of the DeleteStack operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeleteStack * @see AWS * API Documentation */ @Override public CompletableFuture deleteStack(DeleteStackRequest deleteStackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteStackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteStackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteStack"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteStack").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteStackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteStackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes stack instances for the specified accounts, in the specified Amazon Web Services Regions. *

* * @param deleteStackInstancesRequest * @return A Java Future containing the result of the DeleteStackInstances operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
  • *
  • OperationIdAlreadyExistsException The specified operation ID already exists.
  • *
  • StaleRequestException Another operation has been performed on this stack set since the specified * operation was performed.
  • *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeleteStackInstances * @see AWS API Documentation */ @Override public CompletableFuture deleteStackInstances( DeleteStackInstancesRequest deleteStackInstancesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteStackInstancesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteStackInstancesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteStackInstances"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteStackInstances").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteStackInstancesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteStackInstancesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes a stack set. Before you can delete a stack set, all its member stack instances must be deleted. For more * information about how to complete this, see DeleteStackInstances. *

* * @param deleteStackSetRequest * @return A Java Future containing the result of the DeleteStackSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotEmptyException You can't yet delete this stack set, because it still contains one or more * stack instances. Delete all stack instances from the stack set before deleting the stack set.
  • *
  • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeleteStackSet * @see AWS * API Documentation */ @Override public CompletableFuture deleteStackSet(DeleteStackSetRequest deleteStackSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteStackSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteStackSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteStackSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteStackSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteStackSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteStackSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it * from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. *

*

* To deregister an entire extension, you must individually deregister all active versions of that extension. If an * extension has only a single active version, deregistering that version results in the extension itself being * deregistered and marked as deprecated in the registry. *

*

* You can't deregister the default version of an extension if there are other active version of that extension. If * you do deregister the default version of an extension, the extension type itself is deregistered as well and * marked as deprecated. *

*

* To view the deprecation status of an extension or extension version, use DescribeType. *

* * @param deregisterTypeRequest * @return A Java Future containing the result of the DeregisterType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DeregisterType * @see AWS * API Documentation */ @Override public CompletableFuture deregisterType(DeregisterTypeRequest deregisterTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deregisterTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deregisterTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeregisterType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeregisterTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeregisterType").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeregisterTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deregisterTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you can create in your * account. For more information about account limits, see Understand * CloudFormation quotas in the CloudFormation User Guide. *

* * @param describeAccountLimitsRequest * The input for the DescribeAccountLimits action. * @return A Java Future containing the result of the DescribeAccountLimits operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeAccountLimits * @see AWS API Documentation */ @Override public CompletableFuture describeAccountLimits( DescribeAccountLimitsRequest describeAccountLimitsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAccountLimitsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAccountLimitsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAccountLimits"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeAccountLimitsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeAccountLimits").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeAccountLimitsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeAccountLimitsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the * change set. For more information, see Update CloudFormation stacks using change sets in the CloudFormation User Guide. *

* * @param describeChangeSetRequest * The input for the DescribeChangeSet action. * @return A Java Future containing the result of the DescribeChangeSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ChangeSetNotFoundException The specified change set name or ID doesn't exit. To view valid change * sets for a stack, use the ListChangeSets operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeChangeSet * @see AWS API Documentation */ @Override public CompletableFuture describeChangeSet(DescribeChangeSetRequest describeChangeSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeChangeSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeChangeSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeChangeSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeChangeSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeChangeSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeChangeSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns hook-related information for the change set and a list of changes that CloudFormation makes when you run * the change set. *

* * @param describeChangeSetHooksRequest * @return A Java Future containing the result of the DescribeChangeSetHooks operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ChangeSetNotFoundException The specified change set name or ID doesn't exit. To view valid change * sets for a stack, use the ListChangeSets operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeChangeSetHooks * @see AWS API Documentation */ @Override public CompletableFuture describeChangeSetHooks( DescribeChangeSetHooksRequest describeChangeSetHooksRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeChangeSetHooksRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeChangeSetHooksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeChangeSetHooks"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeChangeSetHooksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeChangeSetHooks").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeChangeSetHooksRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeChangeSetHooksRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Describes a generated template. The output includes details about the progress of the creation of a generated * template started by a CreateGeneratedTemplate API action or the update of a generated template * started with an UpdateGeneratedTemplate API action. *

* * @param describeGeneratedTemplateRequest * @return A Java Future containing the result of the DescribeGeneratedTemplate operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • GeneratedTemplateNotFoundException The generated template was not found.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeGeneratedTemplate * @see AWS API Documentation */ @Override public CompletableFuture describeGeneratedTemplate( DescribeGeneratedTemplateRequest describeGeneratedTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeGeneratedTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeGeneratedTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeGeneratedTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeGeneratedTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeGeneratedTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeGeneratedTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeGeneratedTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Retrieves information about the account's OrganizationAccess status. This API can be called either * by the management account or the delegated administrator by using the CallAs parameter. This API can * also be called without the CallAs parameter by the management account. *

* * @param describeOrganizationsAccessRequest * @return A Java Future containing the result of the DescribeOrganizationsAccess operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeOrganizationsAccess * @see AWS API Documentation */ @Override public CompletableFuture describeOrganizationsAccess( DescribeOrganizationsAccessRequest describeOrganizationsAccessRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeOrganizationsAccessRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeOrganizationsAccessRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeOrganizationsAccess"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeOrganizationsAccessResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeOrganizationsAccess").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeOrganizationsAccessRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeOrganizationsAccessRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns information about a CloudFormation extension publisher. *

*

* If you don't supply a PublisherId, and you have registered as an extension publisher, * DescribePublisher returns information about your own publisher account. *

*

* For more information about registering as a publisher, see: *

* * * @param describePublisherRequest * @return A Java Future containing the result of the DescribePublisher operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribePublisher * @see AWS API Documentation */ @Override public CompletableFuture describePublisher(DescribePublisherRequest describePublisherRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describePublisherRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describePublisherRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribePublisher"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribePublisherResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribePublisher").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribePublisherRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describePublisherRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Describes details of a resource scan. *

* * @param describeResourceScanRequest * @return A Java Future containing the result of the DescribeResourceScan operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ResourceScanNotFoundException The resource scan was not found.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeResourceScan * @see AWS API Documentation */ @Override public CompletableFuture describeResourceScan( DescribeResourceScanRequest describeResourceScanRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeResourceScanRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeResourceScanRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeResourceScan"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeResourceScanResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeResourceScan").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeResourceScanRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeResourceScanRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns information about a stack drift detection operation. A stack drift detection operation detects whether a * stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the * stack template and any values specified as template parameters. A stack is considered to have drifted if one or * more of its resources have drifted. For more information about stack and resource drift, see Detect unmanaged * configuration changes to stacks and resources with drift detection. *

*

* Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift returns * a StackDriftDetectionId you can use to monitor the progress of the operation using * DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use * DescribeStackResourceDrifts to return drift information about the stack and its resources. *

* * @param describeStackDriftDetectionStatusRequest * @return A Java Future containing the result of the DescribeStackDriftDetectionStatus operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackDriftDetectionStatus * @see AWS API Documentation */ @Override public CompletableFuture describeStackDriftDetectionStatus( DescribeStackDriftDetectionStatusRequest describeStackDriftDetectionStatusRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackDriftDetectionStatusRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackDriftDetectionStatusRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackDriftDetectionStatus"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackDriftDetectionStatusResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackDriftDetectionStatus").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackDriftDetectionStatusRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackDriftDetectionStatusRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns all stack related events for a specified stack in reverse chronological order. For more information about * a stack's event history, see Understand CloudFormation stack creation events in the CloudFormation User Guide. *

* *

* You can list events for stacks that have failed to create or have been deleted by specifying the unique stack * identifier (stack ID). *

*
* * @param describeStackEventsRequest * The input for DescribeStackEvents action. * @return A Java Future containing the result of the DescribeStackEvents operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackEvents * @see AWS API Documentation */ @Override public CompletableFuture describeStackEvents( DescribeStackEventsRequest describeStackEventsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackEventsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackEventsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackEvents"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackEventsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackEvents").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackEventsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackEventsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the stack instance that's associated with the specified StackSet, Amazon Web Services account, and Amazon * Web Services Region. *

*

* For a list of stack instances that are associated with a specific StackSet, use ListStackInstances. *

* * @param describeStackInstanceRequest * @return A Java Future containing the result of the DescribeStackInstance operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • StackInstanceNotFoundException The specified stack instance doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackInstance * @see AWS API Documentation */ @Override public CompletableFuture describeStackInstance( DescribeStackInstanceRequest describeStackInstanceRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackInstanceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackInstanceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackInstance"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackInstanceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackInstance").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackInstanceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackInstanceRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns a description of the specified resource in the specified stack. *

*

* For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been * deleted. *

* * @param describeStackResourceRequest * The input for DescribeStackResource action. * @return A Java Future containing the result of the DescribeStackResource operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackResource * @see AWS API Documentation */ @Override public CompletableFuture describeStackResource( DescribeStackResourceRequest describeStackResourceRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackResource"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackResource").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackResourceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackResourceRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns drift information for the resources that have been checked for drift in the specified stack. This * includes actual and expected configuration values for resources where CloudFormation detects configuration drift. *

*

* For a given stack, there will be one StackResourceDrift for each stack resource that has been * checked for drift. Resources that haven't yet been checked for drift aren't included. Resources that don't * currently support drift detection aren't checked, and so not included. For a list of resources that support drift * detection, see Resource type support for imports and drift detection. *

*

* Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect * drift on all supported resources for a given stack. *

* * @param describeStackResourceDriftsRequest * @return A Java Future containing the result of the DescribeStackResourceDrifts operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackResourceDrifts * @see AWS API Documentation */ @Override public CompletableFuture describeStackResourceDrifts( DescribeStackResourceDriftsRequest describeStackResourceDriftsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackResourceDriftsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackResourceDriftsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackResourceDrifts"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourceDriftsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackResourceDrifts").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackResourceDriftsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackResourceDriftsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns Amazon Web Services resource descriptions for running and deleted stacks. If StackName is * specified, all the associated resources that are part of the stack are returned. If * PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to * are returned. *

* *

* Only the first 100 resources will be returned. If your stack has more resources than this, you should use * ListStackResources instead. *

*
*

* For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the * stack has been deleted. *

*

* You must specify either StackName or PhysicalResourceId, but not both. In addition, you * can specify LogicalResourceId to filter the returned result. For more information about resources, * the LogicalResourceId and PhysicalResourceId, see the CloudFormation User Guide. *

* *

* A ValidationError is returned if you specify both StackName and * PhysicalResourceId in the same request. *

*
* * @param describeStackResourcesRequest * The input for DescribeStackResources action. * @return A Java Future containing the result of the DescribeStackResources operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackResources * @see AWS API Documentation */ @Override public CompletableFuture describeStackResources( DescribeStackResourcesRequest describeStackResourcesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackResourcesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackResourcesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackResources"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackResources").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackResourcesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackResourcesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the description of the specified StackSet. *

* * @param describeStackSetRequest * @return A Java Future containing the result of the DescribeStackSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackSet * @see AWS API Documentation */ @Override public CompletableFuture describeStackSet(DescribeStackSetRequest describeStackSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the description of the specified StackSet operation. *

* * @param describeStackSetOperationRequest * @return A Java Future containing the result of the DescribeStackSetOperation operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStackSetOperation * @see AWS API Documentation */ @Override public CompletableFuture describeStackSetOperation( DescribeStackSetOperationRequest describeStackSetOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStackSetOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStackSetOperationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStackSetOperation"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackSetOperationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackSetOperation").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStackSetOperationRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStackSetOperationRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the description for the specified stack; if no stack name was specified, then it returns the description * for all the stacks created. For more information about a stack's event history, see Understand CloudFormation stack creation events in the CloudFormation User Guide. *

* *

* If the stack doesn't exist, a ValidationError is returned. *

*
* * @param describeStacksRequest * The input for DescribeStacks action. * @return A Java Future containing the result of the DescribeStacks operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeStacks * @see AWS * API Documentation */ @Override public CompletableFuture describeStacks(DescribeStacksRequest describeStacksRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeStacksRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeStacksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeStacks"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStacksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStacks").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeStacksRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeStacksRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns detailed information about an extension that has been registered. *

*

* If you specify a VersionId, DescribeType returns information about that specific * extension version. Otherwise, it returns information about the default extension version. *

* * @param describeTypeRequest * @return A Java Future containing the result of the DescribeType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeType * @see AWS * API Documentation */ @Override public CompletableFuture describeType(DescribeTypeRequest describeTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeType").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns information about an extension's registration, including its current status and type and version * identifiers. *

*

* When you initiate a registration request using RegisterType, you can then use * DescribeTypeRegistration to monitor the progress of that registration request. *

*

* Once the registration request has completed, use DescribeType to return detailed information about an * extension. *

* * @param describeTypeRegistrationRequest * @return A Java Future containing the result of the DescribeTypeRegistration operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DescribeTypeRegistration * @see AWS API Documentation */ @Override public CompletableFuture describeTypeRegistration( DescribeTypeRegistrationRequest describeTypeRegistrationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeTypeRegistrationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeTypeRegistrationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeTypeRegistration"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeTypeRegistrationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeTypeRegistration").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeTypeRegistrationRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeTypeRegistrationRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Detects whether a stack's actual configuration differs, or has drifted, from its expected configuration, * as defined in the stack template and any values specified as template parameters. For each resource in the stack * that supports drift detection, CloudFormation compares the actual configuration of the resource with its expected * template configuration. Only resource properties explicitly defined in the stack template are checked for drift. * A stack is considered to have drifted if one or more of its resources differ from their expected template * configurations. For more information, see Detect unmanaged * configuration changes to stacks and resources with drift detection. *

*

* Use DetectStackDrift to detect drift on all supported resources for a given stack, or * DetectStackResourceDrift to detect drift on individual resources. *

*

* For a list of stack resources that currently support drift detection, see Resource type support for imports and drift detection. *

*

* DetectStackDrift can take up to several minutes, depending on the number of resources contained * within the stack. Use DescribeStackDriftDetectionStatus to monitor the progress of a detect stack drift * operation. Once the drift detection operation has completed, use DescribeStackResourceDrifts to return * drift information about the stack and its resources. *

*

* When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks belonging to that * stack. Perform DetectStackDrift directly on the nested stack itself. *

* * @param detectStackDriftRequest * @return A Java Future containing the result of the DetectStackDrift operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DetectStackDrift * @see AWS API Documentation */ @Override public CompletableFuture detectStackDrift(DetectStackDriftRequest detectStackDriftRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(detectStackDriftRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, detectStackDriftRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DetectStackDrift"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DetectStackDrift").withProtocolMetadata(protocolMetadata) .withMarshaller(new DetectStackDriftRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(detectStackDriftRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns information about whether a resource's actual configuration differs, or has drifted, from its * expected configuration, as defined in the stack template and any values specified as template parameters. This * information includes actual and expected property values for resources in which CloudFormation detects drift. * Only resource properties explicitly defined in the stack template are checked for drift. For more information * about stack and resource drift, see Detect unmanaged * configuration changes to stacks and resources with drift detection. *

*

* Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to * detect drift on all resources in a given stack that support drift detection. *

*

* Resources that don't currently support drift detection can't be checked. For a list of resources that support * drift detection, see Resource type support for imports and drift detection. *

* * @param detectStackResourceDriftRequest * @return A Java Future containing the result of the DetectStackResourceDrift operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DetectStackResourceDrift * @see AWS API Documentation */ @Override public CompletableFuture detectStackResourceDrift( DetectStackResourceDriftRequest detectStackResourceDriftRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(detectStackResourceDriftRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, detectStackResourceDriftRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DetectStackResourceDrift"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackResourceDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DetectStackResourceDrift").withProtocolMetadata(protocolMetadata) .withMarshaller(new DetectStackResourceDriftRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(detectStackResourceDriftRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs drift * detection on the stack associated with each stack instance in the stack set. For more information, see How CloudFormation * performs drift detection on a stack set. *

*

* DetectStackSetDrift returns the OperationId of the stack set drift detection operation. * Use this operation id with DescribeStackSetOperation to monitor the progress of the drift detection * operation. The drift detection operation may take some time, depending on the number of stack instances included * in the stack set, in addition to the number of resources included in each stack. *

*

* Once the operation has completed, use the following actions to return drift information: *

*
    *
  • *

    * Use DescribeStackSet to return detailed information about the stack set, including detailed information * about the last completed drift operation performed on the stack set. (Information about drift operations * that are in progress isn't included.) *

    *
  • *
  • *

    * Use ListStackInstances to return a list of stack instances belonging to the stack set, including the drift * status and last drift time checked of each instance. *

    *
  • *
  • *

    * Use DescribeStackInstance to return detailed information about a specific stack instance, including its * drift status and last drift time checked. *

    *
  • *
*

* For more information about performing a drift detection operation on a stack set, see Detecting unmanaged * changes in stack sets. *

*

* You can only run a single drift detection operation on a given stack set at one time. *

*

* To stop a drift detection stack set operation, use StopStackSetOperation. *

* * @param detectStackSetDriftRequest * @return A Java Future containing the result of the DetectStackSetDrift operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
  • *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.DetectStackSetDrift * @see AWS API Documentation */ @Override public CompletableFuture detectStackSetDrift( DetectStackSetDriftRequest detectStackSetDriftRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(detectStackSetDriftRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, detectStackSetDriftRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DetectStackSetDrift"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackSetDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DetectStackSetDrift").withProtocolMetadata(protocolMetadata) .withMarshaller(new DetectStackSetDriftRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(detectStackSetDriftRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the estimated monthly cost of a template. The return value is an Amazon Web Services Simple Monthly * Calculator URL with a query string that describes the resources required to run the template. *

* * @param estimateTemplateCostRequest * The input for an EstimateTemplateCost action. * @return A Java Future containing the result of the EstimateTemplateCost operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.EstimateTemplateCost * @see AWS API Documentation */ @Override public CompletableFuture estimateTemplateCost( EstimateTemplateCostRequest estimateTemplateCostRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(estimateTemplateCostRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, estimateTemplateCostRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EstimateTemplateCost"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(EstimateTemplateCostResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("EstimateTemplateCost").withProtocolMetadata(protocolMetadata) .withMarshaller(new EstimateTemplateCostRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(estimateTemplateCostRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Updates a stack using the input information that was provided when the specified change set was created. After * the call successfully completes, CloudFormation starts updating the stack. Use the DescribeStacks action * to view the status of the update. *

*

* When you execute a change set, CloudFormation deletes all other change sets associated with the stack because * they aren't valid for the updated stack. *

*

* If a stack policy is associated with the stack, CloudFormation enforces the policy during the update. You can't * specify a temporary stack policy that overrides the current policy. *

*

* To create a change set for the entire stack hierarchy, IncludeNestedStacks must have been set to * True. *

* * @param executeChangeSetRequest * The input for the ExecuteChangeSet action. * @return A Java Future containing the result of the ExecuteChangeSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidChangeSetStatusException The specified change set can't be used to update the stack. For * example, the change set status might be CREATE_IN_PROGRESS, or the stack status might be * UPDATE_IN_PROGRESS.
  • *
  • ChangeSetNotFoundException The specified change set name or ID doesn't exit. To view valid change * sets for a stack, use the ListChangeSets operation.
  • *
  • InsufficientCapabilitiesException The template contains resources with capabilities that weren't * specified in the Capabilities parameter.
  • *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ExecuteChangeSet * @see AWS API Documentation */ @Override public CompletableFuture executeChangeSet(ExecuteChangeSetRequest executeChangeSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(executeChangeSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, executeChangeSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ExecuteChangeSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ExecuteChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ExecuteChangeSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new ExecuteChangeSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(executeChangeSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Retrieves a generated template. If the template is in an InProgress or Pending status * then the template returned will be the template when the template was last in a Complete status. If * the template has not yet been in a Complete status then an empty template will be returned. *

* * @param getGeneratedTemplateRequest * @return A Java Future containing the result of the GetGeneratedTemplate operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • GeneratedTemplateNotFoundException The generated template was not found.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.GetGeneratedTemplate * @see AWS API Documentation */ @Override public CompletableFuture getGeneratedTemplate( GetGeneratedTemplateRequest getGeneratedTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getGeneratedTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getGeneratedTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetGeneratedTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetGeneratedTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("GetGeneratedTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new GetGeneratedTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(getGeneratedTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned. *

* * @param getStackPolicyRequest * The input for the GetStackPolicy action. * @return A Java Future containing the result of the GetStackPolicy operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.GetStackPolicy * @see AWS * API Documentation */ @Override public CompletableFuture getStackPolicy(GetStackPolicyRequest getStackPolicyRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getStackPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getStackPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetStackPolicy"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetStackPolicyResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("GetStackPolicy").withProtocolMetadata(protocolMetadata) .withMarshaller(new GetStackPolicyRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(getStackPolicyRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the template body for a specified stack. You can get the template for running or deleted stacks. *

*

* For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been * deleted. *

* *

* If the template doesn't exist, a ValidationError is returned. *

*
* * @param getTemplateRequest * The input for a GetTemplate action. * @return A Java Future containing the result of the GetTemplate operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ChangeSetNotFoundException The specified change set name or ID doesn't exit. To view valid change * sets for a stack, use the ListChangeSets operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.GetTemplate * @see AWS * API Documentation */ @Override public CompletableFuture getTemplate(GetTemplateRequest getTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("GetTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new GetTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(getTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns information about a new or existing template. The GetTemplateSummary action is useful for * viewing parameter information, such as default parameter values and parameter types, before you create or update * a stack or stack set. *

*

* You can use the GetTemplateSummary action when you submit a template, or you can get template * information for a stack set, or a running or deleted stack. *

*

* For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the * stack has been deleted. If the template doesn't exist, a ValidationError is returned. *

* * @param getTemplateSummaryRequest * The input for the GetTemplateSummary action. * @return A Java Future containing the result of the GetTemplateSummary operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.GetTemplateSummary * @see AWS API Documentation */ @Override public CompletableFuture getTemplateSummary(GetTemplateSummaryRequest getTemplateSummaryRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getTemplateSummaryRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getTemplateSummaryRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetTemplateSummary"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetTemplateSummaryResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("GetTemplateSummary").withProtocolMetadata(protocolMetadata) .withMarshaller(new GetTemplateSummaryRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(getTemplateSummaryRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Import existing stacks into a new stack sets. Use the stack import operation to import up to 10 stacks into a new * stack set in the same account as the source stack or in a different administrator account and Region, by * specifying the stack ID of the stack you intend to import. *

* * @param importStacksToStackSetRequest * @return A Java Future containing the result of the ImportStacksToStackSet operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • LimitExceededException The quota for the resource has already been reached.

    *

    * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

  • *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • InvalidOperationException The specified operation isn't valid.
  • *
  • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
  • *
  • OperationIdAlreadyExistsException The specified operation ID already exists.
  • *
  • StackNotFoundException The specified stack ARN doesn't exist or stack doesn't exist corresponding to * the ARN in input.
  • *
  • StaleRequestException Another operation has been performed on this stack set since the specified * operation was performed.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ImportStacksToStackSet * @see AWS API Documentation */ @Override public CompletableFuture importStacksToStackSet( ImportStacksToStackSetRequest importStacksToStackSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(importStacksToStackSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, importStacksToStackSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ImportStacksToStackSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ImportStacksToStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ImportStacksToStackSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new ImportStacksToStackSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(importStacksToStackSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the ID and status of each active change set for a stack. For example, CloudFormation lists change sets * that are in the CREATE_IN_PROGRESS or CREATE_PENDING state. *

* * @param listChangeSetsRequest * The input for the ListChangeSets action. * @return A Java Future containing the result of the ListChangeSets operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListChangeSets * @see AWS * API Documentation */ @Override public CompletableFuture listChangeSets(ListChangeSetsRequest listChangeSetsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listChangeSetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listChangeSetsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListChangeSets"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListChangeSetsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListChangeSets").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListChangeSetsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listChangeSetsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists all exported output values in the account and Region in which you call this action. Use this action to see * the exported output values that you can import into other stacks. To import values, use the * Fn::ImportValue function. *

*

* For more information, see Get exported * outputs from a deployed CloudFormation stack. *

* * @param listExportsRequest * @return A Java Future containing the result of the ListExports operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListExports * @see AWS * API Documentation */ @Override public CompletableFuture listExports(ListExportsRequest listExportsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listExportsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listExportsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListExports"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListExportsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListExports").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListExportsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listExportsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists your generated templates in this Region. *

* * @param listGeneratedTemplatesRequest * @return A Java Future containing the result of the ListGeneratedTemplates operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListGeneratedTemplates * @see AWS API Documentation */ @Override public CompletableFuture listGeneratedTemplates( ListGeneratedTemplatesRequest listGeneratedTemplatesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listGeneratedTemplatesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listGeneratedTemplatesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListGeneratedTemplates"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListGeneratedTemplatesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListGeneratedTemplates").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListGeneratedTemplatesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listGeneratedTemplatesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summaries of invoked Hooks when a change set or Cloud Control API operation target is provided. *

* * @param listHookResultsRequest * @return A Java Future containing the result of the ListHookResults operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • HookResultNotFoundException The specified target doesn't have any requested Hook invocations.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListHookResults * @see AWS API Documentation */ @Override public CompletableFuture listHookResults(ListHookResultsRequest listHookResultsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHookResultsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listHookResultsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHookResults"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListHookResultsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListHookResults").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListHookResultsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listHookResultsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first * use this action to see which stacks are using it. To see the exported output values in your account, see * ListExports. *

*

* For more information about importing an exported output value, see the Fn::ImportValue function. *

* * @param listImportsRequest * @return A Java Future containing the result of the ListImports operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListImports * @see AWS * API Documentation */ @Override public CompletableFuture listImports(ListImportsRequest listImportsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listImportsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listImportsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListImports"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListImportsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListImports").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListImportsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listImportsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists the related resources for a list of resources from a resource scan. The response indicates whether each * returned resource is already managed by CloudFormation. *

* * @param listResourceScanRelatedResourcesRequest * @return A Java Future containing the result of the ListResourceScanRelatedResources operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ResourceScanNotFoundException The resource scan was not found.
  • *
  • ResourceScanInProgressException A resource scan is currently in progress. Only one can be run at a * time for an account in a Region.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListResourceScanRelatedResources * @see AWS API Documentation */ @Override public CompletableFuture listResourceScanRelatedResources( ListResourceScanRelatedResourcesRequest listResourceScanRelatedResourcesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listResourceScanRelatedResourcesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listResourceScanRelatedResourcesRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListResourceScanRelatedResources"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListResourceScanRelatedResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListResourceScanRelatedResources").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListResourceScanRelatedResourcesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listResourceScanRelatedResourcesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists the resources from a resource scan. The results can be filtered by resource identifier, resource type * prefix, tag key, and tag value. Only resources that match all specified filters are returned. The response * indicates whether each returned resource is already managed by CloudFormation. *

* * @param listResourceScanResourcesRequest * @return A Java Future containing the result of the ListResourceScanResources operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ResourceScanNotFoundException The resource scan was not found.
  • *
  • ResourceScanInProgressException A resource scan is currently in progress. Only one can be run at a * time for an account in a Region.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListResourceScanResources * @see AWS API Documentation */ @Override public CompletableFuture listResourceScanResources( ListResourceScanResourcesRequest listResourceScanResourcesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listResourceScanResourcesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listResourceScanResourcesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListResourceScanResources"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListResourceScanResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListResourceScanResources").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListResourceScanResourcesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listResourceScanResourcesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* List the resource scans from newest to oldest. By default it will return up to 10 resource scans. *

* * @param listResourceScansRequest * @return A Java Future containing the result of the ListResourceScans operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListResourceScans * @see AWS API Documentation */ @Override public CompletableFuture listResourceScans(ListResourceScansRequest listResourceScansRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listResourceScansRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listResourceScansRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListResourceScans"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListResourceScansResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListResourceScans").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListResourceScansRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listResourceScansRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns drift information for resources in a stack instance. *

* *

* ListStackInstanceResourceDrifts returns drift information for the most recent drift detection * operation. If an operation is in progress, it may only return partial results. *

*
* * @param listStackInstanceResourceDriftsRequest * @return A Java Future containing the result of the ListStackInstanceResourceDrifts operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • StackInstanceNotFoundException The specified stack instance doesn't exist.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackInstanceResourceDrifts * @see AWS API Documentation */ @Override public CompletableFuture listStackInstanceResourceDrifts( ListStackInstanceResourceDriftsRequest listStackInstanceResourceDriftsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackInstanceResourceDriftsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackInstanceResourceDriftsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackInstanceResourceDrifts"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackInstanceResourceDriftsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackInstanceResourceDrifts").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackInstanceResourceDriftsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackInstanceResourceDriftsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about stack instances that are associated with the specified stack set. You can * filter for stack instances that are associated with a specific Amazon Web Services account name or Region, or * that have a specific status. *

* * @param listStackInstancesRequest * @return A Java Future containing the result of the ListStackInstances operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackInstances * @see AWS API Documentation */ @Override public CompletableFuture listStackInstances(ListStackInstancesRequest listStackInstancesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackInstancesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackInstancesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackInstances"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackInstances").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackInstancesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackInstancesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns descriptions of all resources of the specified stack. *

*

* For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been * deleted. *

* * @param listStackResourcesRequest * The input for the ListStackResource action. * @return A Java Future containing the result of the ListStackResources operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackResources * @see AWS API Documentation */ @Override public CompletableFuture listStackResources(ListStackResourcesRequest listStackResourcesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackResourcesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackResourcesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackResources"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackResources").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackResourcesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackResourcesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about deployment targets for a stack set. *

* * @param listStackSetAutoDeploymentTargetsRequest * @return A Java Future containing the result of the ListStackSetAutoDeploymentTargets operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackSetAutoDeploymentTargets * @see AWS API Documentation */ @Override public CompletableFuture listStackSetAutoDeploymentTargets( ListStackSetAutoDeploymentTargetsRequest listStackSetAutoDeploymentTargetsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackSetAutoDeploymentTargetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackSetAutoDeploymentTargetsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackSetAutoDeploymentTargets"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetAutoDeploymentTargetsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSetAutoDeploymentTargets").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackSetAutoDeploymentTargetsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackSetAutoDeploymentTargetsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about the results of a stack set operation. *

* * @param listStackSetOperationResultsRequest * @return A Java Future containing the result of the ListStackSetOperationResults operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackSetOperationResults * @see AWS API Documentation */ @Override public CompletableFuture listStackSetOperationResults( ListStackSetOperationResultsRequest listStackSetOperationResultsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackSetOperationResultsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackSetOperationResultsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackSetOperationResults"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetOperationResultsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSetOperationResults").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackSetOperationResultsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackSetOperationResultsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about operations performed on a stack set. *

* * @param listStackSetOperationsRequest * @return A Java Future containing the result of the ListStackSetOperations operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • StackSetNotFoundException The specified stack set doesn't exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackSetOperations * @see AWS API Documentation */ @Override public CompletableFuture listStackSetOperations( ListStackSetOperationsRequest listStackSetOperationsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackSetOperationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackSetOperationsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackSetOperations"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetOperationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSetOperations").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackSetOperationsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackSetOperationsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about stack sets that are associated with the user. *

*
    *
  • *

    * [Self-managed permissions] If you set the CallAs parameter to SELF while signed in to * your Amazon Web Services account, ListStackSets returns all self-managed stack sets in your Amazon * Web Services account. *

    *
  • *
  • *

    * [Service-managed permissions] If you set the CallAs parameter to SELF while signed in * to the organization's management account, ListStackSets returns all stack sets in the management * account. *

    *
  • *
  • *

    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN while * signed in to your member account, ListStackSets returns all stack sets with service-managed * permissions in the management account. *

    *
  • *
* * @param listStackSetsRequest * @return A Java Future containing the result of the ListStackSets operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStackSets * @see AWS * API Documentation */ @Override public CompletableFuture listStackSets(ListStackSetsRequest listStackSetsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStackSetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStackSetsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStackSets"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSets").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStackSetsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStackSetsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary * information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no * StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and * stacks that have been deleted). *

* * @param listStacksRequest * The input for ListStacks action. * @return A Java Future containing the result of the ListStacks operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListStacks * @see AWS API * Documentation */ @Override public CompletableFuture listStacks(ListStacksRequest listStacksRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listStacksRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listStacksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListStacks"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStacksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams().withOperationName("ListStacks") .withProtocolMetadata(protocolMetadata) .withMarshaller(new ListStacksRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listStacksRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns a list of registration tokens for the specified extension(s). *

* * @param listTypeRegistrationsRequest * @return A Java Future containing the result of the ListTypeRegistrations operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListTypeRegistrations * @see AWS API Documentation */ @Override public CompletableFuture listTypeRegistrations( ListTypeRegistrationsRequest listTypeRegistrationsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTypeRegistrationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTypeRegistrationsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTypeRegistrations"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypeRegistrationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTypeRegistrations").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListTypeRegistrationsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listTypeRegistrationsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about the versions of an extension. *

* * @param listTypeVersionsRequest * @return A Java Future containing the result of the ListTypeVersions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListTypeVersions * @see AWS API Documentation */ @Override public CompletableFuture listTypeVersions(ListTypeVersionsRequest listTypeVersionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTypeVersionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTypeVersionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTypeVersions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypeVersionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTypeVersions").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListTypeVersionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listTypeVersionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns summary information about extension that have been registered with CloudFormation. *

* * @param listTypesRequest * @return A Java Future containing the result of the ListTypes operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.ListTypes * @see AWS API * Documentation */ @Override public CompletableFuture listTypes(ListTypesRequest listTypesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTypesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTypesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTypes"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams().withOperationName("ListTypes") .withProtocolMetadata(protocolMetadata) .withMarshaller(new ListTypesRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) .withMetricCollector(apiCallMetricCollector).withInput(listTypesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Publishes the specified extension to the CloudFormation registry as a public extension in this Region. Public * extensions are available for use by all CloudFormation users. For more information about publishing extensions, * see Publishing * extensions to make them available for public use in the CloudFormation Command Line Interface (CLI) User * Guide. *

*

* To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see * RegisterPublisher. *

* * @param publishTypeRequest * @return A Java Future containing the result of the PublishType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.PublishType * @see AWS * API Documentation */ @Override public CompletableFuture publishType(PublishTypeRequest publishTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(publishTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, publishTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PublishType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(PublishTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("PublishType").withProtocolMetadata(protocolMetadata) .withMarshaller(new PublishTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(publishTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Reports progress of a resource handler to CloudFormation. *

*

* Reserved for use by the CloudFormation CLI. Don't use this API in your code. *

* * @param recordHandlerProgressRequest * @return A Java Future containing the result of the RecordHandlerProgress operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • InvalidStateTransitionException Error reserved for use by the CloudFormation CLI. CloudFormation doesn't return this error to users.
  • *
  • OperationStatusCheckFailedException Error reserved for use by the CloudFormation CLI. CloudFormation doesn't return this error to users.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.RecordHandlerProgress * @see AWS API Documentation */ @Override public CompletableFuture recordHandlerProgress( RecordHandlerProgressRequest recordHandlerProgressRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(recordHandlerProgressRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, recordHandlerProgressRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RecordHandlerProgress"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RecordHandlerProgressResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("RecordHandlerProgress").withProtocolMetadata(protocolMetadata) .withMarshaller(new RecordHandlerProgressRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(recordHandlerProgressRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are * available for use by all CloudFormation users. This publisher ID applies to your account in all Amazon Web * Services Regions. *

*

* For information about requirements for registering as a public extension publisher, see Prerequisite: Registering your account to publish CloudFormation extensions in the CloudFormation Command * Line Interface (CLI) User Guide. *

*

* * @param registerPublisherRequest * @return A Java Future containing the result of the RegisterPublisher operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *

    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • * SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can * be used for catch all scenarios.
  • SdkClientException If any client side error occurs such as an * IO related failure, failure to get credentials, etc.
  • CloudFormationException Base class for all * service exceptions. Unknown exceptions will be thrown as an instance of this type.
  • *
* @sample CloudFormationAsyncClient.RegisterPublisher * @see AWS API Documentation */ @Override public CompletableFuture registerPublisher(RegisterPublisherRequest registerPublisherRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(registerPublisherRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, registerPublisherRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterPublisher"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RegisterPublisherResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("RegisterPublisher").withProtocolMetadata(protocolMetadata) .withMarshaller(new RegisterPublisherRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(registerPublisherRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Registers an extension with the CloudFormation service. Registering an extension makes it available for use in * CloudFormation templates in your Amazon Web Services account, and includes: *

*
    *
  • *

    * Validating the extension schema. *

    *
  • *
  • *

    * Determining which handlers, if any, have been specified for the extension. *

    *
  • *
  • *

    * Making the extension available for use in your account. *

    *
  • *
*

* For more information about how to develop extensions and ready them for registration, see Creating resource * types using the CloudFormation CLI in the CloudFormation Command Line Interface (CLI) User Guide. *

*

* You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and * per Region. Use DeregisterType to deregister specific extension versions if necessary. *

*

* Once you have initiated a registration request using RegisterType, you can use * DescribeTypeRegistration to monitor the progress of the registration request. *

*

* Once you have registered a private extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Edit * configuration data for extensions in your account in the CloudFormation User Guide. *

* * @param registerTypeRequest * @return A Java Future containing the result of the RegisterType operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.RegisterType * @see AWS * API Documentation */ @Override public CompletableFuture registerType(RegisterTypeRequest registerTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(registerTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, registerTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RegisterTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("RegisterType").withProtocolMetadata(protocolMetadata) .withMarshaller(new RegisterTypeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(registerTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* When specifying RollbackStack, you preserve the state of previously provisioned resources when an * operation fails. You can check the status of the stack through the DescribeStacks operation. *

*

* Rolls back the specified stack to the last known stable state from CREATE_FAILED or * UPDATE_FAILED stack statuses. *

*

* This operation will delete a stack if it doesn't contain a last known stable state. A last known stable state * includes any status in a *_COMPLETE. This includes the following stack statuses. *

*
    *
  • *

    * CREATE_COMPLETE *

    *
  • *
  • *

    * UPDATE_COMPLETE *

    *
  • *
  • *

    * UPDATE_ROLLBACK_COMPLETE *

    *
  • *
  • *

    * IMPORT_COMPLETE *

    *
  • *
  • *

    * IMPORT_ROLLBACK_COMPLETE *

    *
  • *
* * @param rollbackStackRequest * @return A Java Future containing the result of the RollbackStack operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • TokenAlreadyExistsException A client request token already exists.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.RollbackStack * @see AWS * API Documentation */ @Override public CompletableFuture rollbackStack(RollbackStackRequest rollbackStackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rollbackStackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rollbackStackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RollbackStack"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RollbackStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("RollbackStack").withProtocolMetadata(protocolMetadata) .withMarshaller(new RollbackStackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(rollbackStackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Sets a stack policy for a specified stack. *

* * @param setStackPolicyRequest * The input for the SetStackPolicy action. * @return A Java Future containing the result of the SetStackPolicy operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.SetStackPolicy * @see AWS * API Documentation */ @Override public CompletableFuture setStackPolicy(SetStackPolicyRequest setStackPolicyRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(setStackPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, setStackPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SetStackPolicy"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetStackPolicyResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("SetStackPolicy").withProtocolMetadata(protocolMetadata) .withMarshaller(new SetStackPolicyRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(setStackPolicyRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Specifies the configuration data for a registered CloudFormation extension, in the given account and Region. *

*

* To view the current configuration data for an extension, refer to the ConfigurationSchema element of * DescribeType. * For more information, see Edit * configuration data for extensions in your account in the CloudFormation User Guide. *

* *

* It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such * as third-party credentials. For more details on dynamic references, see Specify values * stored in other services using dynamic references in the CloudFormation User Guide. *

*
* * @param setTypeConfigurationRequest * @return A Java Future containing the result of the SetTypeConfiguration operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.SetTypeConfiguration * @see AWS API Documentation */ @Override public CompletableFuture setTypeConfiguration( SetTypeConfigurationRequest setTypeConfigurationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(setTypeConfigurationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, setTypeConfigurationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SetTypeConfiguration"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetTypeConfigurationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("SetTypeConfiguration").withProtocolMetadata(protocolMetadata) .withMarshaller(new SetTypeConfigurationRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(setTypeConfigurationRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Specify the default version of an extension. The default version of an extension will be used in CloudFormation * operations. *

* * @param setTypeDefaultVersionRequest * @return A Java Future containing the result of the SetTypeDefaultVersion operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • CfnRegistryException An error occurred during a CloudFormation registry operation.
  • *
  • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.SetTypeDefaultVersion * @see AWS API Documentation */ @Override public CompletableFuture setTypeDefaultVersion( SetTypeDefaultVersionRequest setTypeDefaultVersionRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(setTypeDefaultVersionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, setTypeDefaultVersionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SetTypeDefaultVersion"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetTypeDefaultVersionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("SetTypeDefaultVersion").withProtocolMetadata(protocolMetadata) .withMarshaller(new SetTypeDefaultVersionRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(setTypeDefaultVersionRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Sends a signal to the specified resource with a success or failure status. You can use the * SignalResource operation in conjunction with a creation policy or update policy. CloudFormation * doesn't proceed with a stack creation or update until resources receive the required number of signals or the * timeout period is exceeded. The SignalResource operation is useful in cases where you want to send * signals from anywhere other than an Amazon EC2 instance. *

* * @param signalResourceRequest * The input for the SignalResource action. * @return A Java Future containing the result of the SignalResource operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample CloudFormationAsyncClient.SignalResource * @see AWS * API Documentation */ @Override public CompletableFuture signalResource(SignalResourceRequest signalResourceRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(signalResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, signalResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SignalResource"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SignalResourceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("SignalResource").withProtocolMetadata(protocolMetadata) .withMarshaller(new SignalResourceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(signalResourceRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Starts a scan of the resources in this account in this Region. You can the status of a scan using the * ListResourceScans API action. *

* * @param startResourceScanRequest * @return A Java Future containing the result of the StartResourceScan operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
    *
  • ResourceScanInProgressException A resource scan is currently in progress. Only one can be run at a * time for an account in a Region.
  • *
  • ResourceScanLimitExceededException The limit on resource scans has been exceeded. Reasons * include:

    *
      *
    • *

      * Exceeded the daily quota for resource scans. *

      *
    • *
    • *

      * A resource scan recently failed. You must wait 10 minutes before starting a new resource scan. *

      *
    • *
    • *

      * The last resource scan failed after exceeding 100,000 resources. When this happens, you must wait 24 * hours before starting a new resource scan. *

      *
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.StartResourceScan * @see AWS API Documentation */ @Override public CompletableFuture startResourceScan(StartResourceScanRequest startResourceScanRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(startResourceScanRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, startResourceScanRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StartResourceScan"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(StartResourceScanResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("StartResourceScan").withProtocolMetadata(protocolMetadata) .withMarshaller(new StartResourceScanRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(startResourceScanRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Stops an in-progress operation on a stack set and its associated stack instances. StackSets will cancel all the * unstarted stack instance deployments and wait for those are in-progress to complete. *

    * * @param stopStackSetOperationRequest * @return A Java Future containing the result of the StopStackSetOperation operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • StackSetNotFoundException The specified stack set doesn't exist.
    • *
    • OperationNotFoundException The specified ID refers to an operation that doesn't exist.
    • *
    • InvalidOperationException The specified operation isn't valid.
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.StopStackSetOperation * @see AWS API Documentation */ @Override public CompletableFuture stopStackSetOperation( StopStackSetOperationRequest stopStackSetOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(stopStackSetOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, stopStackSetOperationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StopStackSetOperation"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(StopStackSetOperationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("StopStackSetOperation").withProtocolMetadata(protocolMetadata) .withMarshaller(new StopStackSetOperationRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(stopStackSetOperationRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Tests a registered extension to make sure it meets all necessary requirements for being published in the * CloudFormation registry. *

    *
      *
    • *

      * For resource types, this includes passing all contracts tests defined for the type. *

      *
    • *
    • *

      * For modules, this includes determining if the module's model meets all necessary requirements. *

      *
    • *
    *

    * For more information, see Testing your public extension before publishing in the CloudFormation Command Line Interface (CLI) User * Guide. *

    *

    * If you don't specify a version, CloudFormation uses the default version of the extension in your account and * Region for testing. *

    *

    * To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more * information, see RegisterType. *

    *

    * Once you've initiated testing on an extension using TestType, you can pass the returned * TypeVersionArn into DescribeType * to monitor the current test status and test status description for the extension. *

    *

    * An extension must have a test status of PASSED before it can be published. For more information, see * Publishing * extensions to make them available for public use in the CloudFormation Command Line Interface (CLI) User * Guide. *

    * * @param testTypeRequest * @return A Java Future containing the result of the TestType operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • CfnRegistryException An error occurred during a CloudFormation registry operation.
    • *
    • TypeNotFoundException The specified extension doesn't exist in the CloudFormation registry.
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.TestType * @see AWS API * Documentation */ @Override public CompletableFuture testType(TestTypeRequest testTypeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testTypeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testTypeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestType"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(TestTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams().withOperationName("TestType") .withProtocolMetadata(protocolMetadata) .withMarshaller(new TestTypeRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) .withMetricCollector(apiCallMetricCollector).withInput(testTypeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Updates a generated template. This can be used to change the name, add and remove resources, refresh resources, * and change the DeletionPolicy and UpdateReplacePolicy settings. You can check the * status of the update to the generated template using the DescribeGeneratedTemplate API action. *

    * * @param updateGeneratedTemplateRequest * @return A Java Future containing the result of the UpdateGeneratedTemplate operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • AlreadyExistsException The resource with the name requested already exists.
    • *
    • GeneratedTemplateNotFoundException The generated template was not found.
    • *
    • LimitExceededException The quota for the resource has already been reached.

      *

      * For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide.

    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.UpdateGeneratedTemplate * @see AWS API Documentation */ @Override public CompletableFuture updateGeneratedTemplate( UpdateGeneratedTemplateRequest updateGeneratedTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateGeneratedTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateGeneratedTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateGeneratedTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateGeneratedTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateGeneratedTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateGeneratedTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateGeneratedTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You * can check the status of the stack through the DescribeStacks action. *

    *

    * To get a copy of the template for an existing stack, you can use the GetTemplate action. *

    *

    * For more information about updating a stack and monitoring the progress of the update, see Managing Amazon Web Services * resources as a single unit with CloudFormation stacks in the CloudFormation User Guide. *

    * * @param updateStackRequest * The input for an UpdateStack action. * @return A Java Future containing the result of the UpdateStack operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • InsufficientCapabilitiesException The template contains resources with capabilities that weren't * specified in the Capabilities parameter.
    • *
    • TokenAlreadyExistsException A client request token already exists.
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.UpdateStack * @see AWS * API Documentation */ @Override public CompletableFuture updateStack(UpdateStackRequest updateStackRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateStackRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateStackRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateStack"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateStack").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateStackRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateStackRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Updates the parameter values for stack instances for the specified accounts, within the specified Amazon Web * Services Regions. A stack instance refers to a stack in a specific account and Region. *

    *

    * You can only update stack instances in Amazon Web Services Regions and accounts where they already exist; to * create additional stack instances, use CreateStackInstances. *

    *

    * During stack set updates, any parameters overridden for a stack instance aren't updated, but retain their * overridden value. *

    *

    * You can only update the parameter values that are specified in the stack set; to add or delete a parameter * itself, use UpdateStackSet * to update the stack set template. If you add a parameter to a template, before you can override the * parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the * stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter * value using UpdateStackInstances. *

    * * @param updateStackInstancesRequest * @return A Java Future containing the result of the UpdateStackInstances operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • StackSetNotFoundException The specified stack set doesn't exist.
    • *
    • StackInstanceNotFoundException The specified stack instance doesn't exist.
    • *
    • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
    • *
    • OperationIdAlreadyExistsException The specified operation ID already exists.
    • *
    • StaleRequestException Another operation has been performed on this stack set since the specified * operation was performed.
    • *
    • InvalidOperationException The specified operation isn't valid.
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.UpdateStackInstances * @see AWS API Documentation */ @Override public CompletableFuture updateStackInstances( UpdateStackInstancesRequest updateStackInstancesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateStackInstancesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateStackInstancesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateStackInstances"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateStackInstances").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateStackInstancesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateStackInstancesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Updates the stack set, and associated stack instances in the specified accounts and Amazon Web Services Regions. *

    *

    * Even if the stack set operation created by updating the stack set fails (completely or partially, below or above * a specified failure tolerance), the stack set is updated with your changes. Subsequent * CreateStackInstances calls on the specified stack set use the updated stack set. *

    * * @param updateStackSetRequest * @return A Java Future containing the result of the UpdateStackSet operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • StackSetNotFoundException The specified stack set doesn't exist.
    • *
    • OperationInProgressException Another operation is currently in progress for this stack set. Only one * operation can be performed for a stack set at a given time.
    • *
    • OperationIdAlreadyExistsException The specified operation ID already exists.
    • *
    • StaleRequestException Another operation has been performed on this stack set since the specified * operation was performed.
    • *
    • InvalidOperationException The specified operation isn't valid.
    • *
    • StackInstanceNotFoundException The specified stack instance doesn't exist.
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.UpdateStackSet * @see AWS * API Documentation */ @Override public CompletableFuture updateStackSet(UpdateStackSetRequest updateStackSetRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateStackSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateStackSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateStackSet"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateStackSet").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateStackSetRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateStackSetRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Updates termination protection for the specified stack. If a user attempts to delete a stack with termination * protection enabled, the operation fails and the stack remains unchanged. For more information, see Protect a * CloudFormation stack from being deleted in the CloudFormation User Guide. *

    *

    * For nested * stacks, termination protection is set on the root stack and can't be changed directly on the nested stack. *

    * * @param updateTerminationProtectionRequest * @return A Java Future containing the result of the UpdateTerminationProtection operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.UpdateTerminationProtection * @see AWS API Documentation */ @Override public CompletableFuture updateTerminationProtection( UpdateTerminationProtectionRequest updateTerminationProtectionRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateTerminationProtectionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateTerminationProtectionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateTerminationProtection"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateTerminationProtectionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateTerminationProtection").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateTerminationProtectionRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateTerminationProtectionRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

    * Validates a specified template. CloudFormation first checks if the template is valid JSON. If it isn't, * CloudFormation checks if the template is valid YAML. If both these checks fail, CloudFormation returns a template * validation error. *

    * * @param validateTemplateRequest * The input for ValidateTemplate action. * @return A Java Future containing the result of the ValidateTemplate operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. The exception returned is wrapped with CompletionException, so you need to invoke * {@link Throwable#getCause} to retrieve the underlying exception. *
      *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • CloudFormationException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample CloudFormationAsyncClient.ValidateTemplate * @see AWS API Documentation */ @Override public CompletableFuture validateTemplate(ValidateTemplateRequest validateTemplateRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(validateTemplateRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, validateTemplateRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudFormation"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ValidateTemplate"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ValidateTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ValidateTemplate").withProtocolMetadata(protocolMetadata) .withMarshaller(new ValidateTemplateRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(validateTemplateRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } @Override public CloudFormationAsyncWaiter waiter() { return CloudFormationAsyncWaiter.builder().client(this).scheduledExecutorService(executorService).build(); } @Override public final CloudFormationServiceClientConfiguration serviceClientConfiguration() { return new CloudFormationServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build(); } @Override public final String serviceName() { return SERVICE_NAME; } private AwsQueryProtocolFactory init() { return AwsQueryProtocolFactory .builder() .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidOperationException") .exceptionBuilderSupplier(InvalidOperationException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TypeConfigurationNotFoundException") .exceptionBuilderSupplier(TypeConfigurationNotFoundException::builder).httpStatusCode(404) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("GeneratedTemplateNotFound") .exceptionBuilderSupplier(GeneratedTemplateNotFoundException::builder).httpStatusCode(404) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TokenAlreadyExistsException") .exceptionBuilderSupplier(TokenAlreadyExistsException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CFNRegistryException") .exceptionBuilderSupplier(CfnRegistryException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ConditionalCheckFailed") .exceptionBuilderSupplier(OperationStatusCheckFailedException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NameAlreadyExistsException") .exceptionBuilderSupplier(NameAlreadyExistsException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LimitExceededException") .exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("OperationNotFoundException") .exceptionBuilderSupplier(OperationNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("StackSetNotFoundException") .exceptionBuilderSupplier(StackSetNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ResourceScanNotFound") .exceptionBuilderSupplier(ResourceScanNotFoundException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InsufficientCapabilitiesException") .exceptionBuilderSupplier(InsufficientCapabilitiesException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ConcurrentResourcesLimitExceeded") .exceptionBuilderSupplier(ConcurrentResourcesLimitExceededException::builder).httpStatusCode(429) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AlreadyExistsException") .exceptionBuilderSupplier(AlreadyExistsException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("OperationInProgressException") .exceptionBuilderSupplier(OperationInProgressException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("StaleRequestException") .exceptionBuilderSupplier(StaleRequestException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HookResultNotFound") .exceptionBuilderSupplier(HookResultNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ResourceScanInProgress") .exceptionBuilderSupplier(ResourceScanInProgressException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidChangeSetStatus") .exceptionBuilderSupplier(InvalidChangeSetStatusException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("StackSetNotEmptyException") .exceptionBuilderSupplier(StackSetNotEmptyException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ChangeSetNotFound") .exceptionBuilderSupplier(ChangeSetNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("StackInstanceNotFoundException") .exceptionBuilderSupplier(StackInstanceNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ResourceScanLimitExceeded") .exceptionBuilderSupplier(ResourceScanLimitExceededException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("StackNotFoundException") .exceptionBuilderSupplier(StackNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidStateTransition") .exceptionBuilderSupplier(InvalidStateTransitionException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("OperationIdAlreadyExistsException") .exceptionBuilderSupplier(OperationIdAlreadyExistsException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TypeNotFoundException") .exceptionBuilderSupplier(TypeNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CreatedButModifiedException") .exceptionBuilderSupplier(CreatedButModifiedException::builder).httpStatusCode(409).build()) .clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(CloudFormationException::builder) .build(); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private void updateRetryStrategyClientConfiguration(SdkClientConfiguration.Builder configuration) { ClientOverrideConfiguration.Builder builder = configuration.asOverrideConfigurationBuilder(); RetryMode retryMode = builder.retryMode(); if (retryMode != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.forRetryMode(retryMode)); } else { Consumer> configurator = builder.retryStrategyConfigurator(); if (configurator != null) { RetryStrategy.Builder defaultBuilder = AwsRetryStrategy.defaultRetryStrategy().toBuilder(); configurator.accept(defaultBuilder); configuration.option(SdkClientOption.RETRY_STRATEGY, defaultBuilder.build()); } else { RetryStrategy retryStrategy = builder.retryStrategy(); if (retryStrategy != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, retryStrategy); } } } configuration.option(SdkClientOption.CONFIGURED_RETRY_MODE, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_STRATEGY, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_CONFIGURATOR, null); } private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, SdkClientConfiguration clientConfiguration) { List plugins = request.overrideConfiguration().map(c -> c.plugins()).orElse(Collections.emptyList()); SdkClientConfiguration.Builder configuration = clientConfiguration.toBuilder(); if (plugins.isEmpty()) { return configuration.build(); } CloudFormationServiceClientConfigurationBuilder serviceConfigBuilder = new CloudFormationServiceClientConfigurationBuilder( configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } updateRetryStrategyClientConfiguration(configuration); return configuration.build(); } @Override public void close() { clientHandler.close(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy