software.amazon.awssdk.services.cloudformation.DefaultCloudFormationClient Maven / Gradle / Ivy
Show all versions of cloudformation Show documentation
/*
* Copyright 2014-2019 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.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.client.config.SdkClientConfiguration;
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.util.VersionInfo;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory;
import software.amazon.awssdk.services.cloudformation.model.AlreadyExistsException;
import software.amazon.awssdk.services.cloudformation.model.CancelUpdateStackRequest;
import software.amazon.awssdk.services.cloudformation.model.CancelUpdateStackResponse;
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.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.DescribeAccountLimitsRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeAccountLimitsResponse;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetRequest;
import software.amazon.awssdk.services.cloudformation.model.DescribeChangeSetResponse;
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.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.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.InsufficientCapabilitiesException;
import software.amazon.awssdk.services.cloudformation.model.InvalidChangeSetStatusException;
import software.amazon.awssdk.services.cloudformation.model.InvalidOperationException;
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.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.SetStackPolicyRequest;
import software.amazon.awssdk.services.cloudformation.model.SetStackPolicyResponse;
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.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.TokenAlreadyExistsException;
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.DescribeStackEventsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.DescribeStackResourceDriftsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.DescribeStacksIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListExportsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListImportsIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStackResourcesIterable;
import software.amazon.awssdk.services.cloudformation.paginators.ListStacksIterable;
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.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.DescribeAccountLimitsRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DescribeChangeSetRequestMarshaller;
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.DetectStackDriftRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.DetectStackResourceDriftRequestMarshaller;
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.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.SetStackPolicyRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.SignalResourceRequestMarshaller;
import software.amazon.awssdk.services.cloudformation.transform.StopStackSetOperationRequestMarshaller;
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;
/**
* Internal implementation of {@link CloudFormationClient}.
*
* @see CloudFormationClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultCloudFormationClient implements CloudFormationClient {
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;
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CancelUpdateStack").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(cancelUpdateStackRequest)
.withMarshaller(new CancelUpdateStackRequestMarshaller(protocolFactory)));
}
/**
*
* For a specified stack that is 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 AWS CloudFormation cannot roll back all
* changes after a failed stack update. For example, you might have a stack that is rolling back to an old database
* instance that was deleted outside of AWS CloudFormation. Because AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ContinueUpdateRollback").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(continueUpdateRollbackRequest)
.withMarshaller(new ContinueUpdateRollbackRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS CloudFormation will create. If
* you create a change set for an existing stack, AWS 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 AWS 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. After the CreateChangeSet
call successfully completes, AWS
* 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. AWS CloudFormation doesn't make changes until you execute the change set.
*
*
* @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 on stack set limitations, see Limitations of StackSets.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateChangeSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createChangeSetRequest)
.withMarshaller(new CreateChangeSetRequestMarshaller(protocolFactory)));
}
/**
*
* 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 via the DescribeStacks API.
*
*
* @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 on stack set limitations, see Limitations of StackSets.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateStack").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createStackRequest)
.withMarshaller(new CreateStackRequestMarshaller(protocolFactory)));
}
/**
*
* Creates stack instances for the specified accounts, within the specified regions. A stack instance refers to a
* stack in a specific account and region. Accounts
and Regions
are required
* parameters—you must specify at least one account and one region.
*
*
* @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 on stack set limitations, see Limitations of StackSets.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateStackInstances").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createStackInstancesRequest)
.withMarshaller(new CreateStackInstancesRequestMarshaller(protocolFactory)));
}
/**
*
* 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 on stack set limitations, see Limitations of StackSets.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateStackSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createStackSetRequest)
.withMarshaller(new CreateStackSetRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set.
*
*
* If the call successfully completes, AWS CloudFormation successfully deleted the change set.
*
*
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteChangeSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteChangeSetRequest)
.withMarshaller(new DeleteChangeSetRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not
* show up in the DescribeStacks API 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteStack").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteStackRequest)
.withMarshaller(new DeleteStackRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes stack instances for the specified accounts, in the specified 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteStackInstances").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteStackInstancesRequest)
.withMarshaller(new DeleteStackInstancesRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For
* more information about how to do 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteStackSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteStackSetRequest)
.withMarshaller(new DeleteStackSetRequestMarshaller(protocolFactory)));
}
/**
*
* Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in
* your account.
*
*
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeAccountLimits").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeAccountLimitsRequest)
.withMarshaller(new DescribeAccountLimitsRequestMarshaller(protocolFactory)));
}
/**
*
* Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the
* change set. For more information, see Updating Stacks Using Change Sets in the AWS 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
action.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeChangeSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeChangeSetRequest)
.withMarshaller(new DescribeChangeSetRequestMarshaller(protocolFactory)));
}
/**
*
* 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 on 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeStackDriftDetectionStatus").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackDriftDetectionStatusRequest)
.withMarshaller(new DescribeStackDriftDetectionStatusRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStackEvents").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackEventsRequest)
.withMarshaller(new DescribeStackEventsRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS
* 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(....);
* }
*
*
* 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, AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStackInstance").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackInstanceRequest)
.withMarshaller(new DescribeStackInstanceRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStackResource").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourceRequest)
.withMarshaller(new DescribeStackResourceRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS 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 have not yet been checked for drift are not included. Resources that do not
* currently support drift detection are not 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeStackResourceDrifts").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourceDriftsRequest)
.withMarshaller(new DescribeStackResourceDriftsRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS 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 have not yet been checked for drift are not included. Resources that do not
* currently support drift detection are not 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(....);
* }
*
*
* 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 AWS 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 AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStackResources").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackResourcesRequest)
.withMarshaller(new DescribeStackResourcesRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStackSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackSetRequest)
.withMarshaller(new DescribeStackSetRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeStackSetOperation").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStackSetOperationRequest)
.withMarshaller(new DescribeStackSetOperationRequestMarshaller(protocolFactory)));
}
/**
*
* 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 does not exist, an AmazonCloudFormationException
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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeStacks").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStacksRequest)
.withMarshaller(new DescribeStacksRequestMarshaller(protocolFactory)));
}
/**
*
* 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 does not exist, an AmazonCloudFormationException
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(....);
* }
*
*
* 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));
}
/**
*
* 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, AWS 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, AWS CloudFormation does not 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DetectStackDrift").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(detectStackDriftRequest)
.withMarshaller(new DetectStackDriftRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS 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 do not currently support drift detection cannot 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DetectStackResourceDrift").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(detectStackResourceDriftRequest)
.withMarshaller(new DetectStackResourceDriftRequestMarshaller(protocolFactory)));
}
/**
*
* Returns the estimated monthly cost of a template. The return value is an AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("EstimateTemplateCost").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(estimateTemplateCostRequest)
.withMarshaller(new EstimateTemplateCostRequestMarshaller(protocolFactory)));
}
/**
*
* Updates a stack using the input information that was provided when the specified change set was created. After
* the call successfully completes, AWS CloudFormation starts updating the stack. Use the DescribeStacks
* action to view the status of the update.
*
*
* When you execute a change set, AWS 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, AWS CloudFormation enforces the policy during the update. You
* can't specify a temporary stack policy that overrides the current policy.
*
*
* @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
action.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ExecuteChangeSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(executeChangeSetRequest)
.withMarshaller(new ExecuteChangeSetRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetStackPolicy").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getStackPolicyRequest)
.withMarshaller(new GetStackPolicyRequestMarshaller(protocolFactory)));
}
/**
*
* 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 does not 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
action.
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetTemplate").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getTemplateRequest)
.withMarshaller(new GetTemplateRequestMarshaller(protocolFactory)));
}
/**
*
* 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 does not 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetTemplateSummary").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getTemplateSummaryRequest)
.withMarshaller(new GetTemplateSummaryRequestMarshaller(protocolFactory)));
}
/**
*
* Returns the ID and status of each active change set for a stack. For example, AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListChangeSets").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listChangeSetsRequest)
.withMarshaller(new ListChangeSetsRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListExports").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listExportsRequest)
.withMarshaller(new ListExportsRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS
* 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(....);
* }
*
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListImports").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listImportsRequest)
.withMarshaller(new ListImportsRequestMarshaller(protocolFactory)));
}
/**
*
* 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(....);
* }
*
*
* 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 AWS account name or region.
*
*
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListStackInstances").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStackInstancesRequest)
.withMarshaller(new ListStackInstancesRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListStackResources").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStackResourcesRequest)
.withMarshaller(new ListStackResourcesRequestMarshaller(protocolFactory)));
}
/**
*
* 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(....);
* }
*
*
* 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListStackSetOperationResults").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStackSetOperationResultsRequest)
.withMarshaller(new ListStackSetOperationResultsRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListStackSetOperations").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStackSetOperationsRequest)
.withMarshaller(new ListStackSetOperationsRequestMarshaller(protocolFactory)));
}
/**
*
* Returns summary information about stack sets that are associated with the user.
*
*
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListStackSets").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStackSetsRequest)
.withMarshaller(new ListStackSetsRequestMarshaller(protocolFactory)));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListStacks").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStacksRequest)
.withMarshaller(new ListStacksRequestMarshaller(protocolFactory)));
}
/**
*
* 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(....);
* }
*
*
* 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));
}
/**
*
* 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("SetStackPolicy").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(setStackPolicyRequest)
.withMarshaller(new SetStackPolicyRequestMarshaller(protocolFactory)));
}
/**
*
* Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in
* conjunction with a creation policy or update policy. AWS 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 API 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("SignalResource").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(signalResourceRequest)
.withMarshaller(new SignalResourceRequestMarshaller(protocolFactory)));
}
/**
*
* Stops an in-progress operation on a stack set and its associated stack instances.
*
*
* @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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("StopStackSetOperation").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(stopStackSetOperationRequest)
.withMarshaller(new StopStackSetOperationRequestMarshaller(protocolFactory)));
}
/**
*
* 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 via 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateStack").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(updateStackRequest)
.withMarshaller(new UpdateStackRequestMarshaller(protocolFactory)));
}
/**
*
* Updates the parameter values for stack instances for the specified accounts, within the specified regions. A
* stack instance refers to a stack in a specific account and region.
*
*
* You can only update stack instances in 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 are not 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateStackInstances").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(updateStackInstancesRequest)
.withMarshaller(new UpdateStackInstancesRequestMarshaller(protocolFactory)));
}
/**
*
* Updates the stack set, and associated stack instances in the specified accounts and 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateStackSet").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(updateStackSetRequest)
.withMarshaller(new UpdateStackSetRequestMarshaller(protocolFactory)));
}
/**
*
* 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 AWS CloudFormation User Guide.
*
*
* For nested stacks, termination
* protection is set on the root stack and cannot 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();
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateTerminationProtection").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(updateTerminationProtectionRequest)
.withMarshaller(new UpdateTerminationProtectionRequestMarshaller(protocolFactory)));
}
/**
*
* Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS
* CloudFormation checks if the template is valid YAML. If both these checks fail, AWS 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();
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ValidateTemplate").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(validateTemplateRequest)
.withMarshaller(new ValidateTemplateRequestMarshaller(protocolFactory)));
}
private AwsQueryProtocolFactory init() {
return AwsQueryProtocolFactory
.builder()
.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("InvalidOperationException")
.exceptionBuilderSupplier(InvalidOperationException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TokenAlreadyExistsException")
.exceptionBuilderSupplier(TokenAlreadyExistsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ChangeSetNotFound")
.exceptionBuilderSupplier(ChangeSetNotFoundException::builder).httpStatusCode(404).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("StackInstanceNotFoundException")
.exceptionBuilderSupplier(StackInstanceNotFoundException::builder).httpStatusCode(404).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("OperationIdAlreadyExistsException")
.exceptionBuilderSupplier(OperationIdAlreadyExistsException::builder).httpStatusCode(409).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();
}
}