
com.amazonaws.services.codepipeline.AWSCodePipelineClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-codepipeline Show documentation
/*
* Copyright 2010-2016 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 java.util.Map.Entry;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
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.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 is only configurable through the API. For additional
* information, see the AWS
* CodePipeline User Guide.
*
*
* You can use the AWS CodePipeline API to work with pipelines, stages, actions,
* gates, and transitions, as described below.
*
*
* Pipelines are models of automated release processes. Each pipeline is
* uniquely named, and consists of actions, gates, and stages.
*
*
* 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 a pipeline structure.
*
* - GetPipelineState, which returns information about the current
* state of the stages and actions of a pipeline.
* - ListPipelines, which gets a summary of all of the pipelines
* associated with your account.
* - StartPipelineExecution, which runs the the most recent revision of
* an artifact through the pipeline.
* - UpdatePipeline, which updates a pipeline with edits or changes to
* the structure of the pipeline.
*
*
*
* Pipelines include stages, which are which are logical groupings of
* gates and actions. Each stage contains one or more actions that must complete
* before the next stage begins. A stage will result in success or failure. If a
* stage fails, then the pipeline stops at that stage and will remain stopped
* until either a new version of an artifact appears in the source location, or
* a user takes action to re-run 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, also refer to the AWS CodePipeline Pipeline Structure Reference.
*
*
* Pipeline stages include actions, which are categorized into categories
* such as source or build actions performed within 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.
*
*
* 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. In order to integrate with AWS CodePipeline, developers
* will 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
* upon,
* - PutJobFailureResult, which provides details of a job failure, and
* - 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 upon,
* - PutThirdPartyJobFailureResult, which provides details of a job
* failure, and
* - PutThirdPartyJobSuccessResult, which provides details of a job
* success.
*
*
*
*/
@ThreadSafe
public class AWSCodePipelineClient extends AmazonWebServiceClient implements
AWSCodePipeline {
/** Provider for AWS credentials. */
private 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";
/** The region metadata service name for computing region endpoints. */
private static final String DEFAULT_ENDPOINT_PREFIX = "codepipeline";
/**
* Client configuration factory providing ClientConfigurations tailored to
* this client
*/
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory(
new JsonClientMetadata()
.withProtocolVersion("1.1")
.withSupportsCbor(false)
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("ActionNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.ActionNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("JobNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.JobNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("LimitExceededException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.LimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("PipelineNameInUseException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.PipelineNameInUseException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidBlockerDeclarationException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidBlockerDeclarationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidStructureException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidStructureException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"PipelineVersionNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.PipelineVersionNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidStageDeclarationException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidStageDeclarationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("ValidationException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.ValidationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ActionTypeNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.ActionTypeNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("StageNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.StageNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidClientTokenException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidClientTokenException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidNonceException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidNonceException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidNextTokenException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidNextTokenException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("PipelineNotFoundException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.PipelineNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidJobException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidJobException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidJobStateException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidJobStateException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidActionDeclarationException")
.withModeledClass(
com.amazonaws.services.codepipeline.model.InvalidActionDeclarationException.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
*/
public AWSCodePipelineClient() {
this(new DefaultAWSCredentialsProviderChain(), 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
*/
public AWSCodePipelineClient(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), 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.
*/
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.).
*/
public AWSCodePipelineClient(AWSCredentials awsCredentials,
ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(
awsCredentials);
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.
*/
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.).
*/
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
*/
public AWSCodePipelineClient(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration,
RequestMetricCollector requestMetricCollector) {
super(clientConfiguration, requestMetricCollector);
this.awsCredentialsProvider = awsCredentialsProvider;
init();
}
private void init() {
setServiceNameIntern(DEFAULT_SIGNING_NAME);
setEndpointPrefix(DEFAULT_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"));
}
/**
*
* Returns information about a specified job and whether that job has been
* received by the job worker. Only used for custom actions.
*
*
*
* @param acknowledgeJobRequest
* Represents the input of an acknowledge job action.
* @return Result of the AcknowledgeJob operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNonceException
* The specified nonce was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @sample AWSCodePipeline.AcknowledgeJob
*/
@Override
public AcknowledgeJobResult acknowledgeJob(
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 AcknowledgeJobRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(acknowledgeJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for
* partner actions.
*
*
* @param acknowledgeThirdPartyJobRequest
* Represents the input of an acknowledge third party job action.
* @return Result of the AcknowledgeThirdPartyJob operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidNonceException
* The specified nonce was specified in an invalid format.
* @throws JobNotFoundException
* The specified 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
*/
@Override
public AcknowledgeThirdPartyJobResult acknowledgeThirdPartyJob(
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 AcknowledgeThirdPartyJobRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(acknowledgeThirdPartyJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 create custom action 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.
* @sample AWSCodePipeline.CreateCustomActionType
*/
@Override
public CreateCustomActionTypeResult createCustomActionType(
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 CreateCustomActionTypeRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createCustomActionTypeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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.
*
*
*
* @param createPipelineRequest
* Represents the input of a create pipeline 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 specified stage declaration was specified in an invalid
* format.
* @throws InvalidActionDeclarationException
* The specified action declaration was specified in an invalid
* format.
* @throws InvalidBlockerDeclarationException
* Reserved for future use.
* @throws InvalidStructureException
* The specified 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.CreatePipeline
*/
@Override
public CreatePipelineResult createPipeline(
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 CreatePipelineRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(createPipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 will
* fail after the action is marked for deletion. Only used for custom
* actions.
*
*
*
* You cannot recreate a custom action after it has been deleted unless you
* increase the version number of the action.
*
*
*
* @param deleteCustomActionTypeRequest
* Represents the input of a delete custom action 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.
* @sample AWSCodePipeline.DeleteCustomActionType
*/
@Override
public DeleteCustomActionTypeResult deleteCustomActionType(
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 DeleteCustomActionTypeRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteCustomActionTypeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 delete pipeline action.
* @return Result of the DeletePipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @sample AWSCodePipeline.DeletePipeline
*/
@Override
public DeletePipelineResult deletePipeline(
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 DeletePipelineRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(deletePipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* Prevents artifacts in a pipeline from transitioning to the next stage in
* the pipeline.
*
*
*
* @param disableStageTransitionRequest
* Represents the input of a disable stage transition input action.
* @return Result of the DisableStageTransition operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @throws StageNotFoundException
* The specified stage was specified in an invalid format or cannot
* be found.
* @sample AWSCodePipeline.DisableStageTransition
*/
@Override
public DisableStageTransitionResult disableStageTransition(
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 DisableStageTransitionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(disableStageTransitionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 enable stage transition action.
* @return Result of the EnableStageTransition operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @throws StageNotFoundException
* The specified stage was specified in an invalid format or cannot
* be found.
* @sample AWSCodePipeline.EnableStageTransition
*/
@Override
public EnableStageTransitionResult enableStageTransition(
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 EnableStageTransitionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(enableStageTransitionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for custom actions.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials
* for the Amazon S3 bucket used to store artifacts for the pipeline, if the
* action requires access to that Amazon S3 bucket for input or output
* artifacts. Additionally, this API returns any secret values defined for
* the action.
*
*
*
* @param getJobDetailsRequest
* Represents the input of a get job details action.
* @return Result of the GetJobDetails operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @sample AWSCodePipeline.GetJobDetails
*/
@Override
public GetJobDetailsResult getJobDetails(
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 GetJobDetailsRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(getJobDetailsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 get pipeline action.
* @return Result of the GetPipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @throws PipelineVersionNotFoundException
* The specified pipeline version was specified in an invalid format
* or cannot be found.
* @sample AWSCodePipeline.GetPipeline
*/
@Override
public GetPipelineResult getPipeline(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 GetPipelineRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(getPipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 the state of a pipeline, including the stages,
* actions, and details about the last run of the pipeline.
*
*
*
* @param getPipelineStateRequest
* Represents the input of a get pipeline state action.
* @return Result of the GetPipelineState operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @sample AWSCodePipeline.GetPipelineState
*/
@Override
public GetPipelineStateResult getPipelineState(
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 GetPipelineStateRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(getPipelineStateRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for
* partner actions.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials
* for the Amazon S3 bucket used to store artifacts for the pipeline, if the
* action requires access to that Amazon S3 bucket for input or output
* artifacts. Additionally, this API returns any secret values defined for
* the action.
*
*
*
* @param getThirdPartyJobDetailsRequest
* Represents the input of a get third party job details action.
* @return Result of the GetThirdPartyJobDetails operation returned by the
* service.
* @throws JobNotFoundException
* The specified 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 specified job was specified in an invalid format or cannot be
* found.
* @sample AWSCodePipeline.GetThirdPartyJobDetails
*/
@Override
public GetThirdPartyJobDetailsResult getThirdPartyJobDetails(
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 GetThirdPartyJobDetailsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getThirdPartyJobDetailsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* Gets a summary of all AWS CodePipeline action types associated with your
* account.
*
*
* @param listActionTypesRequest
* Represents the input of a list action types 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 provided is the token returned by a previous
* call.
* @sample AWSCodePipeline.ListActionTypes
*/
@Override
public ListActionTypesResult listActionTypes(
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 ListActionTypesRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(listActionTypesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 all of the pipelines associated with your account.
*
*
*
* @param listPipelinesRequest
* Represents the input of a list pipelines action.
* @return Result of the ListPipelines operation returned by the service.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format. Make sure that
* the next token you provided is the token returned by a previous
* call.
* @sample AWSCodePipeline.ListPipelines
*/
@Override
public ListPipelinesResult listPipelines(
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 ListPipelinesRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(listPipelinesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* Returns information about any jobs for AWS CodePipeline to act upon.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials
* for the Amazon S3 bucket used to store artifacts for the pipeline, if the
* action requires access to that Amazon S3 bucket for input or output
* artifacts. Additionally, this API returns any secret values defined for
* the action.
*
*
*
* @param pollForJobsRequest
* Represents the input of a poll for jobs 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
*/
@Override
public PollForJobsResult pollForJobs(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 PollForJobsRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(pollForJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for partner actions.
*
*
*
* When this API is called, AWS CodePipeline returns temporary credentials
* for the Amazon S3 bucket used to store artifacts for the pipeline, if the
* action requires access to that Amazon S3 bucket for input or output
* artifacts.
*
*
*
* @param pollForThirdPartyJobsRequest
* Represents the input of a poll for third party jobs 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
*/
@Override
public PollForThirdPartyJobsResult pollForThirdPartyJobs(
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 PollForThirdPartyJobsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(pollForThirdPartyJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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 put action revision action.
* @return Result of the PutActionRevision operation returned by the
* service.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @throws StageNotFoundException
* The specified 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
*/
@Override
public PutActionRevisionResult putActionRevision(
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 PutActionRevisionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(putActionRevisionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* Represents the failure of a job as returned to the pipeline by a job
* worker. Only used for custom actions.
*
*
* @param putJobFailureResultRequest
* Represents the input of a put job failure result action.
* @return Result of the PutJobFailureResult operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @throws InvalidJobStateException
* The specified job state was specified in an invalid format.
* @sample AWSCodePipeline.PutJobFailureResult
*/
@Override
public PutJobFailureResultResult putJobFailureResult(
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 PutJobFailureResultRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(putJobFailureResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for custom actions.
*
*
* @param putJobSuccessResultRequest
* Represents the input of a put job success result action.
* @return Result of the PutJobSuccessResult operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @throws InvalidJobStateException
* The specified job state was specified in an invalid format.
* @sample AWSCodePipeline.PutJobSuccessResult
*/
@Override
public PutJobSuccessResultResult putJobSuccessResult(
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 PutJobSuccessResultRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(putJobSuccessResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for partner actions.
*
*
* @param putThirdPartyJobFailureResultRequest
* Represents the input of a third party job failure result action.
* @return Result of the PutThirdPartyJobFailureResult operation returned by
* the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @throws InvalidJobStateException
* The specified job state was specified in an invalid format.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @sample AWSCodePipeline.PutThirdPartyJobFailureResult
*/
@Override
public PutThirdPartyJobFailureResultResult putThirdPartyJobFailureResult(
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 PutThirdPartyJobFailureResultRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(putThirdPartyJobFailureResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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. Only used for partner actions.
*
*
* @param putThirdPartyJobSuccessResultRequest
* Represents the input of a put third party job success result
* action.
* @return Result of the PutThirdPartyJobSuccessResult operation returned by
* the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws JobNotFoundException
* The specified job was specified in an invalid format or cannot be
* found.
* @throws InvalidJobStateException
* The specified job state was specified in an invalid format.
* @throws InvalidClientTokenException
* The client token was specified in an invalid format
* @sample AWSCodePipeline.PutThirdPartyJobSuccessResult
*/
@Override
public PutThirdPartyJobSuccessResultResult putThirdPartyJobSuccessResult(
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 PutThirdPartyJobSuccessResultRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(putThirdPartyJobSuccessResultRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* 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 start pipeline execution action.
* @return Result of the StartPipelineExecution operation returned by the
* service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws PipelineNotFoundException
* The specified pipeline was specified in an invalid format or
* cannot be found.
* @sample AWSCodePipeline.StartPipelineExecution
*/
@Override
public StartPipelineExecutionResult startPipelineExecution(
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 StartPipelineExecutionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(startPipelineExecutionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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);
}
}
/**
*
* Updates a specified pipeline with edits or changes to its structure. Use
* a JSON file with the pipeline structure in conjunction with
* 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 update pipeline action.
* @return Result of the UpdatePipeline operation returned by the service.
* @throws ValidationException
* The validation was specified in an invalid format.
* @throws InvalidStageDeclarationException
* The specified stage declaration was specified in an invalid
* format.
* @throws InvalidActionDeclarationException
* The specified action declaration was specified in an invalid
* format.
* @throws InvalidBlockerDeclarationException
* Reserved for future use.
* @throws InvalidStructureException
* The specified structure was specified in an invalid format.
* @sample AWSCodePipeline.UpdatePipeline
*/
@Override
public UpdatePipelineResult updatePipeline(
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 UpdatePipelineRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(updatePipelineRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} 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) {
executionContext.setCredentialsProvider(CredentialUtils
.getCredentialsProvider(request.getOriginalRequest(),
awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext);
}
/**
* 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);
}
/**
* 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) {
request.setEndpoint(endpoint);
request.setTimeOffset(timeOffset);
HttpResponseHandler errorResponseHandler = protocolFactory
.createErrorResponseHandler(new JsonErrorResponseMetadata());
return client.execute(request, responseHandler, errorResponseHandler,
executionContext);
}
}