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

software.amazon.awssdk.services.cloudformation.DefaultCloudFormationClient 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.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.ApiName;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.util.VersionInfo;
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.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.CloudFormationRequest;
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.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.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.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.DescribePublisherRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribePublisherResponse;
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.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.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.ListImportsRequest;
import software.amazon.awssdk.services.cloudformation.model.ListImportsResponse;
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.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.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.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.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.paginators.DescribeAccountLimitsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.DescribeStackEventsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.DescribeStackResourceDriftsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.DescribeStacksIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListChangeSetsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListExportsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListImportsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackInstancesIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackResourcesIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationResultsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackSetsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStacksIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListTypeRegistrationsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListTypeVersionsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListTypesIterable;
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.CreateStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateStackRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.CreateStackSetRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeactivateTypeRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DeleteChangeSetRequestMarshaller;
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.DescribePublisherRequestMarshaller;
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.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.ListImportsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackInstancesRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.ListStackResourcesRequestMarshaller;
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.StopStackSetOperationRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.TestTypeRequestMarshaller;
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.CloudFormationWaiter;
import software.amazon.awssdk.utils.Logger;

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

    private final SyncClientHandler clientHandler;

    private final AwsQueryProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultCloudFormationClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration;
        this.protocolFactory = init();
    }

    @Override
    public final String serviceName() {
        return SERVICE_NAME;
    }

    /**
     * 

* Activates a public third-party extension, making it available for use in stack templates. For more information, * see Using public * extensions in the CloudFormation User Guide. *

*

* 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 Configuring extensions at the account level in the CloudFormation User Guide. *

* * @param activateTypeRequest * @return Result of the ActivateType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ActivateType * @see AWS * API Documentation */ @Override public ActivateTypeResponse activateType(ActivateTypeRequest activateTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ActivateTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ActivateType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(activateTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ActivateTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*

* For more information, see Configuring extensions at the account level in the CloudFormation User Guide. *

* * @param batchDescribeTypeConfigurationsRequest * @return Result of the BatchDescribeTypeConfigurations operation returned by the service. * @throws TypeConfigurationNotFoundException * The specified extension configuration can't be found. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.BatchDescribeTypeConfigurations * @see AWS API Documentation */ @Override public BatchDescribeTypeConfigurationsResponse batchDescribeTypeConfigurations( BatchDescribeTypeConfigurationsRequest batchDescribeTypeConfigurationsRequest) throws TypeConfigurationNotFoundException, CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(BatchDescribeTypeConfigurationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("BatchDescribeTypeConfigurations").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(batchDescribeTypeConfigurationsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new BatchDescribeTypeConfigurationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the CancelUpdateStack operation returned by the service. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.CancelUpdateStack * @see AWS API Documentation */ @Override public CancelUpdateStackResponse cancelUpdateStack(CancelUpdateStackRequest cancelUpdateStackRequest) throws TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CancelUpdateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CancelUpdateStack").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(cancelUpdateStackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CancelUpdateStackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the ContinueUpdateRollback operation returned by the service. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ContinueUpdateRollback * @see AWS API Documentation */ @Override public ContinueUpdateRollbackResponse continueUpdateRollback(ContinueUpdateRollbackRequest continueUpdateRollbackRequest) throws TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ContinueUpdateRollbackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ContinueUpdateRollback").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(continueUpdateRollbackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ContinueUpdateRollbackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the CreateChangeSet operation returned by the service. * @throws AlreadyExistsException * The resource with the name requested already exists. * @throws InsufficientCapabilitiesException * The template contains resources with capabilities that weren't specified in the Capabilities parameter. * @throws 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.CreateChangeSet * @see AWS API Documentation */ @Override public CreateChangeSetResponse createChangeSet(CreateChangeSetRequest createChangeSetRequest) throws AlreadyExistsException, InsufficientCapabilitiesException, LimitExceededException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateChangeSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createChangeSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateChangeSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 DescribeStacksoperation. *

* * @param createStackRequest * The input for CreateStack action. * @return Result of the CreateStack operation returned by the service. * @throws 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. * @throws AlreadyExistsException * The resource with the name requested already exists. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws InsufficientCapabilitiesException * The template contains resources with capabilities that weren't specified in the Capabilities parameter. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.CreateStack * @see AWS * API Documentation */ @Override public CreateStackResponse createStack(CreateStackRequest createStackRequest) throws LimitExceededException, AlreadyExistsException, TokenAlreadyExistsException, InsufficientCapabilitiesException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateStack").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createStackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateStackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the CreateStackInstances operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws 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. * @throws OperationIdAlreadyExistsException * The specified operation ID already exists. * @throws StaleRequestException * Another operation has been performed on this stack set since the specified operation was performed. * @throws InvalidOperationException * The specified operation isn't valid. * @throws 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.CreateStackInstances * @see AWS API Documentation */ @Override public CreateStackInstancesResponse createStackInstances(CreateStackInstancesRequest createStackInstancesRequest) throws StackSetNotFoundException, OperationInProgressException, OperationIdAlreadyExistsException, StaleRequestException, InvalidOperationException, LimitExceededException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateStackInstances").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createStackInstancesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateStackInstancesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Creates a stack set. *

* * @param createStackSetRequest * @return Result of the CreateStackSet operation returned by the service. * @throws NameAlreadyExistsException * The specified name is already in use. * @throws CreatedButModifiedException * The specified resource exists, but has been changed. * @throws 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.CreateStackSet * @see AWS * API Documentation */ @Override public CreateStackSetResponse createStackSet(CreateStackSetRequest createStackSetRequest) throws NameAlreadyExistsException, CreatedButModifiedException, LimitExceededException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateStackSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createStackSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateStackSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DeactivateType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeactivateType * @see AWS * API Documentation */ @Override public DeactivateTypeResponse deactivateType(DeactivateTypeRequest deactivateTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeactivateTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeactivateType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deactivateTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeactivateTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DeleteChangeSet operation returned by the service. * @throws 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeleteChangeSet * @see AWS API Documentation */ @Override public DeleteChangeSetResponse deleteChangeSet(DeleteChangeSetRequest deleteChangeSetRequest) throws InvalidChangeSetStatusException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteChangeSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteChangeSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteChangeSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

* * @param deleteStackRequest * The input for DeleteStack action. * @return Result of the DeleteStack operation returned by the service. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeleteStack * @see AWS * API Documentation */ @Override public DeleteStackResponse deleteStack(DeleteStackRequest deleteStackRequest) throws TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteStack").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteStackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteStackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

* * @param deleteStackInstancesRequest * @return Result of the DeleteStackInstances operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws 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. * @throws OperationIdAlreadyExistsException * The specified operation ID already exists. * @throws StaleRequestException * Another operation has been performed on this stack set since the specified operation was performed. * @throws InvalidOperationException * The specified operation isn't valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeleteStackInstances * @see AWS API Documentation */ @Override public DeleteStackInstancesResponse deleteStackInstances(DeleteStackInstancesRequest deleteStackInstancesRequest) throws StackSetNotFoundException, OperationInProgressException, OperationIdAlreadyExistsException, StaleRequestException, InvalidOperationException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteStackInstances").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteStackInstancesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteStackInstancesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DeleteStackSet operation returned by the service. * @throws 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. * @throws 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. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeleteStackSet * @see AWS * API Documentation */ @Override public DeleteStackSetResponse deleteStackSet(DeleteStackSetRequest deleteStackSetRequest) throws StackSetNotEmptyException, OperationInProgressException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteStackSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteStackSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteStackSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DeregisterType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DeregisterType * @see AWS * API Documentation */ @Override public DeregisterTypeResponse deregisterType(DeregisterTypeRequest deregisterTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeregisterTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeregisterType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deregisterTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeregisterTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 CloudFormation * Quotas in the CloudFormation User Guide. *

* * @param describeAccountLimitsRequest * The input for the DescribeAccountLimits action. * @return Result of the DescribeAccountLimits operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeAccountLimits * @see AWS API Documentation */ @Override public DescribeAccountLimitsResponse describeAccountLimits(DescribeAccountLimitsRequest describeAccountLimitsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeAccountLimitsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeAccountLimits").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeAccountLimitsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeAccountLimitsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 CloudFormation * Quotas in the CloudFormation User Guide. *

*
*

* This is a variant of * {@link #describeAccountLimits(software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeAccountLimitsIterable responses = client.describeAccountLimitsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.DescribeAccountLimitsIterable responses = client
     *             .describeAccountLimitsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeAccountLimitsIterable responses = client.describeAccountLimitsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #describeAccountLimits(software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsRequest)} * operation. *

* * @param describeAccountLimitsRequest * The input for the DescribeAccountLimits action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeAccountLimits * @see AWS API Documentation */ @Override public DescribeAccountLimitsIterable describeAccountLimitsPaginator(DescribeAccountLimitsRequest describeAccountLimitsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new DescribeAccountLimitsIterable(this, applyPaginatorUserAgent(describeAccountLimitsRequest)); } /** *

* 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 Updating Stacks Using Change Sets in the CloudFormation User Guide. *

* * @param describeChangeSetRequest * The input for the DescribeChangeSet action. * @return Result of the DescribeChangeSet operation returned by the service. * @throws ChangeSetNotFoundException * The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the * ListChangeSets operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeChangeSet * @see AWS API Documentation */ @Override public DescribeChangeSetResponse describeChangeSet(DescribeChangeSetRequest describeChangeSetRequest) throws ChangeSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeChangeSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeChangeSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeChangeSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DescribeChangeSetHooks operation returned by the service. * @throws ChangeSetNotFoundException * The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the * ListChangeSets operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeChangeSetHooks * @see AWS API Documentation */ @Override public DescribeChangeSetHooksResponse describeChangeSetHooks(DescribeChangeSetHooksRequest describeChangeSetHooksRequest) throws ChangeSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeChangeSetHooksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeChangeSetHooks").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeChangeSetHooksRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeChangeSetHooksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DescribePublisher operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribePublisher * @see AWS API Documentation */ @Override public DescribePublisherResponse describePublisher(DescribePublisherRequest describePublisherRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribePublisherResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribePublisher").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describePublisherRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribePublisherRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 it's 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 Detecting * Unregulated Configuration Changes to Stacks and Resources. *

*

* 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 Result of the DescribeStackDriftDetectionStatus operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackDriftDetectionStatus * @see AWS API Documentation */ @Override public DescribeStackDriftDetectionStatusResponse describeStackDriftDetectionStatus( DescribeStackDriftDetectionStatusRequest describeStackDriftDetectionStatusRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackDriftDetectionStatusResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackDriftDetectionStatus").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackDriftDetectionStatusRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackDriftDetectionStatusRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns all stack related events for a specified stack in reverse chronological order. For more information about * a stack's event history, go to Stacks 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 Result of the DescribeStackEvents operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackEvents * @see AWS API Documentation */ @Override public DescribeStackEventsResponse describeStackEvents(DescribeStackEventsRequest describeStackEventsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackEventsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeStackEvents").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackEventsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackEventsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns all stack related events for a specified stack in reverse chronological order. For more information about * a stack's event history, go to Stacks 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). *

*

*

* This is a variant of * {@link #describeStackEvents(software.amazon.awssdk.services.cloudformation.model.DescribeStackEventsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStackEventsIterable responses = client.describeStackEventsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.DescribeStackEventsIterable responses = client
     *             .describeStackEventsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.DescribeStackEventsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStackEventsIterable responses = client.describeStackEventsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #describeStackEvents(software.amazon.awssdk.services.cloudformation.model.DescribeStackEventsRequest)} * operation. *

* * @param describeStackEventsRequest * The input for DescribeStackEvents action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackEvents * @see AWS API Documentation */ @Override public DescribeStackEventsIterable describeStackEventsPaginator(DescribeStackEventsRequest describeStackEventsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new DescribeStackEventsIterable(this, applyPaginatorUserAgent(describeStackEventsRequest)); } /** *

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

*

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

* * @param describeStackInstanceRequest * @return Result of the DescribeStackInstance operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws StackInstanceNotFoundException * The specified stack instance doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackInstance * @see AWS API Documentation */ @Override public DescribeStackInstanceResponse describeStackInstance(DescribeStackInstanceRequest describeStackInstanceRequest) throws StackSetNotFoundException, StackInstanceNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackInstanceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeStackInstance").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackInstanceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackInstanceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DescribeStackResource operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackResource * @see AWS API Documentation */ @Override public DescribeStackResourceResponse describeStackResource(DescribeStackResourceRequest describeStackResourceRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeStackResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Resources that Support 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 Result of the DescribeStackResourceDrifts operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackResourceDrifts * @see AWS API Documentation */ @Override public DescribeStackResourceDriftsResponse describeStackResourceDrifts( DescribeStackResourceDriftsRequest describeStackResourceDriftsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourceDriftsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackResourceDrifts").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourceDriftsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackResourceDriftsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Resources that Support Drift Detection. *

*

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

*
*

* This is a variant of * {@link #describeStackResourceDrifts(software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceDriftsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStackResourceDriftsIterable responses = client.describeStackResourceDriftsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.DescribeStackResourceDriftsIterable responses = client
     *             .describeStackResourceDriftsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceDriftsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStackResourceDriftsIterable responses = client.describeStackResourceDriftsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #describeStackResourceDrifts(software.amazon.awssdk.services.cloudformation.model.DescribeStackResourceDriftsRequest)} * operation. *

* * @param describeStackResourceDriftsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackResourceDrifts * @see AWS API Documentation */ @Override public DescribeStackResourceDriftsIterable describeStackResourceDriftsPaginator( DescribeStackResourceDriftsRequest describeStackResourceDriftsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new DescribeStackResourceDriftsIterable(this, applyPaginatorUserAgent(describeStackResourceDriftsRequest)); } /** *

* 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, go to 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 Result of the DescribeStackResources operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackResources * @see AWS API Documentation */ @Override public DescribeStackResourcesResponse describeStackResources(DescribeStackResourcesRequest describeStackResourcesRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackResources").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourcesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackResourcesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the description of the specified stack set. *

* * @param describeStackSetRequest * @return Result of the DescribeStackSet operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackSet * @see AWS API Documentation */ @Override public DescribeStackSetResponse describeStackSet(DescribeStackSetRequest describeStackSetRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeStackSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the description of the specified stack set operation. *

* * @param describeStackSetOperationRequest * @return Result of the DescribeStackSetOperation operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws OperationNotFoundException * The specified ID refers to an operation that doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStackSetOperation * @see AWS API Documentation */ @Override public DescribeStackSetOperationResponse describeStackSetOperation( DescribeStackSetOperationRequest describeStackSetOperationRequest) throws StackSetNotFoundException, OperationNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStackSetOperationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeStackSetOperation").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStackSetOperationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStackSetOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the description for the specified stack; if no stack name was specified, then it returns the description * for all the stacks created. *

* *

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

*
* * @param describeStacksRequest * The input for DescribeStacks action. * @return Result of the DescribeStacks operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStacks * @see AWS * API Documentation */ @Override public DescribeStacksResponse describeStacks(DescribeStacksRequest describeStacksRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeStacksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeStacks").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeStacksRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeStacksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the description for the specified stack; if no stack name was specified, then it returns the description * for all the stacks created. *

* *

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

*

*

* This is a variant of * {@link #describeStacks(software.amazon.awssdk.services.cloudformation.model.DescribeStacksRequest)} operation. * The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally * handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStacksIterable responses = client.describeStacksPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.DescribeStacksIterable responses = client
     *             .describeStacksPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.DescribeStacksResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.DescribeStacksIterable responses = client.describeStacksPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #describeStacks(software.amazon.awssdk.services.cloudformation.model.DescribeStacksRequest)} * operation. *

* * @param describeStacksRequest * The input for DescribeStacks action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeStacks * @see AWS * API Documentation */ @Override public DescribeStacksIterable describeStacksPaginator(DescribeStacksRequest describeStacksRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new DescribeStacksIterable(this, applyPaginatorUserAgent(describeStacksRequest)); } /** *

* 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 Result of the DescribeType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeType * @see AWS * API Documentation */ @Override public DescribeTypeResponse describeType(DescribeTypeRequest describeTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DescribeTypeRegistration operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DescribeTypeRegistration * @see AWS API Documentation */ @Override public DescribeTypeRegistrationResponse describeTypeRegistration( DescribeTypeRegistrationRequest describeTypeRegistrationRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeTypeRegistrationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeTypeRegistration").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeTypeRegistrationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeTypeRegistrationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Detects whether a stack's actual configuration differs, or has drifted, from it's 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 Detecting * Unregulated Configuration Changes to Stacks and Resources. *

*

* 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 Resources that Support 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 Result of the DetectStackDrift operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DetectStackDrift * @see AWS API Documentation */ @Override public DetectStackDriftResponse detectStackDrift(DetectStackDriftRequest detectStackDriftRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DetectStackDrift").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(detectStackDriftRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DetectStackDriftRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns information about whether a resource's actual configuration differs, or has drifted, from it's * 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 Detecting * Unregulated Configuration Changes to Stacks and Resources. *

*

* 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 Resources that Support Drift Detection. *

* * @param detectStackResourceDriftRequest * @return Result of the DetectStackResourceDrift operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DetectStackResourceDrift * @see AWS API Documentation */ @Override public DetectStackResourceDriftResponse detectStackResourceDrift( DetectStackResourceDriftRequest detectStackResourceDriftRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackResourceDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DetectStackResourceDrift").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(detectStackResourceDriftRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DetectStackResourceDriftRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the DetectStackSetDrift operation returned by the service. * @throws InvalidOperationException * The specified operation isn't valid. * @throws 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. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.DetectStackSetDrift * @see AWS API Documentation */ @Override public DetectStackSetDriftResponse detectStackSetDrift(DetectStackSetDriftRequest detectStackSetDriftRequest) throws InvalidOperationException, OperationInProgressException, StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DetectStackSetDriftResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DetectStackSetDrift").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(detectStackSetDriftRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DetectStackSetDriftRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the EstimateTemplateCost operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.EstimateTemplateCost * @see AWS API Documentation */ @Override public EstimateTemplateCostResponse estimateTemplateCost(EstimateTemplateCostRequest estimateTemplateCostRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(EstimateTemplateCostResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("EstimateTemplateCost").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(estimateTemplateCostRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new EstimateTemplateCostRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the ExecuteChangeSet operation returned by the service. * @throws 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. * @throws ChangeSetNotFoundException * The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the * ListChangeSets operation. * @throws InsufficientCapabilitiesException * The template contains resources with capabilities that weren't specified in the Capabilities parameter. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ExecuteChangeSet * @see AWS API Documentation */ @Override public ExecuteChangeSetResponse executeChangeSet(ExecuteChangeSetRequest executeChangeSetRequest) throws InvalidChangeSetStatusException, ChangeSetNotFoundException, InsufficientCapabilitiesException, TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ExecuteChangeSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ExecuteChangeSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(executeChangeSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ExecuteChangeSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the GetStackPolicy operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.GetStackPolicy * @see AWS * API Documentation */ @Override public GetStackPolicyResponse getStackPolicy(GetStackPolicyRequest getStackPolicyRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetStackPolicyResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetStackPolicy").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(getStackPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetStackPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the GetTemplate operation returned by the service. * @throws ChangeSetNotFoundException * The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the * ListChangeSets operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.GetTemplate * @see AWS * API Documentation */ @Override public GetTemplateResponse getTemplate(GetTemplateRequest getTemplateRequest) throws ChangeSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetTemplate").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(getTemplateRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetTemplateRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the GetTemplateSummary operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.GetTemplateSummary * @see AWS API Documentation */ @Override public GetTemplateSummaryResponse getTemplateSummary(GetTemplateSummaryRequest getTemplateSummaryRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(GetTemplateSummaryResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetTemplateSummary").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(getTemplateSummaryRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetTemplateSummaryRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

* *

* ImportStacksToStackSet is only supported by self-managed permissions. *

*
* * @param importStacksToStackSetRequest * @return Result of the ImportStacksToStackSet operation returned by the service. * @throws 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. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws InvalidOperationException * The specified operation isn't valid. * @throws 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. * @throws OperationIdAlreadyExistsException * The specified operation ID already exists. * @throws StackNotFoundException * The specified stack ARN doesn't exist or stack doesn't exist corresponding to the ARN in input. * @throws StaleRequestException * Another operation has been performed on this stack set since the specified operation was performed. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ImportStacksToStackSet * @see AWS API Documentation */ @Override public ImportStacksToStackSetResponse importStacksToStackSet(ImportStacksToStackSetRequest importStacksToStackSetRequest) throws LimitExceededException, StackSetNotFoundException, InvalidOperationException, OperationInProgressException, OperationIdAlreadyExistsException, StackNotFoundException, StaleRequestException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ImportStacksToStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ImportStacksToStackSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(importStacksToStackSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ImportStacksToStackSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the ListChangeSets operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListChangeSets * @see AWS * API Documentation */ @Override public ListChangeSetsResponse listChangeSets(ListChangeSetsRequest listChangeSetsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListChangeSetsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListChangeSets").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listChangeSetsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListChangeSetsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

*
*

* This is a variant of * {@link #listChangeSets(software.amazon.awssdk.services.cloudformation.model.ListChangeSetsRequest)} operation. * The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally * handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListChangeSetsIterable responses = client.listChangeSetsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListChangeSetsIterable responses = client
     *             .listChangeSetsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListChangeSetsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListChangeSetsIterable responses = client.listChangeSetsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listChangeSets(software.amazon.awssdk.services.cloudformation.model.ListChangeSetsRequest)} * operation. *

* * @param listChangeSetsRequest * The input for the ListChangeSets action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListChangeSets * @see AWS * API Documentation */ @Override public ListChangeSetsIterable listChangeSetsPaginator(ListChangeSetsRequest listChangeSetsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListChangeSetsIterable(this, applyPaginatorUserAgent(listChangeSetsRequest)); } /** *

* 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 * CloudFormation export stack output values. *

* * @param listExportsRequest * @return Result of the ListExports operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListExports * @see AWS * API Documentation */ @Override public ListExportsResponse listExports(ListExportsRequest listExportsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListExportsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListExports").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listExportsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListExportsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 * CloudFormation export stack output values. *

*
*

* This is a variant of * {@link #listExports(software.amazon.awssdk.services.cloudformation.model.ListExportsRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListExportsIterable responses = client.listExportsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListExportsIterable responses = client
     *             .listExportsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListExportsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListExportsIterable responses = client.listExportsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listExports(software.amazon.awssdk.services.cloudformation.model.ListExportsRequest)} operation. *

* * @param listExportsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListExports * @see AWS * API Documentation */ @Override public ListExportsIterable listExportsPaginator(ListExportsRequest listExportsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListExportsIterable(this, applyPaginatorUserAgent(listExportsRequest)); } /** *

* 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 Result of the ListImports operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListImports * @see AWS * API Documentation */ @Override public ListImportsResponse listImports(ListImportsRequest listImportsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListImportsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListImports").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listImportsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListImportsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

*
*

* This is a variant of * {@link #listImports(software.amazon.awssdk.services.cloudformation.model.ListImportsRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListImportsIterable responses = client.listImportsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListImportsIterable responses = client
     *             .listImportsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListImportsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListImportsIterable responses = client.listImportsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listImports(software.amazon.awssdk.services.cloudformation.model.ListImportsRequest)} operation. *

* * @param listImportsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListImports * @see AWS * API Documentation */ @Override public ListImportsIterable listImportsPaginator(ListImportsRequest listImportsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListImportsIterable(this, applyPaginatorUserAgent(listImportsRequest)); } /** *

* 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 Result of the ListStackInstances operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackInstances * @see AWS API Documentation */ @Override public ListStackInstancesResponse listStackInstances(ListStackInstancesRequest listStackInstancesRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListStackInstances").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listStackInstancesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStackInstancesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

*
*

* This is a variant of * {@link #listStackInstances(software.amazon.awssdk.services.cloudformation.model.ListStackInstancesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackInstancesIterable responses = client.listStackInstancesPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStackInstancesIterable responses = client
     *             .listStackInstancesPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStackInstancesResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackInstancesIterable responses = client.listStackInstancesPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStackInstances(software.amazon.awssdk.services.cloudformation.model.ListStackInstancesRequest)} * operation. *

* * @param listStackInstancesRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackInstances * @see AWS API Documentation */ @Override public ListStackInstancesIterable listStackInstancesPaginator(ListStackInstancesRequest listStackInstancesRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { return new ListStackInstancesIterable(this, applyPaginatorUserAgent(listStackInstancesRequest)); } /** *

* 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 Result of the ListStackResources operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackResources * @see AWS API Documentation */ @Override public ListStackResourcesResponse listStackResources(ListStackResourcesRequest listStackResourcesRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackResourcesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListStackResources").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listStackResourcesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStackResourcesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

*
*

* This is a variant of * {@link #listStackResources(software.amazon.awssdk.services.cloudformation.model.ListStackResourcesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackResourcesIterable responses = client.listStackResourcesPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStackResourcesIterable responses = client
     *             .listStackResourcesPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStackResourcesResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackResourcesIterable responses = client.listStackResourcesPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStackResources(software.amazon.awssdk.services.cloudformation.model.ListStackResourcesRequest)} * operation. *

* * @param listStackResourcesRequest * The input for the ListStackResource action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackResources * @see AWS API Documentation */ @Override public ListStackResourcesIterable listStackResourcesPaginator(ListStackResourcesRequest listStackResourcesRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListStackResourcesIterable(this, applyPaginatorUserAgent(listStackResourcesRequest)); } /** *

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

* * @param listStackSetOperationResultsRequest * @return Result of the ListStackSetOperationResults operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws OperationNotFoundException * The specified ID refers to an operation that doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSetOperationResults * @see AWS API Documentation */ @Override public ListStackSetOperationResultsResponse listStackSetOperationResults( ListStackSetOperationResultsRequest listStackSetOperationResultsRequest) throws StackSetNotFoundException, OperationNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetOperationResultsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSetOperationResults").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listStackSetOperationResultsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStackSetOperationResultsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*
*

* This is a variant of * {@link #listStackSetOperationResults(software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationResultsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationResultsIterable responses = client.listStackSetOperationResultsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationResultsIterable responses = client
     *             .listStackSetOperationResultsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationResultsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationResultsIterable responses = client.listStackSetOperationResultsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStackSetOperationResults(software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationResultsRequest)} * operation. *

* * @param listStackSetOperationResultsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws OperationNotFoundException * The specified ID refers to an operation that doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSetOperationResults * @see AWS API Documentation */ @Override public ListStackSetOperationResultsIterable listStackSetOperationResultsPaginator( ListStackSetOperationResultsRequest listStackSetOperationResultsRequest) throws StackSetNotFoundException, OperationNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { return new ListStackSetOperationResultsIterable(this, applyPaginatorUserAgent(listStackSetOperationResultsRequest)); } /** *

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

* * @param listStackSetOperationsRequest * @return Result of the ListStackSetOperations operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSetOperations * @see AWS API Documentation */ @Override public ListStackSetOperationsResponse listStackSetOperations(ListStackSetOperationsRequest listStackSetOperationsRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetOperationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListStackSetOperations").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listStackSetOperationsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStackSetOperationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*
*

* This is a variant of * {@link #listStackSetOperations(software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationsIterable responses = client.listStackSetOperationsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationsIterable responses = client
     *             .listStackSetOperationsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetOperationsIterable responses = client.listStackSetOperationsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStackSetOperations(software.amazon.awssdk.services.cloudformation.model.ListStackSetOperationsRequest)} * operation. *

* * @param listStackSetOperationsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSetOperations * @see AWS API Documentation */ @Override public ListStackSetOperationsIterable listStackSetOperationsPaginator( ListStackSetOperationsRequest listStackSetOperationsRequest) throws StackSetNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { return new ListStackSetOperationsIterable(this, applyPaginatorUserAgent(listStackSetOperationsRequest)); } /** *

* 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 Result of the ListStackSets operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSets * @see AWS * API Documentation */ @Override public ListStackSetsResponse listStackSets(ListStackSetsRequest listStackSetsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStackSetsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListStackSets").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listStackSetsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStackSetsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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. *

    *
  • *
*
*

* This is a variant of * {@link #listStackSets(software.amazon.awssdk.services.cloudformation.model.ListStackSetsRequest)} operation. The * return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle * making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetsIterable responses = client.listStackSetsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStackSetsIterable responses = client
     *             .listStackSetsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStackSetsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStackSetsIterable responses = client.listStackSetsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStackSets(software.amazon.awssdk.services.cloudformation.model.ListStackSetsRequest)} operation. *

* * @param listStackSetsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStackSets * @see AWS * API Documentation */ @Override public ListStackSetsIterable listStackSetsPaginator(ListStackSetsRequest listStackSetsRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListStackSetsIterable(this, applyPaginatorUserAgent(listStackSetsRequest)); } /** *

* 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 Result of the ListStacks operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStacks * @see AWS API * Documentation */ @Override public ListStacksResponse listStacks(ListStacksRequest listStacksRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListStacksResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams().withOperationName("ListStacks") .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withInput(listStacksRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListStacksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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). *

*
*

* This is a variant of {@link #listStacks(software.amazon.awssdk.services.cloudformation.model.ListStacksRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStacksIterable responses = client.listStacksPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListStacksIterable responses = client.listStacksPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListStacksResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListStacksIterable responses = client.listStacksPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of null won't limit the number of results you get with the paginator. It * only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listStacks(software.amazon.awssdk.services.cloudformation.model.ListStacksRequest)} operation. *

* * @param listStacksRequest * The input for ListStacks action. * @return A custom iterable that can be used to iterate through all the response pages. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListStacks * @see AWS API * Documentation */ @Override public ListStacksIterable listStacksPaginator(ListStacksRequest listStacksRequest) throws AwsServiceException, SdkClientException, CloudFormationException { return new ListStacksIterable(this, applyPaginatorUserAgent(listStacksRequest)); } /** *

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

* * @param listTypeRegistrationsRequest * @return Result of the ListTypeRegistrations operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypeRegistrations * @see AWS API Documentation */ @Override public ListTypeRegistrationsResponse listTypeRegistrations(ListTypeRegistrationsRequest listTypeRegistrationsRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypeRegistrationsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTypeRegistrations").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTypeRegistrationsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListTypeRegistrationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*
*

* This is a variant of * {@link #listTypeRegistrations(software.amazon.awssdk.services.cloudformation.model.ListTypeRegistrationsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypeRegistrationsIterable responses = client.listTypeRegistrationsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListTypeRegistrationsIterable responses = client
     *             .listTypeRegistrationsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListTypeRegistrationsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypeRegistrationsIterable responses = client.listTypeRegistrationsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listTypeRegistrations(software.amazon.awssdk.services.cloudformation.model.ListTypeRegistrationsRequest)} * operation. *

* * @param listTypeRegistrationsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypeRegistrations * @see AWS API Documentation */ @Override public ListTypeRegistrationsIterable listTypeRegistrationsPaginator(ListTypeRegistrationsRequest listTypeRegistrationsRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { return new ListTypeRegistrationsIterable(this, applyPaginatorUserAgent(listTypeRegistrationsRequest)); } /** *

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

* * @param listTypeVersionsRequest * @return Result of the ListTypeVersions operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypeVersions * @see AWS API Documentation */ @Override public ListTypeVersionsResponse listTypeVersions(ListTypeVersionsRequest listTypeVersionsRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypeVersionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTypeVersions").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTypeVersionsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListTypeVersionsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*
*

* This is a variant of * {@link #listTypeVersions(software.amazon.awssdk.services.cloudformation.model.ListTypeVersionsRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypeVersionsIterable responses = client.listTypeVersionsPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListTypeVersionsIterable responses = client
     *             .listTypeVersionsPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListTypeVersionsResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypeVersionsIterable responses = client.listTypeVersionsPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listTypeVersions(software.amazon.awssdk.services.cloudformation.model.ListTypeVersionsRequest)} * operation. *

* * @param listTypeVersionsRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypeVersions * @see AWS API Documentation */ @Override public ListTypeVersionsIterable listTypeVersionsPaginator(ListTypeVersionsRequest listTypeVersionsRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { return new ListTypeVersionsIterable(this, applyPaginatorUserAgent(listTypeVersionsRequest)); } /** *

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

* * @param listTypesRequest * @return Result of the ListTypes operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypes * @see AWS API * Documentation */ @Override public ListTypesResponse listTypes(ListTypesRequest listTypesRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListTypesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTypes").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTypesRequest) .withMetricCollector(apiCallMetricCollector).withMarshaller(new ListTypesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

*
*

* This is a variant of {@link #listTypes(software.amazon.awssdk.services.cloudformation.model.ListTypesRequest)} * operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will * internally handle making service calls for you. *

*

* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no * guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response * pages by making service calls until there are no pages left or your iteration stops. If there are errors in your * request, you will see the failures only after you start iterating through the iterable. *

* *

* The following are few ways to iterate through the response pages: *

* 1) Using a Stream * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypesIterable responses = client.listTypesPaginator(request);
     * responses.stream().forEach(....);
     * }
     * 
* * 2) Using For loop * *
     * {
     *     @code
     *     software.amazon.awssdk.services.cloudformation.paginators.ListTypesIterable responses = client.listTypesPaginator(request);
     *     for (software.amazon.awssdk.services.cloudformation.model.ListTypesResponse response : responses) {
     *         // do something;
     *     }
     * }
     * 
* * 3) Use iterator directly * *
     * {@code
     * software.amazon.awssdk.services.cloudformation.paginators.ListTypesIterable responses = client.listTypesPaginator(request);
     * responses.iterator().forEachRemaining(....);
     * }
     * 
*

* Please notice that the configuration of MaxResults won't limit the number of results you get with the * paginator. It only limits the number of results in each page. *

*

* Note: If you prefer to have control on service calls, use the * {@link #listTypes(software.amazon.awssdk.services.cloudformation.model.ListTypesRequest)} operation. *

* * @param listTypesRequest * @return A custom iterable that can be used to iterate through all the response pages. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ListTypes * @see AWS API * Documentation */ @Override public ListTypesIterable listTypesPaginator(ListTypesRequest listTypesRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { return new ListTypesIterable(this, applyPaginatorUserAgent(listTypesRequest)); } /** *

* 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 CLI User Guide. *

*

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

* * @param publishTypeRequest * @return Result of the PublishType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.PublishType * @see AWS * API Documentation */ @Override public PublishTypeResponse publishType(PublishTypeRequest publishTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(PublishTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("PublishType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(publishTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new PublishTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the RecordHandlerProgress operation returned by the service. * @throws InvalidStateTransitionException * Error reserved for use by the CloudFormation CLI. CloudFormation doesn't return this error to users. * @throws OperationStatusCheckFailedException * Error reserved for use by the CloudFormation CLI. CloudFormation doesn't return this error to users. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.RecordHandlerProgress * @see AWS API Documentation */ @Override public RecordHandlerProgressResponse recordHandlerProgress(RecordHandlerProgressRequest recordHandlerProgressRequest) throws InvalidStateTransitionException, OperationStatusCheckFailedException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RecordHandlerProgressResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RecordHandlerProgress").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(recordHandlerProgressRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RecordHandlerProgressRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Registering your account to publish CloudFormation extensions in the CloudFormation CLI User Guide. *

*

* * @param registerPublisherRequest * @return Result of the RegisterPublisher operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.RegisterPublisher * @see AWS API Documentation */ @Override public RegisterPublisherResponse registerPublisher(RegisterPublisherRequest registerPublisherRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RegisterPublisherResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RegisterPublisher").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(registerPublisherRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RegisterPublisherRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 * Providers in the CloudFormation 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 Configuring extensions at the account level in the CloudFormation User Guide. *

* * @param registerTypeRequest * @return Result of the RegisterType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.RegisterType * @see AWS * API Documentation */ @Override public RegisterTypeResponse registerType(RegisterTypeRequest registerTypeRequest) throws CfnRegistryException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RegisterTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RegisterType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(registerTypeRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RegisterTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the RollbackStack operation returned by the service. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.RollbackStack * @see AWS * API Documentation */ @Override public RollbackStackResponse rollbackStack(RollbackStackRequest rollbackStackRequest) throws TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(RollbackStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("RollbackStack").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(rollbackStackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new RollbackStackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Sets a stack policy for a specified stack. *

* * @param setStackPolicyRequest * The input for the SetStackPolicy action. * @return Result of the SetStackPolicy operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.SetStackPolicy * @see AWS * API Documentation */ @Override public SetStackPolicyResponse setStackPolicy(SetStackPolicyRequest setStackPolicyRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetStackPolicyResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("SetStackPolicy").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(setStackPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SetStackPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 * Configuring extensions at the account level 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 Using dynamic references to specify template values in the * CloudFormation User Guide. *

*
* * @param setTypeConfigurationRequest * @return Result of the SetTypeConfiguration operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.SetTypeConfiguration * @see AWS API Documentation */ @Override public SetTypeConfigurationResponse setTypeConfiguration(SetTypeConfigurationRequest setTypeConfigurationRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetTypeConfigurationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("SetTypeConfiguration").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(setTypeConfigurationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SetTypeConfigurationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

* * @param setTypeDefaultVersionRequest * @return Result of the SetTypeDefaultVersion operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.SetTypeDefaultVersion * @see AWS API Documentation */ @Override public SetTypeDefaultVersionResponse setTypeDefaultVersion(SetTypeDefaultVersionRequest setTypeDefaultVersionRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SetTypeDefaultVersionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("SetTypeDefaultVersion").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(setTypeDefaultVersionRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SetTypeDefaultVersionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the SignalResource operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.SignalResource * @see AWS * API Documentation */ @Override public SignalResourceResponse signalResource(SignalResourceRequest signalResourceRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(SignalResourceResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("SignalResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(signalResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new SignalResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the StopStackSetOperation operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws OperationNotFoundException * The specified ID refers to an operation that doesn't exist. * @throws InvalidOperationException * The specified operation isn't valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.StopStackSetOperation * @see AWS API Documentation */ @Override public StopStackSetOperationResponse stopStackSetOperation(StopStackSetOperationRequest stopStackSetOperationRequest) throws StackSetNotFoundException, OperationNotFoundException, InvalidOperationException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(StopStackSetOperationResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("StopStackSetOperation").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(stopStackSetOperationRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new StopStackSetOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 prior to publishing in the CloudFormation 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 use 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 CLI User Guide. *

* * @param testTypeRequest * @return Result of the TestType operation returned by the service. * @throws CfnRegistryException * An error occurred during a CloudFormation registry operation. * @throws TypeNotFoundException * The specified extension doesn't exist in the CloudFormation registry. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.TestType * @see AWS API * Documentation */ @Override public TestTypeResponse testType(TestTypeRequest testTypeRequest) throws CfnRegistryException, TypeNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(TestTypeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("TestType").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(testTypeRequest) .withMetricCollector(apiCallMetricCollector).withMarshaller(new TestTypeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 creating an update template, updating a stack, and monitoring the progress of the * update, see Updating a * Stack. *

* * @param updateStackRequest * The input for an UpdateStack action. * @return Result of the UpdateStack operation returned by the service. * @throws InsufficientCapabilitiesException * The template contains resources with capabilities that weren't specified in the Capabilities parameter. * @throws TokenAlreadyExistsException * A client request token already exists. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.UpdateStack * @see AWS * API Documentation */ @Override public UpdateStackResponse updateStack(UpdateStackRequest updateStackRequest) throws InsufficientCapabilitiesException, TokenAlreadyExistsException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateStack").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateStackRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateStackRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the UpdateStackInstances operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws StackInstanceNotFoundException * The specified stack instance doesn't exist. * @throws 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. * @throws OperationIdAlreadyExistsException * The specified operation ID already exists. * @throws StaleRequestException * Another operation has been performed on this stack set since the specified operation was performed. * @throws InvalidOperationException * The specified operation isn't valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.UpdateStackInstances * @see AWS API Documentation */ @Override public UpdateStackInstancesResponse updateStackInstances(UpdateStackInstancesRequest updateStackInstancesRequest) throws StackSetNotFoundException, StackInstanceNotFoundException, OperationInProgressException, OperationIdAlreadyExistsException, StaleRequestException, InvalidOperationException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackInstancesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateStackInstances").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateStackInstancesRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateStackInstancesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the UpdateStackSet operation returned by the service. * @throws StackSetNotFoundException * The specified stack set doesn't exist. * @throws 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. * @throws OperationIdAlreadyExistsException * The specified operation ID already exists. * @throws StaleRequestException * Another operation has been performed on this stack set since the specified operation was performed. * @throws InvalidOperationException * The specified operation isn't valid. * @throws StackInstanceNotFoundException * The specified stack instance doesn't exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.UpdateStackSet * @see AWS * API Documentation */ @Override public UpdateStackSetResponse updateStackSet(UpdateStackSetRequest updateStackSetRequest) throws StackSetNotFoundException, OperationInProgressException, OperationIdAlreadyExistsException, StaleRequestException, InvalidOperationException, StackInstanceNotFoundException, AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateStackSetResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateStackSet").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateStackSetRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateStackSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Protecting a * 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 Result of the UpdateTerminationProtection operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.UpdateTerminationProtection * @see AWS API Documentation */ @Override public UpdateTerminationProtectionResponse updateTerminationProtection( UpdateTerminationProtectionRequest updateTerminationProtectionRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateTerminationProtectionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateTerminationProtection").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateTerminationProtectionRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateTerminationProtectionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* 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 Result of the ValidateTemplate operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws CloudFormationException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample CloudFormationClient.ValidateTemplate * @see AWS API Documentation */ @Override public ValidateTemplateResponse validateTemplate(ValidateTemplateRequest validateTemplateRequest) throws AwsServiceException, SdkClientException, CloudFormationException { HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ValidateTemplateResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); 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"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ValidateTemplate").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(validateTemplateRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ValidateTemplateRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } 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 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("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("InsufficientCapabilitiesException") .exceptionBuilderSupplier(InsufficientCapabilitiesException::builder).httpStatusCode(400).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("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("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(); } @Override public void close() { clientHandler.close(); } private T applyPaginatorUserAgent(T request) { Consumer userAgentApplier = b -> b.addApiName(ApiName.builder() .version(VersionInfo.SDK_VERSION).name("PAGINATED").build()); AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration() .map(c -> c.toBuilder().applyMutation(userAgentApplier).build()) .orElse((AwsRequestOverrideConfiguration.builder().applyMutation(userAgentApplier).build())); return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build(); } @Override public CloudFormationWaiter waiter() { return CloudFormationWaiter.builder().client(this).build(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy