com.amazonaws.services.codedeploy.AmazonCodeDeployClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-codedeploy 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.codedeploy;
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.codedeploy.model.*;
import com.amazonaws.services.codedeploy.model.transform.*;
/**
* Client for accessing CodeDeploy. All service calls made using this client are
* blocking, and will not return until the service call completes.
*
* AWS CodeDeploy Overview
*
* This reference guide provides descriptions of the AWS CodeDeploy APIs. For
* more information about AWS CodeDeploy, see the AWS CodeDeploy User
* Guide.
*
* Using the APIs
*
* You can use the AWS CodeDeploy APIs to work with the following:
*
*
* -
*
* Applications are unique identifiers used by AWS CodeDeploy to ensure the
* correct combinations of revisions, deployment configurations, and deployment
* groups are being referenced during deployments.
*
*
* You can use the AWS CodeDeploy APIs to create, delete, get, list, and update
* applications.
*
*
* -
*
* Deployment configurations are sets of deployment rules and success and
* failure conditions used by AWS CodeDeploy during deployments.
*
*
* You can use the AWS CodeDeploy APIs to create, delete, get, and list
* deployment configurations.
*
*
* -
*
* Deployment groups are groups of instances to which application revisions can
* be deployed.
*
*
* You can use the AWS CodeDeploy APIs to create, delete, get, list, and update
* deployment groups.
*
*
* -
*
* Instances represent Amazon EC2 instances to which application revisions are
* deployed. Instances are identified by their Amazon EC2 tags or Auto Scaling
* group names. Instances belong to deployment groups.
*
*
* You can use the AWS CodeDeploy APIs to get and list instance.
*
*
* -
*
* Deployments represent the process of deploying revisions to instances.
*
*
* You can use the AWS CodeDeploy APIs to create, get, list, and stop
* deployments.
*
*
* -
*
* Application revisions are archive files stored in Amazon S3 buckets or GitHub
* repositories. These revisions contain source content (such as source code,
* web pages, executable files, and deployment scripts) along with an
* application specification (AppSpec) file. (The AppSpec file is unique to AWS
* CodeDeploy; it defines the deployment actions you want AWS CodeDeploy to
* execute.) Ffor application revisions stored in Amazon S3 buckets, an
* application revision is uniquely identified by its Amazon S3 object key and
* its ETag, version, or both. For application revisions stored in GitHub
* repositories, an application revision is uniquely identified by its
* repository name and commit ID. Application revisions are deployed through
* deployment groups.
*
*
* You can use the AWS CodeDeploy APIs to get, list, and register application
* revisions.
*
*
*
*/
@ThreadSafe
public class AmazonCodeDeployClient extends AmazonWebServiceClient implements
AmazonCodeDeploy {
/** Provider for AWS credentials. */
private AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AmazonCodeDeploy.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "codedeploy";
/** The region metadata service name for computing region endpoints. */
private static final String DEFAULT_ENDPOINT_PREFIX = "codedeploy";
/**
* 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(
"DeploymentGroupLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentGroupLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("RoleRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.RoleRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceIdRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceIdRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidRegistrationStatusException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidRegistrationStatusException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidOperationException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidOperationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"BatchLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.BatchLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentConfigInUseException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentConfigInUseException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceNotRegisteredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceNotRegisteredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceNameRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceNameRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentConfigLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentConfigLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentConfigNameRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentConfigNameRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("RevisionRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.RevisionRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ApplicationNameRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.ApplicationNameRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ApplicationDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.ApplicationDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentGroupDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentGroupDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DescriptionTooLongException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DescriptionTooLongException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ApplicationLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.ApplicationLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidTriggerConfigException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidTriggerConfigException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"RevisionDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.RevisionDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidDeploymentConfigNameException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidDeploymentConfigNameException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidNextTokenException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidNextTokenException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidSortByException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidSortByException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("TagLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.TagLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentGroupNameRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentGroupNameRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentConfigDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentConfigDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"BucketNameFilterRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.BucketNameFilterRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidKeyPrefixFilterException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidKeyPrefixFilterException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidDeploymentGroupNameException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidDeploymentGroupNameException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentAlreadyCompletedException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentAlreadyCompletedException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidSortOrderException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidSortOrderException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidTagFilterException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidTagFilterException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"IamUserArnRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.IamUserArnRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidTimeRangeException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidTimeRangeException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidInstanceNameException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidInstanceNameException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"LifecycleHookLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.LifecycleHookLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidBucketNameFilterException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidBucketNameFilterException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidDeploymentStatusException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidDeploymentStatusException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentGroupAlreadyExistsException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentGroupAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidIamUserArnException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidIamUserArnException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("TagRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.TagRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"TriggerTargetsLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.TriggerTargetsLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidRoleException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidRoleException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidDeployedStateFilterException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidDeployedStateFilterException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidEC2TagException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidEC2TagException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ApplicationAlreadyExistsException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.ApplicationAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidMinimumHealthyHostValueException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidMinimumHealthyHostValueException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidTagException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidTagException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"IamUserArnAlreadyRegisteredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.IamUserArnAlreadyRegisteredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InstanceNameAlreadyRegisteredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InstanceNameAlreadyRegisteredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidDeploymentIdException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidDeploymentIdException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentIdRequiredException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentIdRequiredException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidInstanceStatusException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidInstanceStatusException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidRevisionException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidRevisionException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentConfigAlreadyExistsException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentConfigAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidAutoScalingGroupException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidAutoScalingGroupException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentDoesNotExistException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"InvalidApplicationNameException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.InvalidApplicationNameException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentNotStartedException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentNotStartedException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"DeploymentLimitExceededException")
.withModeledClass(
com.amazonaws.services.codedeploy.model.DeploymentLimitExceededException.class)));
/**
* Constructs a new client to invoke service methods on CodeDeploy. 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 AmazonCodeDeployClient() {
this(new DefaultAWSCredentialsProviderChain(), configFactory
.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodeDeploy. 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 CodeDeploy (ex: proxy settings, retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
*/
public AmazonCodeDeployClient(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), clientConfiguration);
}
/**
* Constructs a new client to invoke service methods on CodeDeploy 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 AmazonCodeDeployClient(AWSCredentials awsCredentials) {
this(awsCredentials, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodeDeploy 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 CodeDeploy (ex: proxy settings, retry counts, etc.).
*/
public AmazonCodeDeployClient(AWSCredentials awsCredentials,
ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(
awsCredentials);
init();
}
/**
* Constructs a new client to invoke service methods on CodeDeploy 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 AmazonCodeDeployClient(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on CodeDeploy 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 CodeDeploy (ex: proxy settings, retry counts, etc.).
*/
public AmazonCodeDeployClient(
AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, null);
}
/**
* Constructs a new client to invoke service methods on CodeDeploy 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 CodeDeploy (ex: proxy settings, retry counts, etc.).
* @param requestMetricCollector
* optional request metric collector
*/
public AmazonCodeDeployClient(
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://codedeploy.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s
.addAll(chainFactory
.newRequestHandlerChain("/com/amazonaws/services/codedeploy/request.handlers"));
requestHandler2s
.addAll(chainFactory
.newRequestHandler2Chain("/com/amazonaws/services/codedeploy/request.handler2s"));
}
/**
*
* Adds tags to on-premises instances.
*
*
* @param addTagsToOnPremisesInstancesRequest
* Represents the input of, and adds tags to, an on-premises instance
* operation.
* @return Result of the AddTagsToOnPremisesInstances operation returned by
* the service.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws TagRequiredException
* A tag was not specified.
* @throws InvalidTagException
* The specified tag was specified in an invalid format.
* @throws TagLimitExceededException
* The maximum allowed number of tags was exceeded.
* @throws InstanceLimitExceededException
* The maximum number of allowed on-premises instances in a single
* call was exceeded.
* @throws InstanceNotRegisteredException
* The specified on-premises instance is not registered.
* @sample AmazonCodeDeploy.AddTagsToOnPremisesInstances
*/
@Override
public AddTagsToOnPremisesInstancesResult addTagsToOnPremisesInstances(
AddTagsToOnPremisesInstancesRequest addTagsToOnPremisesInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(addTagsToOnPremisesInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AddTagsToOnPremisesInstancesRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(addTagsToOnPremisesInstancesRequest));
// 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 AddTagsToOnPremisesInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about one or more application revisions.
*
*
* @param batchGetApplicationRevisionsRequest
* Represents the input of a batch get application revisions
* operation.
* @return Result of the BatchGetApplicationRevisions operation returned by
* the service.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws RevisionRequiredException
* The revision ID was not specified.
* @throws InvalidRevisionException
* The revision was specified in an invalid format.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetApplicationRevisions
*/
@Override
public BatchGetApplicationRevisionsResult batchGetApplicationRevisions(
BatchGetApplicationRevisionsRequest batchGetApplicationRevisionsRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetApplicationRevisionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetApplicationRevisionsRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(batchGetApplicationRevisionsRequest));
// 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 BatchGetApplicationRevisionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about one or more applications.
*
*
* @param batchGetApplicationsRequest
* Represents the input of a batch get applications operation.
* @return Result of the BatchGetApplications operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetApplications
*/
@Override
public BatchGetApplicationsResult batchGetApplications(
BatchGetApplicationsRequest batchGetApplicationsRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetApplicationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetApplicationsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(batchGetApplicationsRequest));
// 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 BatchGetApplicationsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public BatchGetApplicationsResult batchGetApplications() {
return batchGetApplications(new BatchGetApplicationsRequest());
}
/**
*
* Get information about one or more deployment groups.
*
*
* @param batchGetDeploymentGroupsRequest
* Represents the input of a batch get deployment groups operation.
* @return Result of the BatchGetDeploymentGroups operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetDeploymentGroups
*/
@Override
public BatchGetDeploymentGroupsResult batchGetDeploymentGroups(
BatchGetDeploymentGroupsRequest batchGetDeploymentGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetDeploymentGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetDeploymentGroupsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(batchGetDeploymentGroupsRequest));
// 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 BatchGetDeploymentGroupsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about one or more instance that are part of a deployment
* group.
*
*
* @param batchGetDeploymentInstancesRequest
* Represents the input of a batch get deployment instances
* operation.
* @return Result of the BatchGetDeploymentInstances operation returned by
* the service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws DeploymentDoesNotExistException
* The deployment does not exist with the applicable IAM user or AWS
* account.
* @throws InstanceIdRequiredException
* The instance ID was not specified.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetDeploymentInstances
*/
@Override
public BatchGetDeploymentInstancesResult batchGetDeploymentInstances(
BatchGetDeploymentInstancesRequest batchGetDeploymentInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetDeploymentInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetDeploymentInstancesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(batchGetDeploymentInstancesRequest));
// 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 BatchGetDeploymentInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about one or more deployments.
*
*
* @param batchGetDeploymentsRequest
* Represents the input of a batch get deployments operation.
* @return Result of the BatchGetDeployments operation returned by the
* service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetDeployments
*/
@Override
public BatchGetDeploymentsResult batchGetDeployments(
BatchGetDeploymentsRequest batchGetDeploymentsRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetDeploymentsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetDeploymentsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(batchGetDeploymentsRequest));
// 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 BatchGetDeploymentsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public BatchGetDeploymentsResult batchGetDeployments() {
return batchGetDeployments(new BatchGetDeploymentsRequest());
}
/**
*
* Gets information about one or more on-premises instances.
*
*
* @param batchGetOnPremisesInstancesRequest
* Represents the input of a batch get on-premises instances
* operation.
* @return Result of the BatchGetOnPremisesInstances operation returned by
* the service.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @throws BatchLimitExceededException
* The maximum number of names or IDs allowed for this request (100)
* was exceeded.
* @sample AmazonCodeDeploy.BatchGetOnPremisesInstances
*/
@Override
public BatchGetOnPremisesInstancesResult batchGetOnPremisesInstances(
BatchGetOnPremisesInstancesRequest batchGetOnPremisesInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(batchGetOnPremisesInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BatchGetOnPremisesInstancesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(batchGetOnPremisesInstancesRequest));
// 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 BatchGetOnPremisesInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public BatchGetOnPremisesInstancesResult batchGetOnPremisesInstances() {
return batchGetOnPremisesInstances(new BatchGetOnPremisesInstancesRequest());
}
/**
*
* Creates an application.
*
*
* @param createApplicationRequest
* Represents the input of a create application operation.
* @return Result of the CreateApplication operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationAlreadyExistsException
* An application with the specified name already exists with the
* applicable IAM user or AWS account.
* @throws ApplicationLimitExceededException
* More applications were attempted to be created than are allowed.
* @sample AmazonCodeDeploy.CreateApplication
*/
@Override
public CreateApplicationResult createApplication(
CreateApplicationRequest createApplicationRequest) {
ExecutionContext executionContext = createExecutionContext(createApplicationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateApplicationRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createApplicationRequest));
// 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 CreateApplicationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deploys an application revision through the specified deployment group.
*
*
* @param createDeploymentRequest
* Represents the input of a create deployment operation.
* @return Result of the CreateDeployment operation returned by the service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws DeploymentGroupDoesNotExistException
* The named deployment group does not exist with the applicable IAM
* user or AWS account.
* @throws RevisionRequiredException
* The revision ID was not specified.
* @throws InvalidRevisionException
* The revision was specified in an invalid format.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigDoesNotExistException
* The deployment configuration does not exist with the applicable
* IAM user or AWS account.
* @throws DescriptionTooLongException
* The description is too long.
* @throws DeploymentLimitExceededException
* The number of allowed deployments was exceeded.
* @sample AmazonCodeDeploy.CreateDeployment
*/
@Override
public CreateDeploymentResult createDeployment(
CreateDeploymentRequest createDeploymentRequest) {
ExecutionContext executionContext = createExecutionContext(createDeploymentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDeploymentRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(createDeploymentRequest));
// 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 CreateDeploymentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a deployment configuration.
*
*
* @param createDeploymentConfigRequest
* Represents the input of a create deployment configuration
* operation.
* @return Result of the CreateDeploymentConfig operation returned by the
* service.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigNameRequiredException
* The deployment configuration name was not specified.
* @throws DeploymentConfigAlreadyExistsException
* A deployment configuration with the specified name already exists
* with the applicable IAM user or AWS account.
* @throws InvalidMinimumHealthyHostValueException
* The minimum healthy instance value was specified in an invalid
* format.
* @throws DeploymentConfigLimitExceededException
* The deployment configurations limit was exceeded.
* @sample AmazonCodeDeploy.CreateDeploymentConfig
*/
@Override
public CreateDeploymentConfigResult createDeploymentConfig(
CreateDeploymentConfigRequest createDeploymentConfigRequest) {
ExecutionContext executionContext = createExecutionContext(createDeploymentConfigRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDeploymentConfigRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createDeploymentConfigRequest));
// 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 CreateDeploymentConfigResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a deployment group to which application revisions will be
* deployed.
*
*
* @param createDeploymentGroupRequest
* Represents the input of a create deployment group operation.
* @return Result of the CreateDeploymentGroup operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws DeploymentGroupAlreadyExistsException
* A deployment group with the specified name already exists with
* the applicable IAM user or AWS account.
* @throws InvalidEC2TagException
* The tag was specified in an invalid format.
* @throws InvalidTagException
* The specified tag was specified in an invalid format.
* @throws InvalidAutoScalingGroupException
* The Auto Scaling group was specified in an invalid format or does
* not exist.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigDoesNotExistException
* The deployment configuration does not exist with the applicable
* IAM user or AWS account.
* @throws RoleRequiredException
* The role ID was not specified.
* @throws InvalidRoleException
* The service role ARN was specified in an invalid format. Or, if
* an Auto Scaling group was specified, the specified service role
* does not grant the appropriate permissions to Auto Scaling.
* @throws DeploymentGroupLimitExceededException
* The deployment groups limit was exceeded.
* @throws LifecycleHookLimitExceededException
* The limit for lifecycle hooks was exceeded.
* @throws InvalidTriggerConfigException
* The trigger was specified in an invalid format.
* @throws TriggerTargetsLimitExceededException
* The maximum allowed number of triggers was exceeded.
* @sample AmazonCodeDeploy.CreateDeploymentGroup
*/
@Override
public CreateDeploymentGroupResult createDeploymentGroup(
CreateDeploymentGroupRequest createDeploymentGroupRequest) {
ExecutionContext executionContext = createExecutionContext(createDeploymentGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDeploymentGroupRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createDeploymentGroupRequest));
// 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 CreateDeploymentGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes an application.
*
*
* @param deleteApplicationRequest
* Represents the input of a delete application operation.
* @return Result of the DeleteApplication operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @sample AmazonCodeDeploy.DeleteApplication
*/
@Override
public DeleteApplicationResult deleteApplication(
DeleteApplicationRequest deleteApplicationRequest) {
ExecutionContext executionContext = createExecutionContext(deleteApplicationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteApplicationRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteApplicationRequest));
// 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 DeleteApplicationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a deployment configuration.
*
* A deployment configuration cannot be deleted if it is currently in
* use. Predefined configurations cannot be deleted.
*
* @param deleteDeploymentConfigRequest
* Represents the input of a delete deployment configuration
* operation.
* @return Result of the DeleteDeploymentConfig operation returned by the
* service.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigNameRequiredException
* The deployment configuration name was not specified.
* @throws DeploymentConfigInUseException
* The deployment configuration is still in use.
* @throws InvalidOperationException
* An invalid operation was detected.
* @sample AmazonCodeDeploy.DeleteDeploymentConfig
*/
@Override
public DeleteDeploymentConfigResult deleteDeploymentConfig(
DeleteDeploymentConfigRequest deleteDeploymentConfigRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDeploymentConfigRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDeploymentConfigRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteDeploymentConfigRequest));
// 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 DeleteDeploymentConfigResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a deployment group.
*
*
* @param deleteDeploymentGroupRequest
* Represents the input of a delete deployment group operation.
* @return Result of the DeleteDeploymentGroup operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws InvalidRoleException
* The service role ARN was specified in an invalid format. Or, if
* an Auto Scaling group was specified, the specified service role
* does not grant the appropriate permissions to Auto Scaling.
* @sample AmazonCodeDeploy.DeleteDeploymentGroup
*/
@Override
public DeleteDeploymentGroupResult deleteDeploymentGroup(
DeleteDeploymentGroupRequest deleteDeploymentGroupRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDeploymentGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDeploymentGroupRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteDeploymentGroupRequest));
// 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 DeleteDeploymentGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deregisters an on-premises instance.
*
*
* @param deregisterOnPremisesInstanceRequest
* Represents the input of a deregister on-premises instance
* operation.
* @return Result of the DeregisterOnPremisesInstance operation returned by
* the service.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @sample AmazonCodeDeploy.DeregisterOnPremisesInstance
*/
@Override
public DeregisterOnPremisesInstanceResult deregisterOnPremisesInstance(
DeregisterOnPremisesInstanceRequest deregisterOnPremisesInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(deregisterOnPremisesInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeregisterOnPremisesInstanceRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(deregisterOnPremisesInstanceRequest));
// 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 DeregisterOnPremisesInstanceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about an application.
*
*
* @param getApplicationRequest
* Represents the input of a get application operation.
* @return Result of the GetApplication operation returned by the service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @sample AmazonCodeDeploy.GetApplication
*/
@Override
public GetApplicationResult getApplication(
GetApplicationRequest getApplicationRequest) {
ExecutionContext executionContext = createExecutionContext(getApplicationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetApplicationRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(getApplicationRequest));
// 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 GetApplicationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about an application revision.
*
*
* @param getApplicationRevisionRequest
* Represents the input of a get application revision operation.
* @return Result of the GetApplicationRevision operation returned by the
* service.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws RevisionDoesNotExistException
* The named revision does not exist with the applicable IAM user or
* AWS account.
* @throws RevisionRequiredException
* The revision ID was not specified.
* @throws InvalidRevisionException
* The revision was specified in an invalid format.
* @sample AmazonCodeDeploy.GetApplicationRevision
*/
@Override
public GetApplicationRevisionResult getApplicationRevision(
GetApplicationRevisionRequest getApplicationRevisionRequest) {
ExecutionContext executionContext = createExecutionContext(getApplicationRevisionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetApplicationRevisionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getApplicationRevisionRequest));
// 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 GetApplicationRevisionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about a deployment.
*
*
* @param getDeploymentRequest
* Represents the input of a get deployment operation.
* @return Result of the GetDeployment operation returned by the service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @throws DeploymentDoesNotExistException
* The deployment does not exist with the applicable IAM user or AWS
* account.
* @sample AmazonCodeDeploy.GetDeployment
*/
@Override
public GetDeploymentResult getDeployment(
GetDeploymentRequest getDeploymentRequest) {
ExecutionContext executionContext = createExecutionContext(getDeploymentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetDeploymentRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(getDeploymentRequest));
// 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 GetDeploymentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about a deployment configuration.
*
*
* @param getDeploymentConfigRequest
* Represents the input of a get deployment configuration operation.
* @return Result of the GetDeploymentConfig operation returned by the
* service.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigNameRequiredException
* The deployment configuration name was not specified.
* @throws DeploymentConfigDoesNotExistException
* The deployment configuration does not exist with the applicable
* IAM user or AWS account.
* @sample AmazonCodeDeploy.GetDeploymentConfig
*/
@Override
public GetDeploymentConfigResult getDeploymentConfig(
GetDeploymentConfigRequest getDeploymentConfigRequest) {
ExecutionContext executionContext = createExecutionContext(getDeploymentConfigRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetDeploymentConfigRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getDeploymentConfigRequest));
// 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 GetDeploymentConfigResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about a deployment group.
*
*
* @param getDeploymentGroupRequest
* Represents the input of a get deployment group operation.
* @return Result of the GetDeploymentGroup operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws DeploymentGroupDoesNotExistException
* The named deployment group does not exist with the applicable IAM
* user or AWS account.
* @sample AmazonCodeDeploy.GetDeploymentGroup
*/
@Override
public GetDeploymentGroupResult getDeploymentGroup(
GetDeploymentGroupRequest getDeploymentGroupRequest) {
ExecutionContext executionContext = createExecutionContext(getDeploymentGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetDeploymentGroupRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getDeploymentGroupRequest));
// 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 GetDeploymentGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about an instance as part of a deployment.
*
*
* @param getDeploymentInstanceRequest
* Represents the input of a get deployment instance operation.
* @return Result of the GetDeploymentInstance operation returned by the
* service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws DeploymentDoesNotExistException
* The deployment does not exist with the applicable IAM user or AWS
* account.
* @throws InstanceIdRequiredException
* The instance ID was not specified.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @throws InstanceDoesNotExistException
* The specified instance does not exist in the deployment group.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @sample AmazonCodeDeploy.GetDeploymentInstance
*/
@Override
public GetDeploymentInstanceResult getDeploymentInstance(
GetDeploymentInstanceRequest getDeploymentInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(getDeploymentInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetDeploymentInstanceRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getDeploymentInstanceRequest));
// 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 GetDeploymentInstanceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about an on-premises instance.
*
*
* @param getOnPremisesInstanceRequest
* Represents the input of a get on-premises instance operation.
* @return Result of the GetOnPremisesInstance operation returned by the
* service.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws InstanceNotRegisteredException
* The specified on-premises instance is not registered.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @sample AmazonCodeDeploy.GetOnPremisesInstance
*/
@Override
public GetOnPremisesInstanceResult getOnPremisesInstance(
GetOnPremisesInstanceRequest getOnPremisesInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(getOnPremisesInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetOnPremisesInstanceRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getOnPremisesInstanceRequest));
// 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 GetOnPremisesInstanceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists information about revisions for an application.
*
*
* @param listApplicationRevisionsRequest
* Represents the input of a list application revisions operation.
* @return Result of the ListApplicationRevisions operation returned by the
* service.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws InvalidSortByException
* The column name to sort by is either not present or was specified
* in an invalid format.
* @throws InvalidSortOrderException
* The sort order was specified in an invalid format.
* @throws InvalidBucketNameFilterException
* The bucket name either doesn't exist or was specified in an
* invalid format.
* @throws InvalidKeyPrefixFilterException
* The specified key prefix filter was specified in an invalid
* format.
* @throws BucketNameFilterRequiredException
* A bucket name is required, but was not provided.
* @throws InvalidDeployedStateFilterException
* The deployed state filter was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListApplicationRevisions
*/
@Override
public ListApplicationRevisionsResult listApplicationRevisions(
ListApplicationRevisionsRequest listApplicationRevisionsRequest) {
ExecutionContext executionContext = createExecutionContext(listApplicationRevisionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListApplicationRevisionsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listApplicationRevisionsRequest));
// 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 ListApplicationRevisionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the applications registered with the applicable IAM user or AWS
* account.
*
*
* @param listApplicationsRequest
* Represents the input of a list applications operation.
* @return Result of the ListApplications operation returned by the service.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListApplications
*/
@Override
public ListApplicationsResult listApplications(
ListApplicationsRequest listApplicationsRequest) {
ExecutionContext executionContext = createExecutionContext(listApplicationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListApplicationsRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(listApplicationsRequest));
// 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 ListApplicationsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListApplicationsResult listApplications() {
return listApplications(new ListApplicationsRequest());
}
/**
*
* Lists the deployment configurations with the applicable IAM user or AWS
* account.
*
*
* @param listDeploymentConfigsRequest
* Represents the input of a list deployment configurations
* operation.
* @return Result of the ListDeploymentConfigs operation returned by the
* service.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListDeploymentConfigs
*/
@Override
public ListDeploymentConfigsResult listDeploymentConfigs(
ListDeploymentConfigsRequest listDeploymentConfigsRequest) {
ExecutionContext executionContext = createExecutionContext(listDeploymentConfigsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDeploymentConfigsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listDeploymentConfigsRequest));
// 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 ListDeploymentConfigsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListDeploymentConfigsResult listDeploymentConfigs() {
return listDeploymentConfigs(new ListDeploymentConfigsRequest());
}
/**
*
* Lists the deployment groups for an application registered with the
* applicable IAM user or AWS account.
*
*
* @param listDeploymentGroupsRequest
* Represents the input of a list deployment groups operation.
* @return Result of the ListDeploymentGroups operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListDeploymentGroups
*/
@Override
public ListDeploymentGroupsResult listDeploymentGroups(
ListDeploymentGroupsRequest listDeploymentGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(listDeploymentGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDeploymentGroupsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listDeploymentGroupsRequest));
// 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 ListDeploymentGroupsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the instance for a deployment associated with the applicable IAM
* user or AWS account.
*
*
* @param listDeploymentInstancesRequest
* Represents the input of a list deployment instances operation.
* @return Result of the ListDeploymentInstances operation returned by the
* service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws DeploymentDoesNotExistException
* The deployment does not exist with the applicable IAM user or AWS
* account.
* @throws DeploymentNotStartedException
* The specified deployment has not started.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @throws InvalidInstanceStatusException
* The specified instance status does not exist.
* @sample AmazonCodeDeploy.ListDeploymentInstances
*/
@Override
public ListDeploymentInstancesResult listDeploymentInstances(
ListDeploymentInstancesRequest listDeploymentInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(listDeploymentInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDeploymentInstancesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listDeploymentInstancesRequest));
// 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 ListDeploymentInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the deployments in a deployment group for an application registered
* with the applicable IAM user or AWS account.
*
*
* @param listDeploymentsRequest
* Represents the input of a list deployments operation.
* @return Result of the ListDeployments operation returned by the service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws DeploymentGroupDoesNotExistException
* The named deployment group does not exist with the applicable IAM
* user or AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws InvalidTimeRangeException
* The specified time range was specified in an invalid format.
* @throws InvalidDeploymentStatusException
* The specified deployment status doesn't exist or cannot be
* determined.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListDeployments
*/
@Override
public ListDeploymentsResult listDeployments(
ListDeploymentsRequest listDeploymentsRequest) {
ExecutionContext executionContext = createExecutionContext(listDeploymentsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDeploymentsRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(listDeploymentsRequest));
// 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 ListDeploymentsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListDeploymentsResult listDeployments() {
return listDeployments(new ListDeploymentsRequest());
}
/**
*
* Gets a list of names for one or more on-premises instances.
*
*
* Unless otherwise specified, both registered and deregistered on-premises
* instance names will be listed. To list only registered or deregistered
* on-premises instance names, use the registration status parameter.
*
*
* @param listOnPremisesInstancesRequest
* Represents the input of a list on-premises instances operation.
* @return Result of the ListOnPremisesInstances operation returned by the
* service.
* @throws InvalidRegistrationStatusException
* The registration status was specified in an invalid format.
* @throws InvalidTagFilterException
* The specified tag filter was specified in an invalid format.
* @throws InvalidNextTokenException
* The next token was specified in an invalid format.
* @sample AmazonCodeDeploy.ListOnPremisesInstances
*/
@Override
public ListOnPremisesInstancesResult listOnPremisesInstances(
ListOnPremisesInstancesRequest listOnPremisesInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(listOnPremisesInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListOnPremisesInstancesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listOnPremisesInstancesRequest));
// 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 ListOnPremisesInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListOnPremisesInstancesResult listOnPremisesInstances() {
return listOnPremisesInstances(new ListOnPremisesInstancesRequest());
}
/**
*
* Registers with AWS CodeDeploy a revision for the specified application.
*
*
* @param registerApplicationRevisionRequest
* Represents the input of a register application revision operation.
* @return Result of the RegisterApplicationRevision operation returned by
* the service.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws DescriptionTooLongException
* The description is too long.
* @throws RevisionRequiredException
* The revision ID was not specified.
* @throws InvalidRevisionException
* The revision was specified in an invalid format.
* @sample AmazonCodeDeploy.RegisterApplicationRevision
*/
@Override
public RegisterApplicationRevisionResult registerApplicationRevision(
RegisterApplicationRevisionRequest registerApplicationRevisionRequest) {
ExecutionContext executionContext = createExecutionContext(registerApplicationRevisionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterApplicationRevisionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(registerApplicationRevisionRequest));
// 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 RegisterApplicationRevisionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Registers an on-premises instance.
*
*
* @param registerOnPremisesInstanceRequest
* Represents the input of the register on-premises instance
* operation.
* @return Result of the RegisterOnPremisesInstance operation returned by
* the service.
* @throws InstanceNameAlreadyRegisteredException
* The specified on-premises instance name is already registered.
* @throws IamUserArnAlreadyRegisteredException
* The specified IAM user ARN is already registered with an
* on-premises instance.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws IamUserArnRequiredException
* An IAM user ARN was not specified.
* @throws InvalidInstanceNameException
* The specified on-premises instance name was specified in an
* invalid format.
* @throws InvalidIamUserArnException
* The IAM user ARN was specified in an invalid format.
* @sample AmazonCodeDeploy.RegisterOnPremisesInstance
*/
@Override
public RegisterOnPremisesInstanceResult registerOnPremisesInstance(
RegisterOnPremisesInstanceRequest registerOnPremisesInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(registerOnPremisesInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterOnPremisesInstanceRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(registerOnPremisesInstanceRequest));
// 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 RegisterOnPremisesInstanceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes one or more tags from one or more on-premises instances.
*
*
* @param removeTagsFromOnPremisesInstancesRequest
* Represents the input of a remove tags from on-premises instances
* operation.
* @return Result of the RemoveTagsFromOnPremisesInstances operation
* returned by the service.
* @throws InstanceNameRequiredException
* An on-premises instance name was not specified.
* @throws TagRequiredException
* A tag was not specified.
* @throws InvalidTagException
* The specified tag was specified in an invalid format.
* @throws TagLimitExceededException
* The maximum allowed number of tags was exceeded.
* @throws InstanceLimitExceededException
* The maximum number of allowed on-premises instances in a single
* call was exceeded.
* @throws InstanceNotRegisteredException
* The specified on-premises instance is not registered.
* @sample AmazonCodeDeploy.RemoveTagsFromOnPremisesInstances
*/
@Override
public RemoveTagsFromOnPremisesInstancesResult removeTagsFromOnPremisesInstances(
RemoveTagsFromOnPremisesInstancesRequest removeTagsFromOnPremisesInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(removeTagsFromOnPremisesInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RemoveTagsFromOnPremisesInstancesRequestMarshaller(
protocolFactory)
.marshall(super
.beforeMarshalling(removeTagsFromOnPremisesInstancesRequest));
// 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 RemoveTagsFromOnPremisesInstancesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Attempts to stop an ongoing deployment.
*
*
* @param stopDeploymentRequest
* Represents the input of a stop deployment operation.
* @return Result of the StopDeployment operation returned by the service.
* @throws DeploymentIdRequiredException
* At least one deployment ID must be specified.
* @throws DeploymentDoesNotExistException
* The deployment does not exist with the applicable IAM user or AWS
* account.
* @throws DeploymentAlreadyCompletedException
* The deployment is already complete.
* @throws InvalidDeploymentIdException
* At least one of the deployment IDs was specified in an invalid
* format.
* @sample AmazonCodeDeploy.StopDeployment
*/
@Override
public StopDeploymentResult stopDeployment(
StopDeploymentRequest stopDeploymentRequest) {
ExecutionContext executionContext = createExecutionContext(stopDeploymentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StopDeploymentRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(stopDeploymentRequest));
// 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 StopDeploymentResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Changes the name of an application.
*
*
* @param updateApplicationRequest
* Represents the input of an update application operation.
* @return Result of the UpdateApplication operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationAlreadyExistsException
* An application with the specified name already exists with the
* applicable IAM user or AWS account.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @sample AmazonCodeDeploy.UpdateApplication
*/
@Override
public UpdateApplicationResult updateApplication(
UpdateApplicationRequest updateApplicationRequest) {
ExecutionContext executionContext = createExecutionContext(updateApplicationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateApplicationRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(updateApplicationRequest));
// 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 UpdateApplicationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public UpdateApplicationResult updateApplication() {
return updateApplication(new UpdateApplicationRequest());
}
/**
*
* Changes information about a deployment group.
*
*
* @param updateDeploymentGroupRequest
* Represents the input of an update deployment group operation.
* @return Result of the UpdateDeploymentGroup operation returned by the
* service.
* @throws ApplicationNameRequiredException
* The minimum number of required application names was not
* specified.
* @throws InvalidApplicationNameException
* The application name was specified in an invalid format.
* @throws ApplicationDoesNotExistException
* The application does not exist with the applicable IAM user or
* AWS account.
* @throws InvalidDeploymentGroupNameException
* The deployment group name was specified in an invalid format.
* @throws DeploymentGroupAlreadyExistsException
* A deployment group with the specified name already exists with
* the applicable IAM user or AWS account.
* @throws DeploymentGroupNameRequiredException
* The deployment group name was not specified.
* @throws DeploymentGroupDoesNotExistException
* The named deployment group does not exist with the applicable IAM
* user or AWS account.
* @throws InvalidEC2TagException
* The tag was specified in an invalid format.
* @throws InvalidTagException
* The specified tag was specified in an invalid format.
* @throws InvalidAutoScalingGroupException
* The Auto Scaling group was specified in an invalid format or does
* not exist.
* @throws InvalidDeploymentConfigNameException
* The deployment configuration name was specified in an invalid
* format.
* @throws DeploymentConfigDoesNotExistException
* The deployment configuration does not exist with the applicable
* IAM user or AWS account.
* @throws InvalidRoleException
* The service role ARN was specified in an invalid format. Or, if
* an Auto Scaling group was specified, the specified service role
* does not grant the appropriate permissions to Auto Scaling.
* @throws LifecycleHookLimitExceededException
* The limit for lifecycle hooks was exceeded.
* @throws InvalidTriggerConfigException
* The trigger was specified in an invalid format.
* @throws TriggerTargetsLimitExceededException
* The maximum allowed number of triggers was exceeded.
* @sample AmazonCodeDeploy.UpdateDeploymentGroup
*/
@Override
public UpdateDeploymentGroupResult updateDeploymentGroup(
UpdateDeploymentGroupRequest updateDeploymentGroupRequest) {
ExecutionContext executionContext = createExecutionContext(updateDeploymentGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateDeploymentGroupRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(updateDeploymentGroupRequest));
// 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 UpdateDeploymentGroupResultJsonUnmarshaller());
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);
}
}