com.amazonaws.services.codepipeline.AWSCodePipelineClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-codepipeline Show documentation
/*
* Copyright 2015-2020 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 com.amazonaws.services.codepipeline;
import org.w3c.dom.*;
import java.net.*;
import java.util.*;
import javax.annotation.Generated;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;
import com.amazonaws.services.codepipeline.AWSCodePipelineClientBuilder;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.codepipeline.model.*;
import com.amazonaws.services.codepipeline.model.transform.*;
/**
* Client for accessing CodePipeline. All service calls made using this client are blocking, and will not return until
* the service call completes.
*
* AWS CodePipeline
*
* Overview
*
*
* This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS
* CodePipeline. Some functionality for your pipeline can only be configured through the API. For more information, see
* the AWS CodePipeline User Guide.
*
*
* You can use the AWS CodePipeline API to work with pipelines, stages, actions, and transitions.
*
*
* Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of stages,
* actions, and transitions.
*
*
* You can work with pipelines by calling:
*
*
* -
*
* CreatePipeline, which creates a uniquely named pipeline.
*
*
* -
*
* DeletePipeline, which deletes the specified pipeline.
*
*
* -
*
* GetPipeline, which returns information about the pipeline structure and pipeline metadata, including the
* pipeline Amazon Resource Name (ARN).
*
*
* -
*
* GetPipelineExecution, which returns information about a specific execution of a pipeline.
*
*
* -
*
* GetPipelineState, which returns information about the current state of the stages and actions of a pipeline.
*
*
* -
*
* ListActionExecutions, which returns action-level details for past executions. The details include full stage
* and action-level details, including individual action duration, status, any errors that occurred during the
* execution, and input and output artifact location details.
*
*
* -
*
* ListPipelines, which gets a summary of all of the pipelines associated with your account.
*
*
* -
*
* ListPipelineExecutions, which gets a summary of the most recent executions for a pipeline.
*
*
* -
*
* StartPipelineExecution, which runs the most recent revision of an artifact through the pipeline.
*
*
* -
*
* StopPipelineExecution, which stops the specified pipeline execution from continuing through the pipeline.
*
*
* -
*
* UpdatePipeline, which updates a pipeline with edits or changes to the structure of the pipeline.
*
*
*
*
* Pipelines include stages. Each stage contains one or more actions that must complete before the next stage
* begins. A stage results in success or failure. If a stage fails, the pipeline stops at that stage and remains stopped
* until either a new version of an artifact appears in the source location, or a user takes action to rerun the most
* recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline,
* including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the
* pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, see
* AWS CodePipeline Pipeline
* Structure Reference.
*
*
* Pipeline stages include actions that are categorized into categories such as source or build actions performed
* in a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source
* such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact
* with actions when working with pipeline operations such as CreatePipeline and GetPipelineState. Valid
* action categories are:
*
*
* -
*
* Source
*
*
* -
*
* Build
*
*
* -
*
* Test
*
*
* -
*
* Deploy
*
*
* -
*
* Approval
*
*
* -
*
* Invoke
*
*
*
*
* Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a
* pipeline after the actions in one stage complete.
*
*
* You can work with transitions by calling:
*
*
* -
*
* DisableStageTransition, which prevents artifacts from transitioning to the next stage in a pipeline.
*
*
* -
*
* EnableStageTransition, which enables transition of artifacts between stages in a pipeline.
*
*
*
*
* Using the API to integrate with AWS CodePipeline
*
*
* For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the
* expected sequence varies from the standard API user. To integrate with AWS CodePipeline, developers need to work with
* the following items:
*
*
* Jobs, which are instances of an action. For example, a job for a source action might import a revision of an
* artifact from a source.
*
*
* You can work with jobs by calling:
*
*
* -
*
* AcknowledgeJob, which confirms whether a job worker has received the specified job.
*
*
* -
*
* GetJobDetails, which returns the details of a job.
*
*
* -
*
* PollForJobs, which determines whether there are any jobs to act on.
*
*
* -
*
* PutJobFailureResult, which provides details of a job failure.
*
*
* -
*
* PutJobSuccessResult, which provides details of a job success.
*
*
*
*
* Third party jobs, which are instances of an action created by a partner action and integrated into AWS
* CodePipeline. Partner actions are created by members of the AWS Partner Network.
*
*
* You can work with third party jobs by calling:
*
*
* -
*
* AcknowledgeThirdPartyJob, which confirms whether a job worker has received the specified job.
*
*
* -
*
* GetThirdPartyJobDetails, which requests the details of a job for a partner action.
*
*
* -
*
* PollForThirdPartyJobs, which determines whether there are any jobs to act on.
*
*
* -
*
* PutThirdPartyJobFailureResult, which provides details of a job failure.
*
*
* -
*
* PutThirdPartyJobSuccessResult, which provides details of a job success.
*
*
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AWSCodePipelineClient extends AmazonWebServiceClient implements AWSCodePipeline {
/** Provider for AWS credentials. */
private final AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AWSCodePipeline.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "codepipeline";
/** Client configuration factory providing ClientConfigurations tailored to this client */
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
private final AdvancedConfig advancedConfig;
private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory(
new JsonClientMetadata()
.withProtocolVersion("1.1")
.withSupportsCbor(false)
.withSupportsIon(false)
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ConcurrentModificationException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ConcurrentModificationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidClientTokenException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidClientTokenExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidJobStateException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidJobStateExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("PipelineVersionNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.PipelineVersionNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidWebhookFilterPatternException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidWebhookFilterPatternExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("OutputVariablesSizeExceededException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.OutputVariablesSizeExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidWebhookAuthenticationParametersException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidWebhookAuthenticationParametersExceptionUnmarshaller
.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("WebhookNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.WebhookNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidApprovalTokenException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidApprovalTokenExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidActionDeclarationException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidActionDeclarationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidArnException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidArnExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("PipelineExecutionNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.PipelineExecutionNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ApprovalAlreadyCompletedException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ApprovalAlreadyCompletedExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("PipelineNameInUseException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.PipelineNameInUseExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("PipelineNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.PipelineNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidNextTokenException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidNextTokenExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidJobException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidJobExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.LimitExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ActionTypeNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ActionTypeNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StageNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.StageNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StageNotRetryableException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.StageNotRetryableExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("TooManyTagsException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.TooManyTagsExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ConflictException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ConflictExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidStructureException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidStructureExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("DuplicatedStopRequestException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.DuplicatedStopRequestExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidBlockerDeclarationException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidBlockerDeclarationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidTagsException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidTagsExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ActionNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ActionNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidStageDeclarationException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidStageDeclarationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ValidationException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.ValidationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidNonceException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.InvalidNonceExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("JobNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.JobNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("PipelineExecutionNotStoppableException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.PipelineExecutionNotStoppableExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("NotLatestPipelineExecutionException").withExceptionUnmarshaller(
com.amazonaws.services.codepipeline.model.transform.NotLatestPipelineExecutionExceptionUnmarshaller.getInstance()))
.withBaseServiceExceptionClass(com.amazonaws.services.codepipeline.model.AWSCodePipelineException.class));
/**
* Constructs a new client to invoke service methods on CodePipeline. A credentials provider chain will be used that
* searches for credentials in this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @see DefaultAWSCredentialsProviderChain
* @deprecated use {@link AWSCodePipelineClientBuilder#defaultClient()}
*/
@Deprecated
public AWSCodePipelineClient() {
this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodePipeline. A credentials provider chain will be used that
* searches for credentials in this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientConfiguration
* The client configuration options controlling how this client connects to CodePipeline (ex: proxy settings,
* retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
* @deprecated use {@link AWSCodePipelineClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AWSCodePipelineClient(ClientConfiguration clientConfiguration) {
this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration);
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified AWS account credentials.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @deprecated use {@link AWSCodePipelineClientBuilder#withCredentials(AWSCredentialsProvider)} for example:
* {@code AWSCodePipelineClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();}
*/
@Deprecated
public AWSCodePipelineClient(AWSCredentials awsCredentials) {
this(awsCredentials, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified AWS account credentials and
* client configuration options.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to CodePipeline (ex: proxy settings,
* retry counts, etc.).
* @deprecated use {@link AWSCodePipelineClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AWSCodePipelineClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AWSCodePipelineClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials);
this.advancedConfig = AdvancedConfig.EMPTY;
init();
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified AWS account credentials
* provider.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @deprecated use {@link AWSCodePipelineClientBuilder#withCredentials(AWSCredentialsProvider)}
*/
@Deprecated
public AWSCodePipelineClient(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified AWS account credentials
* provider and client configuration options.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to CodePipeline (ex: proxy settings,
* retry counts, etc.).
* @deprecated use {@link AWSCodePipelineClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AWSCodePipelineClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AWSCodePipelineClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, null);
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified AWS account credentials
* provider, client configuration options, and request metric collector.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to CodePipeline (ex: proxy settings,
* retry counts, etc.).
* @param requestMetricCollector
* optional request metric collector
* @deprecated use {@link AWSCodePipelineClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AWSCodePipelineClientBuilder#withClientConfiguration(ClientConfiguration)} and
* {@link AWSCodePipelineClientBuilder#withMetricsCollector(RequestMetricCollector)}
*/
@Deprecated
public AWSCodePipelineClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration,
RequestMetricCollector requestMetricCollector) {
super(clientConfiguration, requestMetricCollector);
this.awsCredentialsProvider = awsCredentialsProvider;
this.advancedConfig = AdvancedConfig.EMPTY;
init();
}
public static AWSCodePipelineClientBuilder builder() {
return AWSCodePipelineClientBuilder.standard();
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified parameters.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientParams
* Object providing client parameters.
*/
AWSCodePipelineClient(AwsSyncClientParams clientParams) {
this(clientParams, false);
}
/**
* Constructs a new client to invoke service methods on CodePipeline using the specified parameters.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientParams
* Object providing client parameters.
*/
AWSCodePipelineClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) {
super(clientParams);
this.awsCredentialsProvider = clientParams.getCredentialsProvider();
this.advancedConfig = clientParams.getAdvancedConfig();
init();
}
private void init() {
setServiceNameIntern(DEFAULT_SIGNING_NAME);
setEndpointPrefix(ENDPOINT_PREFIX);
// calling this.setEndPoint(...) will also modify the signer accordingly
setEndpoint("https://codepipeline.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/codepipeline/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/codepipeline/request.handler2s"));
requestHandler2s.addAll(chainFactory.getGlobalHandlers());
}
/**
*
* Returns information about a specified job and whether that job has been received by the job worker. Used for
* custom actions only.
*
*
* @param acknowledgeJobRequest
* Represents the input of an AcknowledgeJob action.
* @return Result of the AcknowledgeJob operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNonceException
* The nonce was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.AcknowledgeJob
* @see AWS
* API Documentation
*/
@Override
public AcknowledgeJobResult acknowledgeJob(AcknowledgeJobRequest request) {
request = beforeClientExecution(request);
return executeAcknowledgeJob(request);
}
@SdkInternalApi
final AcknowledgeJobResult executeAcknowledgeJob(AcknowledgeJobRequest acknowledgeJobRequest) {
ExecutionContext executionContext = createExecutionContext(acknowledgeJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcknowledgeJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(acknowledgeJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AcknowledgeJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AcknowledgeJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Confirms a job worker has received the specified job. Used for partner actions only.
*
*
* @param acknowledgeThirdPartyJobRequest
* Represents the input of an AcknowledgeThirdPartyJob action.
* @return Result of the AcknowledgeThirdPartyJob operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNonceException
* The nonce was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @sample AWSCodePipeline.AcknowledgeThirdPartyJob
* @see AWS API Documentation
*/
@Override
public AcknowledgeThirdPartyJobResult acknowledgeThirdPartyJob(AcknowledgeThirdPartyJobRequest request) {
request = beforeClientExecution(request);
return executeAcknowledgeThirdPartyJob(request);
}
@SdkInternalApi
final AcknowledgeThirdPartyJobResult executeAcknowledgeThirdPartyJob(AcknowledgeThirdPartyJobRequest acknowledgeThirdPartyJobRequest) {
ExecutionContext executionContext = createExecutionContext(acknowledgeThirdPartyJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcknowledgeThirdPartyJobRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(acknowledgeThirdPartyJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AcknowledgeThirdPartyJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AcknowledgeThirdPartyJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new custom action that can be used in all pipelines associated with the AWS account. Only used for
* custom actions.
*
*
* @param createCustomActionTypeRequest
* Represents the input of a CreateCustomActionType operation.
* @return Result of the CreateCustomActionType operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws LimitExceededException
* The number of pipelines associated with the AWS account has exceeded the limit allowed for the account.
* @throws TooManyTagsException
* The tags limit for a resource has been exceeded.
* @throws InvalidTagsException
* The specified resource tags are invalid.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.CreateCustomActionType
* @see AWS API Documentation
*/
@Override
public CreateCustomActionTypeResult createCustomActionType(CreateCustomActionTypeRequest request) {
request = beforeClientExecution(request);
return executeCreateCustomActionType(request);
}
@SdkInternalApi
final CreateCustomActionTypeResult executeCreateCustomActionType(CreateCustomActionTypeRequest createCustomActionTypeRequest) {
ExecutionContext executionContext = createExecutionContext(createCustomActionTypeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateCustomActionTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createCustomActionTypeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateCustomActionType");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateCustomActionTypeResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a pipeline.
*
*
*
* In the pipeline structure, you must include either artifactStore
or artifactStores
in
* your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use
* artifactStores
.
*
*
*
* @param createPipelineRequest
* Represents the input of a CreatePipeline
action.
* @return Result of the CreatePipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNameInUseException
* The specified pipeline name is already in use.
* @throws InvalidStageDeclarationException
* The stage declaration was specified in an invalid format.
* @throws InvalidActionDeclarationException
* The action declaration was specified in an invalid format.
* @throws InvalidBlockerDeclarationException
* Reserved for future use.
* @throws InvalidStructureException
* The structure was specified in an invalid format.
* @throws LimitExceededException
* The number of pipelines associated with the AWS account has exceeded the limit allowed for the account.
* @throws TooManyTagsException
* The tags limit for a resource has been exceeded.
* @throws InvalidTagsException
* The specified resource tags are invalid.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.CreatePipeline
* @see AWS
* API Documentation
*/
@Override
public CreatePipelineResult createPipeline(CreatePipelineRequest request) {
request = beforeClientExecution(request);
return executeCreatePipeline(request);
}
@SdkInternalApi
final CreatePipelineResult executeCreatePipeline(CreatePipelineRequest createPipelineRequest) {
ExecutionContext executionContext = createExecutionContext(createPipelineRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreatePipelineRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createPipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreatePipeline");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreatePipelineResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Marks a custom action as deleted. PollForJobs
for the custom action fails after the action is marked
* for deletion. Used for custom actions only.
*
*
*
* To re-create a custom action after it has been deleted you must use a string in the version field that has never
* been used before. This string can be an incremented version number, for example. To restore a deleted custom
* action, use a JSON file that is identical to the deleted action, including the original string in the version
* field.
*
*
*
* @param deleteCustomActionTypeRequest
* Represents the input of a DeleteCustomActionType
operation. The custom action will be marked
* as deleted.
* @return Result of the DeleteCustomActionType operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.DeleteCustomActionType
* @see AWS API Documentation
*/
@Override
public DeleteCustomActionTypeResult deleteCustomActionType(DeleteCustomActionTypeRequest request) {
request = beforeClientExecution(request);
return executeDeleteCustomActionType(request);
}
@SdkInternalApi
final DeleteCustomActionTypeResult executeDeleteCustomActionType(DeleteCustomActionTypeRequest deleteCustomActionTypeRequest) {
ExecutionContext executionContext = createExecutionContext(deleteCustomActionTypeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteCustomActionTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteCustomActionTypeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteCustomActionType");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteCustomActionTypeResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified pipeline.
*
*
* @param deletePipelineRequest
* Represents the input of a DeletePipeline
action.
* @return Result of the DeletePipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.DeletePipeline
* @see AWS
* API Documentation
*/
@Override
public DeletePipelineResult deletePipeline(DeletePipelineRequest request) {
request = beforeClientExecution(request);
return executeDeletePipeline(request);
}
@SdkInternalApi
final DeletePipelineResult executeDeletePipeline(DeletePipelineRequest deletePipelineRequest) {
ExecutionContext executionContext = createExecutionContext(deletePipelineRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeletePipelineRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deletePipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeletePipeline");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeletePipelineResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a previously created webhook by name. Deleting the webhook stops AWS CodePipeline from starting a
* pipeline every time an external event occurs. The API returns successfully when trying to delete a webhook that
* is already deleted. If a deleted webhook is re-created by calling PutWebhook with the same name, it will have a
* different URL.
*
*
* @param deleteWebhookRequest
* @return Result of the DeleteWebhook operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.DeleteWebhook
* @see AWS API
* Documentation
*/
@Override
public DeleteWebhookResult deleteWebhook(DeleteWebhookRequest request) {
request = beforeClientExecution(request);
return executeDeleteWebhook(request);
}
@SdkInternalApi
final DeleteWebhookResult executeDeleteWebhook(DeleteWebhookRequest deleteWebhookRequest) {
ExecutionContext executionContext = createExecutionContext(deleteWebhookRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteWebhookRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteWebhookRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteWebhook");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteWebhookResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes the connection between the webhook that was created by CodePipeline and the external tool with events to
* be detected. Currently supported only for webhooks that target an action type of GitHub.
*
*
* @param deregisterWebhookWithThirdPartyRequest
* @return Result of the DeregisterWebhookWithThirdParty operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws WebhookNotFoundException
* The specified webhook was entered in an invalid format or cannot be found.
* @sample AWSCodePipeline.DeregisterWebhookWithThirdParty
* @see AWS API Documentation
*/
@Override
public DeregisterWebhookWithThirdPartyResult deregisterWebhookWithThirdParty(DeregisterWebhookWithThirdPartyRequest request) {
request = beforeClientExecution(request);
return executeDeregisterWebhookWithThirdParty(request);
}
@SdkInternalApi
final DeregisterWebhookWithThirdPartyResult executeDeregisterWebhookWithThirdParty(
DeregisterWebhookWithThirdPartyRequest deregisterWebhookWithThirdPartyRequest) {
ExecutionContext executionContext = createExecutionContext(deregisterWebhookWithThirdPartyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeregisterWebhookWithThirdPartyRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deregisterWebhookWithThirdPartyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeregisterWebhookWithThirdParty");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeregisterWebhookWithThirdPartyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Prevents artifacts in a pipeline from transitioning to the next stage in the pipeline.
*
*
* @param disableStageTransitionRequest
* Represents the input of a DisableStageTransition
action.
* @return Result of the DisableStageTransition operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws StageNotFoundException
* The stage was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.DisableStageTransition
* @see AWS API Documentation
*/
@Override
public DisableStageTransitionResult disableStageTransition(DisableStageTransitionRequest request) {
request = beforeClientExecution(request);
return executeDisableStageTransition(request);
}
@SdkInternalApi
final DisableStageTransitionResult executeDisableStageTransition(DisableStageTransitionRequest disableStageTransitionRequest) {
ExecutionContext executionContext = createExecutionContext(disableStageTransitionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisableStageTransitionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(disableStageTransitionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableStageTransition");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DisableStageTransitionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Enables artifacts in a pipeline to transition to a stage in a pipeline.
*
*
* @param enableStageTransitionRequest
* Represents the input of an EnableStageTransition
action.
* @return Result of the EnableStageTransition operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws StageNotFoundException
* The stage was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.EnableStageTransition
* @see AWS API Documentation
*/
@Override
public EnableStageTransitionResult enableStageTransition(EnableStageTransitionRequest request) {
request = beforeClientExecution(request);
return executeEnableStageTransition(request);
}
@SdkInternalApi
final EnableStageTransitionResult executeEnableStageTransition(EnableStageTransitionRequest enableStageTransitionRequest) {
ExecutionContext executionContext = createExecutionContext(enableStageTransitionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableStageTransitionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(enableStageTransitionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableStageTransition");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new EnableStageTransitionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns information about a job. Used for custom actions only.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts
* for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also
* returns any secret values defined for the action.
*
*
*
* @param getJobDetailsRequest
* Represents the input of a GetJobDetails
action.
* @return Result of the GetJobDetails operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.GetJobDetails
* @see AWS API
* Documentation
*/
@Override
public GetJobDetailsResult getJobDetails(GetJobDetailsRequest request) {
request = beforeClientExecution(request);
return executeGetJobDetails(request);
}
@SdkInternalApi
final GetJobDetailsResult executeGetJobDetails(GetJobDetailsRequest getJobDetailsRequest) {
ExecutionContext executionContext = createExecutionContext(getJobDetailsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetJobDetailsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getJobDetailsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetJobDetails");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetJobDetailsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns the metadata, structure, stages, and actions of a pipeline. Can be used to return the entire structure of
* a pipeline in JSON format, which can then be modified and used to update the pipeline structure with
* UpdatePipeline.
*
*
* @param getPipelineRequest
* Represents the input of a GetPipeline
action.
* @return Result of the GetPipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws PipelineVersionNotFoundException
* The pipeline version was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.GetPipeline
* @see AWS API
* Documentation
*/
@Override
public GetPipelineResult getPipeline(GetPipelineRequest request) {
request = beforeClientExecution(request);
return executeGetPipeline(request);
}
@SdkInternalApi
final GetPipelineResult executeGetPipeline(GetPipelineRequest getPipelineRequest) {
ExecutionContext executionContext = createExecutionContext(getPipelineRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPipelineRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getPipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetPipeline");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetPipelineResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns information about an execution of a pipeline, including details about artifacts, the pipeline execution
* ID, and the name, version, and status of the pipeline.
*
*
* @param getPipelineExecutionRequest
* Represents the input of a GetPipelineExecution
action.
* @return Result of the GetPipelineExecution operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws PipelineExecutionNotFoundException
* The pipeline execution was specified in an invalid format or cannot be found, or an execution ID does not
* belong to the specified pipeline.
* @sample AWSCodePipeline.GetPipelineExecution
* @see AWS API Documentation
*/
@Override
public GetPipelineExecutionResult getPipelineExecution(GetPipelineExecutionRequest request) {
request = beforeClientExecution(request);
return executeGetPipelineExecution(request);
}
@SdkInternalApi
final GetPipelineExecutionResult executeGetPipelineExecution(GetPipelineExecutionRequest getPipelineExecutionRequest) {
ExecutionContext executionContext = createExecutionContext(getPipelineExecutionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPipelineExecutionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getPipelineExecutionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetPipelineExecution");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetPipelineExecutionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns information about the state of a pipeline, including the stages and actions.
*
*
*
* Values returned in the revisionId
and revisionUrl
fields indicate the source revision
* information, such as the commit ID, for the current state.
*
*
*
* @param getPipelineStateRequest
* Represents the input of a GetPipelineState
action.
* @return Result of the GetPipelineState operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.GetPipelineState
* @see AWS
* API Documentation
*/
@Override
public GetPipelineStateResult getPipelineState(GetPipelineStateRequest request) {
request = beforeClientExecution(request);
return executeGetPipelineState(request);
}
@SdkInternalApi
final GetPipelineStateResult executeGetPipelineState(GetPipelineStateRequest getPipelineStateRequest) {
ExecutionContext executionContext = createExecutionContext(getPipelineStateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPipelineStateRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getPipelineStateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetPipelineState");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetPipelineStateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Requests the details of a job for a third party action. Used for partner actions only.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts
* for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also
* returns any secret values defined for the action.
*
*
*
* @param getThirdPartyJobDetailsRequest
* Represents the input of a GetThirdPartyJobDetails
action.
* @return Result of the GetThirdPartyJobDetails operation returned by the service.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @throws InvalidJobException
* The job was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.GetThirdPartyJobDetails
* @see AWS API Documentation
*/
@Override
public GetThirdPartyJobDetailsResult getThirdPartyJobDetails(GetThirdPartyJobDetailsRequest request) {
request = beforeClientExecution(request);
return executeGetThirdPartyJobDetails(request);
}
@SdkInternalApi
final GetThirdPartyJobDetailsResult executeGetThirdPartyJobDetails(GetThirdPartyJobDetailsRequest getThirdPartyJobDetailsRequest) {
ExecutionContext executionContext = createExecutionContext(getThirdPartyJobDetailsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetThirdPartyJobDetailsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(getThirdPartyJobDetailsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetThirdPartyJobDetails");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetThirdPartyJobDetailsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the action executions that have occurred in a pipeline.
*
*
* @param listActionExecutionsRequest
* @return Result of the ListActionExecutions operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @throws PipelineExecutionNotFoundException
* The pipeline execution was specified in an invalid format or cannot be found, or an execution ID does not
* belong to the specified pipeline.
* @sample AWSCodePipeline.ListActionExecutions
* @see AWS API Documentation
*/
@Override
public ListActionExecutionsResult listActionExecutions(ListActionExecutionsRequest request) {
request = beforeClientExecution(request);
return executeListActionExecutions(request);
}
@SdkInternalApi
final ListActionExecutionsResult executeListActionExecutions(ListActionExecutionsRequest listActionExecutionsRequest) {
ExecutionContext executionContext = createExecutionContext(listActionExecutionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListActionExecutionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listActionExecutionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListActionExecutions");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListActionExecutionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets a summary of all AWS CodePipeline action types associated with your account.
*
*
* @param listActionTypesRequest
* Represents the input of a ListActionTypes
action.
* @return Result of the ListActionTypes operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @sample AWSCodePipeline.ListActionTypes
* @see AWS
* API Documentation
*/
@Override
public ListActionTypesResult listActionTypes(ListActionTypesRequest request) {
request = beforeClientExecution(request);
return executeListActionTypes(request);
}
@SdkInternalApi
final ListActionTypesResult executeListActionTypes(ListActionTypesRequest listActionTypesRequest) {
ExecutionContext executionContext = createExecutionContext(listActionTypesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListActionTypesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listActionTypesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListActionTypes");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListActionTypesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets a summary of the most recent executions for a pipeline.
*
*
* @param listPipelineExecutionsRequest
* Represents the input of a ListPipelineExecutions
action.
* @return Result of the ListPipelineExecutions operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @sample AWSCodePipeline.ListPipelineExecutions
* @see AWS API Documentation
*/
@Override
public ListPipelineExecutionsResult listPipelineExecutions(ListPipelineExecutionsRequest request) {
request = beforeClientExecution(request);
return executeListPipelineExecutions(request);
}
@SdkInternalApi
final ListPipelineExecutionsResult executeListPipelineExecutions(ListPipelineExecutionsRequest listPipelineExecutionsRequest) {
ExecutionContext executionContext = createExecutionContext(listPipelineExecutionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPipelineExecutionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listPipelineExecutionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListPipelineExecutions");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListPipelineExecutionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets a summary of all of the pipelines associated with your account.
*
*
* @param listPipelinesRequest
* Represents the input of a ListPipelines
action.
* @return Result of the ListPipelines operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @sample AWSCodePipeline.ListPipelines
* @see AWS API
* Documentation
*/
@Override
public ListPipelinesResult listPipelines(ListPipelinesRequest request) {
request = beforeClientExecution(request);
return executeListPipelines(request);
}
@SdkInternalApi
final ListPipelinesResult executeListPipelines(ListPipelinesRequest listPipelinesRequest) {
ExecutionContext executionContext = createExecutionContext(listPipelinesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPipelinesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listPipelinesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListPipelines");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListPipelinesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets the set of key-value pairs (metadata) that are used to manage the resource.
*
*
* @param listTagsForResourceRequest
* @return Result of the ListTagsForResource operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ResourceNotFoundException
* The resource was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @throws InvalidArnException
* The specified resource ARN is invalid.
* @sample AWSCodePipeline.ListTagsForResource
* @see AWS API Documentation
*/
@Override
public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) {
request = beforeClientExecution(request);
return executeListTagsForResource(request);
}
@SdkInternalApi
final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) {
ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets a listing of all the webhooks in this AWS Region for this account. The output lists all webhooks and
* includes the webhook URL and ARN and the configuration for each webhook.
*
*
* @param listWebhooksRequest
* @return Result of the ListWebhooks operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that the next token you provide is the token
* returned by a previous call.
* @sample AWSCodePipeline.ListWebhooks
* @see AWS API
* Documentation
*/
@Override
public ListWebhooksResult listWebhooks(ListWebhooksRequest request) {
request = beforeClientExecution(request);
return executeListWebhooks(request);
}
@SdkInternalApi
final ListWebhooksResult executeListWebhooks(ListWebhooksRequest listWebhooksRequest) {
ExecutionContext executionContext = createExecutionContext(listWebhooksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListWebhooksRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listWebhooksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListWebhooks");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListWebhooksResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns information about any jobs for AWS CodePipeline to act on. PollForJobs
is valid only for
* action types with "Custom" in the owner field. If the action type contains "AWS" or "ThirdParty" in the owner
* field, the PollForJobs
action returns an error.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts
* for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also
* returns any secret values defined for the action.
*
*
*
* @param pollForJobsRequest
* Represents the input of a PollForJobs
action.
* @return Result of the PollForJobs operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ActionTypeNotFoundException
* The specified action type cannot be found.
* @sample AWSCodePipeline.PollForJobs
* @see AWS API
* Documentation
*/
@Override
public PollForJobsResult pollForJobs(PollForJobsRequest request) {
request = beforeClientExecution(request);
return executePollForJobs(request);
}
@SdkInternalApi
final PollForJobsResult executePollForJobs(PollForJobsRequest pollForJobsRequest) {
ExecutionContext executionContext = createExecutionContext(pollForJobsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PollForJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(pollForJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PollForJobs");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PollForJobsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Determines whether there are any third party jobs for a job worker to act on. Used for partner actions only.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts
* for the pipeline, if the action requires access to that S3 bucket for input or output artifacts.
*
*
*
* @param pollForThirdPartyJobsRequest
* Represents the input of a PollForThirdPartyJobs
action.
* @return Result of the PollForThirdPartyJobs operation returned by the service.
* @throws ActionTypeNotFoundException
* The specified action type cannot be found.
* @throws ValidationException
* The validation was specified in an invalid format.
* @sample AWSCodePipeline.PollForThirdPartyJobs
* @see AWS API Documentation
*/
@Override
public PollForThirdPartyJobsResult pollForThirdPartyJobs(PollForThirdPartyJobsRequest request) {
request = beforeClientExecution(request);
return executePollForThirdPartyJobs(request);
}
@SdkInternalApi
final PollForThirdPartyJobsResult executePollForThirdPartyJobs(PollForThirdPartyJobsRequest pollForThirdPartyJobsRequest) {
ExecutionContext executionContext = createExecutionContext(pollForThirdPartyJobsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PollForThirdPartyJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(pollForThirdPartyJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PollForThirdPartyJobs");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new PollForThirdPartyJobsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Provides information to AWS CodePipeline about new revisions to a source.
*
*
* @param putActionRevisionRequest
* Represents the input of a PutActionRevision
action.
* @return Result of the PutActionRevision operation returned by the service.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws StageNotFoundException
* The stage was specified in an invalid format or cannot be found.
* @throws ActionNotFoundException
* The specified action cannot be found.
* @throws ValidationException
* The validation was specified in an invalid format.
* @sample AWSCodePipeline.PutActionRevision
* @see AWS
* API Documentation
*/
@Override
public PutActionRevisionResult putActionRevision(PutActionRevisionRequest request) {
request = beforeClientExecution(request);
return executePutActionRevision(request);
}
@SdkInternalApi
final PutActionRevisionResult executePutActionRevision(PutActionRevisionRequest putActionRevisionRequest) {
ExecutionContext executionContext = createExecutionContext(putActionRevisionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutActionRevisionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putActionRevisionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutActionRevision");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutActionRevisionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Provides the response to a manual approval request to AWS CodePipeline. Valid responses include Approved and
* Rejected.
*
*
* @param putApprovalResultRequest
* Represents the input of a PutApprovalResult
action.
* @return Result of the PutApprovalResult operation returned by the service.
* @throws InvalidApprovalTokenException
* The approval request already received a response or has expired.
* @throws ApprovalAlreadyCompletedException
* The approval action has already been approved or rejected.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws StageNotFoundException
* The stage was specified in an invalid format or cannot be found.
* @throws ActionNotFoundException
* The specified action cannot be found.
* @throws ValidationException
* The validation was specified in an invalid format.
* @sample AWSCodePipeline.PutApprovalResult
* @see AWS
* API Documentation
*/
@Override
public PutApprovalResultResult putApprovalResult(PutApprovalResultRequest request) {
request = beforeClientExecution(request);
return executePutApprovalResult(request);
}
@SdkInternalApi
final PutApprovalResultResult executePutApprovalResult(PutApprovalResultRequest putApprovalResultRequest) {
ExecutionContext executionContext = createExecutionContext(putApprovalResultRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutApprovalResultRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putApprovalResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutApprovalResult");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutApprovalResultResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Represents the failure of a job as returned to the pipeline by a job worker. Used for custom actions only.
*
*
* @param putJobFailureResultRequest
* Represents the input of a PutJobFailureResult
action.
* @return Result of the PutJobFailureResult operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws InvalidJobStateException
* The job state was specified in an invalid format.
* @sample AWSCodePipeline.PutJobFailureResult
* @see AWS API Documentation
*/
@Override
public PutJobFailureResultResult putJobFailureResult(PutJobFailureResultRequest request) {
request = beforeClientExecution(request);
return executePutJobFailureResult(request);
}
@SdkInternalApi
final PutJobFailureResultResult executePutJobFailureResult(PutJobFailureResultRequest putJobFailureResultRequest) {
ExecutionContext executionContext = createExecutionContext(putJobFailureResultRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutJobFailureResultRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putJobFailureResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutJobFailureResult");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutJobFailureResultResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Represents the success of a job as returned to the pipeline by a job worker. Used for custom actions only.
*
*
* @param putJobSuccessResultRequest
* Represents the input of a PutJobSuccessResult
action.
* @return Result of the PutJobSuccessResult operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws InvalidJobStateException
* The job state was specified in an invalid format.
* @throws OutputVariablesSizeExceededException
* Exceeded the total size limit for all variables in the pipeline.
* @sample AWSCodePipeline.PutJobSuccessResult
* @see AWS API Documentation
*/
@Override
public PutJobSuccessResultResult putJobSuccessResult(PutJobSuccessResultRequest request) {
request = beforeClientExecution(request);
return executePutJobSuccessResult(request);
}
@SdkInternalApi
final PutJobSuccessResultResult executePutJobSuccessResult(PutJobSuccessResultRequest putJobSuccessResultRequest) {
ExecutionContext executionContext = createExecutionContext(putJobSuccessResultRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutJobSuccessResultRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putJobSuccessResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutJobSuccessResult");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutJobSuccessResultResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Represents the failure of a third party job as returned to the pipeline by a job worker. Used for partner actions
* only.
*
*
* @param putThirdPartyJobFailureResultRequest
* Represents the input of a PutThirdPartyJobFailureResult
action.
* @return Result of the PutThirdPartyJobFailureResult operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws InvalidJobStateException
* The job state was specified in an invalid format.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @sample AWSCodePipeline.PutThirdPartyJobFailureResult
* @see AWS API Documentation
*/
@Override
public PutThirdPartyJobFailureResultResult putThirdPartyJobFailureResult(PutThirdPartyJobFailureResultRequest request) {
request = beforeClientExecution(request);
return executePutThirdPartyJobFailureResult(request);
}
@SdkInternalApi
final PutThirdPartyJobFailureResultResult executePutThirdPartyJobFailureResult(PutThirdPartyJobFailureResultRequest putThirdPartyJobFailureResultRequest) {
ExecutionContext executionContext = createExecutionContext(putThirdPartyJobFailureResultRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutThirdPartyJobFailureResultRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(putThirdPartyJobFailureResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutThirdPartyJobFailureResult");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new PutThirdPartyJobFailureResultResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Represents the success of a third party job as returned to the pipeline by a job worker. Used for partner actions
* only.
*
*
* @param putThirdPartyJobSuccessResultRequest
* Represents the input of a PutThirdPartyJobSuccessResult
action.
* @return Result of the PutThirdPartyJobSuccessResult operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The job was specified in an invalid format or cannot be found.
* @throws InvalidJobStateException
* The job state was specified in an invalid format.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @sample AWSCodePipeline.PutThirdPartyJobSuccessResult
* @see AWS API Documentation
*/
@Override
public PutThirdPartyJobSuccessResultResult putThirdPartyJobSuccessResult(PutThirdPartyJobSuccessResultRequest request) {
request = beforeClientExecution(request);
return executePutThirdPartyJobSuccessResult(request);
}
@SdkInternalApi
final PutThirdPartyJobSuccessResultResult executePutThirdPartyJobSuccessResult(PutThirdPartyJobSuccessResultRequest putThirdPartyJobSuccessResultRequest) {
ExecutionContext executionContext = createExecutionContext(putThirdPartyJobSuccessResultRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutThirdPartyJobSuccessResultRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(putThirdPartyJobSuccessResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutThirdPartyJobSuccessResult");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new PutThirdPartyJobSuccessResultResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Defines a webhook and returns a unique webhook URL generated by CodePipeline. This URL can be supplied to third
* party source hosting providers to call every time there's a code change. When CodePipeline receives a POST
* request on this URL, the pipeline defined in the webhook is started as long as the POST request satisfied the
* authentication and filtering requirements supplied when defining the webhook. RegisterWebhookWithThirdParty and
* DeregisterWebhookWithThirdParty APIs can be used to automatically configure supported third parties to call the
* generated webhook URL.
*
*
* @param putWebhookRequest
* @return Result of the PutWebhook operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws LimitExceededException
* The number of pipelines associated with the AWS account has exceeded the limit allowed for the account.
* @throws InvalidWebhookFilterPatternException
* The specified event filter rule is in an invalid format.
* @throws InvalidWebhookAuthenticationParametersException
* The specified authentication type is in an invalid format.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws TooManyTagsException
* The tags limit for a resource has been exceeded.
* @throws InvalidTagsException
* The specified resource tags are invalid.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.PutWebhook
* @see AWS API
* Documentation
*/
@Override
public PutWebhookResult putWebhook(PutWebhookRequest request) {
request = beforeClientExecution(request);
return executePutWebhook(request);
}
@SdkInternalApi
final PutWebhookResult executePutWebhook(PutWebhookRequest putWebhookRequest) {
ExecutionContext executionContext = createExecutionContext(putWebhookRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PutWebhookRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putWebhookRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutWebhook");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutWebhookResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Configures a connection between the webhook that was created and the external tool with events to be detected.
*
*
* @param registerWebhookWithThirdPartyRequest
* @return Result of the RegisterWebhookWithThirdParty operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws WebhookNotFoundException
* The specified webhook was entered in an invalid format or cannot be found.
* @sample AWSCodePipeline.RegisterWebhookWithThirdParty
* @see AWS API Documentation
*/
@Override
public RegisterWebhookWithThirdPartyResult registerWebhookWithThirdParty(RegisterWebhookWithThirdPartyRequest request) {
request = beforeClientExecution(request);
return executeRegisterWebhookWithThirdParty(request);
}
@SdkInternalApi
final RegisterWebhookWithThirdPartyResult executeRegisterWebhookWithThirdParty(RegisterWebhookWithThirdPartyRequest registerWebhookWithThirdPartyRequest) {
ExecutionContext executionContext = createExecutionContext(registerWebhookWithThirdPartyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterWebhookWithThirdPartyRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(registerWebhookWithThirdPartyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RegisterWebhookWithThirdParty");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new RegisterWebhookWithThirdPartyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Resumes the pipeline execution by retrying the last failed actions in a stage. You can retry a stage immediately
* if any of the actions in the stage fail. When you retry, all actions that are still in progress continue working,
* and failed actions are triggered again.
*
*
* @param retryStageExecutionRequest
* Represents the input of a RetryStageExecution
action.
* @return Result of the RetryStageExecution operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConflictException
* Your request cannot be handled because the pipeline is busy handling ongoing activities. Try again later.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws StageNotFoundException
* The stage was specified in an invalid format or cannot be found.
* @throws StageNotRetryableException
* Unable to retry. The pipeline structure or stage state might have changed while actions awaited retry, or
* the stage contains no failed actions.
* @throws NotLatestPipelineExecutionException
* The stage has failed in a later run of the pipeline and the pipelineExecutionId associated with the
* request is out of date.
* @sample AWSCodePipeline.RetryStageExecution
* @see AWS API Documentation
*/
@Override
public RetryStageExecutionResult retryStageExecution(RetryStageExecutionRequest request) {
request = beforeClientExecution(request);
return executeRetryStageExecution(request);
}
@SdkInternalApi
final RetryStageExecutionResult executeRetryStageExecution(RetryStageExecutionRequest retryStageExecutionRequest) {
ExecutionContext executionContext = createExecutionContext(retryStageExecutionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RetryStageExecutionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(retryStageExecutionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RetryStageExecution");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RetryStageExecutionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Starts the specified pipeline. Specifically, it begins processing the latest commit to the source location
* specified as part of the pipeline.
*
*
* @param startPipelineExecutionRequest
* Represents the input of a StartPipelineExecution
action.
* @return Result of the StartPipelineExecution operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConflictException
* Your request cannot be handled because the pipeline is busy handling ongoing activities. Try again later.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @sample AWSCodePipeline.StartPipelineExecution
* @see AWS API Documentation
*/
@Override
public StartPipelineExecutionResult startPipelineExecution(StartPipelineExecutionRequest request) {
request = beforeClientExecution(request);
return executeStartPipelineExecution(request);
}
@SdkInternalApi
final StartPipelineExecutionResult executeStartPipelineExecution(StartPipelineExecutionRequest startPipelineExecutionRequest) {
ExecutionContext executionContext = createExecutionContext(startPipelineExecutionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StartPipelineExecutionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(startPipelineExecutionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartPipelineExecution");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new StartPipelineExecutionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Stops the specified pipeline execution. You choose to either stop the pipeline execution by completing
* in-progress actions without starting subsequent actions, or by abandoning in-progress actions. While completing
* or abandoning in-progress actions, the pipeline execution is in a Stopping
state. After all
* in-progress actions are completed or abandoned, the pipeline execution is in a Stopped
state.
*
*
* @param stopPipelineExecutionRequest
* @return Result of the StopPipelineExecution operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ConflictException
* Your request cannot be handled because the pipeline is busy handling ongoing activities. Try again later.
* @throws PipelineNotFoundException
* The pipeline was specified in an invalid format or cannot be found.
* @throws PipelineExecutionNotStoppableException
* Unable to stop the pipeline execution. The execution might already be in a Stopped
state, or
* it might no longer be in progress.
* @throws DuplicatedStopRequestException
* The pipeline execution is already in a Stopping
state. If you already chose to stop and
* wait, you cannot make that request again. You can choose to stop and abandon now, but be aware that this
* option can lead to failed tasks or out of sequence tasks. If you already chose to stop and abandon, you
* cannot make that request again.
* @sample AWSCodePipeline.StopPipelineExecution
* @see AWS API Documentation
*/
@Override
public StopPipelineExecutionResult stopPipelineExecution(StopPipelineExecutionRequest request) {
request = beforeClientExecution(request);
return executeStopPipelineExecution(request);
}
@SdkInternalApi
final StopPipelineExecutionResult executeStopPipelineExecution(StopPipelineExecutionRequest stopPipelineExecutionRequest) {
ExecutionContext executionContext = createExecutionContext(stopPipelineExecutionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StopPipelineExecutionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(stopPipelineExecutionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StopPipelineExecution");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new StopPipelineExecutionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.
*
*
* @param tagResourceRequest
* @return Result of the TagResource operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ResourceNotFoundException
* The resource was specified in an invalid format.
* @throws InvalidArnException
* The specified resource ARN is invalid.
* @throws TooManyTagsException
* The tags limit for a resource has been exceeded.
* @throws InvalidTagsException
* The specified resource tags are invalid.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.TagResource
* @see AWS API
* Documentation
*/
@Override
public TagResourceResult tagResource(TagResourceRequest request) {
request = beforeClientExecution(request);
return executeTagResource(request);
}
@SdkInternalApi
final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) {
ExecutionContext executionContext = createExecutionContext(tagResourceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes tags from an AWS resource.
*
*
* @param untagResourceRequest
* @return Result of the UntagResource operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws ResourceNotFoundException
* The resource was specified in an invalid format.
* @throws InvalidArnException
* The specified resource ARN is invalid.
* @throws InvalidTagsException
* The specified resource tags are invalid.
* @throws ConcurrentModificationException
* Unable to modify the tag due to a simultaneous update request.
* @sample AWSCodePipeline.UntagResource
* @see AWS API
* Documentation
*/
@Override
public UntagResourceResult untagResource(UntagResourceRequest request) {
request = beforeClientExecution(request);
return executeUntagResource(request);
}
@SdkInternalApi
final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) {
ExecutionContext executionContext = createExecutionContext(untagResourceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates a specified pipeline with edits or changes to its structure. Use a JSON file with the pipeline structure
* and UpdatePipeline
to provide the full structure of the pipeline. Updating the pipeline increases
* the version number of the pipeline by 1.
*
*
* @param updatePipelineRequest
* Represents the input of an UpdatePipeline
action.
* @return Result of the UpdatePipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidStageDeclarationException
* The stage declaration was specified in an invalid format.
* @throws InvalidActionDeclarationException
* The action declaration was specified in an invalid format.
* @throws InvalidBlockerDeclarationException
* Reserved for future use.
* @throws InvalidStructureException
* The structure was specified in an invalid format.
* @throws LimitExceededException
* The number of pipelines associated with the AWS account has exceeded the limit allowed for the account.
* @sample AWSCodePipeline.UpdatePipeline
* @see AWS
* API Documentation
*/
@Override
public UpdatePipelineResult updatePipeline(UpdatePipelineRequest request) {
request = beforeClientExecution(request);
return executeUpdatePipeline(request);
}
@SdkInternalApi
final UpdatePipelineResult executeUpdatePipeline(UpdatePipelineRequest updatePipelineRequest) {
ExecutionContext executionContext = createExecutionContext(updatePipelineRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdatePipelineRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updatePipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "CodePipeline");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdatePipeline");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdatePipelineResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* Returns additional metadata for a previously executed successful, request, typically used for debugging issues
* where a service isn't acting as expected. This data isn't considered part of the result data returned by an
* operation, so it's available through this separate, diagnostic interface.
*
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
return invoke(request, responseHandler, executionContext, null, null);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) {
executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait);
}
/**
* Invoke with no authentication. Credentials are not required and any credentials set on the client or request will
* be ignored for this operation.
**/
private Response anonymousInvoke(Request request,
HttpResponseHandler> responseHandler, ExecutionContext executionContext) {
return doInvoke(request, responseHandler, executionContext, null, null);
}
/**
* Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the
* ExecutionContext beforehand.
**/
private Response doInvoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) {
if (discoveredEndpoint != null) {
request.setEndpoint(discoveredEndpoint);
request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery");
} else if (uriFromEndpointTrait != null) {
request.setEndpoint(uriFromEndpointTrait);
} else {
request.setEndpoint(endpoint);
}
request.setTimeOffset(timeOffset);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
return client.execute(request, responseHandler, errorResponseHandler, executionContext);
}
@com.amazonaws.annotation.SdkInternalApi
static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() {
return protocolFactory;
}
@Override
public void shutdown() {
super.shutdown();
}
}