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

com.amazonaws.services.batch.AWSBatchClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Batch module holds the client classes that are used for communicating with AWS Batch.

There is a newer version: 1.12.772
Show newest version
/*
 * Copyright 2019-2024 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.batch;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;

import javax.annotation.Generated;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;

import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;

import com.amazonaws.services.batch.AWSBatchClientBuilder;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.batch.model.*;

import com.amazonaws.services.batch.model.transform.*;

/**
 * Client for accessing AWS Batch. All service calls made using this client are blocking, and will not return until the
 * service call completes.
 * 

* Batch *

* Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common * means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the * advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required * infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to * efficiently provision resources, and work toward eliminating capacity constraints, reducing your overall compute * costs, and delivering results more quickly. *

*

* As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions * compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. * With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing * results and solving your specific problems instead. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSBatchClient extends AmazonWebServiceClient implements AWSBatch { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSBatch.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "batch"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("application/json") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ServerException").withExceptionUnmarshaller( com.amazonaws.services.batch.model.transform.ServerExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ClientException").withExceptionUnmarshaller( com.amazonaws.services.batch.model.transform.ClientExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.batch.model.AWSBatchException.class)); /** * Constructs a new client to invoke service methods on AWS Batch. A credentials provider chain will be used that * searches for credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AWSBatchClientBuilder#defaultClient()} */ @Deprecated public AWSBatchClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Batch. 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 AWS Batch (ex: proxy settings, * retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AWSBatchClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSBatchClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on AWS Batch using the specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @deprecated use {@link AWSBatchClientBuilder#withCredentials(AWSCredentialsProvider)} for example: * {@code AWSBatchClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AWSBatchClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Batch 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 AWS Batch (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSBatchClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSBatchClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSBatchClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); this.advancedConfig = AdvancedConfig.EMPTY; init(); } /** * Constructs a new client to invoke service methods on AWS Batch using the specified AWS account credentials * provider. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @deprecated use {@link AWSBatchClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AWSBatchClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Batch 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 AWS Batch (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSBatchClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSBatchClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSBatchClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on AWS Batch 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 AWS Batch (ex: proxy settings, * retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AWSBatchClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSBatchClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AWSBatchClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AWSBatchClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; this.advancedConfig = AdvancedConfig.EMPTY; init(); } public static AWSBatchClientBuilder builder() { return AWSBatchClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWS Batch using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSBatchClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on AWS Batch using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSBatchClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("batch.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/batch/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/batch/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are * canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job * queue. Then the job status is updated to FAILED. *

* *

* A PENDING job is canceled after all dependency jobs are completed. Therefore, it may take longer * than expected to cancel a job in PENDING status. *

*

* When you try to cancel an array parent job in PENDING, Batch attempts to cancel all child jobs. The * array parent job is canceled when all child jobs are completed. *

*
*

* Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API * operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob * operation. *

* * @param cancelJobRequest * Contains the parameters for CancelJob. * @return Result of the CancelJob operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.CancelJob * @see AWS API * Documentation */ @Override public CancelJobResult cancelJob(CancelJobRequest request) { request = beforeClientExecution(request); return executeCancelJob(request); } @SdkInternalApi final CancelJobResult executeCancelJob(CancelJobRequest cancelJobRequest) { ExecutionContext executionContext = createExecutionContext(cancelJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CancelJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(cancelJobRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CancelJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new CancelJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Batch compute environment. You can create MANAGED or UNMANAGED compute * environments. MANAGED compute environments can use Amazon EC2 or Fargate resources. * UNMANAGED compute environments can only use EC2 resources. *

*

* In a managed compute environment, Batch manages the capacity and instance types of the compute resources within * the environment. This is based on the compute resource specification that you define or the launch template that you * specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 * Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can * optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a * specified percentage of the On-Demand price. *

* *

* Multi-node parallel jobs aren't supported on Spot Instances. *

*
*

* In an unmanaged compute environment, you can manage your own EC2 compute resources and have flexibility with how * you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of * your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container * instance AMIs in the Amazon Elastic Container Service Developer Guide. After you created your * unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon * ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For * more information, see Launching an * Amazon ECS container instance in the Amazon Elastic Container Service Developer Guide. *

* *

* To create a compute environment that uses EKS resources, the caller must have permissions to call * eks:DescribeCluster. *

*
*

* Batch doesn't automatically upgrade the AMIs in a compute environment after it's created. For example, it also * doesn't update the AMIs in your compute environment when a newer version of the Amazon ECS optimized AMI is * available. You're responsible for the management of the guest operating system. This includes any updates and * security patches. You're also responsible for any additional application software or utilities that you install * on the compute resources. There are two ways to use a new AMI for your Batch jobs. The original method is to * complete these steps: *

*
    *
  1. *

    * Create a new compute environment with the new AMI. *

    *
  2. *
  3. *

    * Add the compute environment to an existing job queue. *

    *
  4. *
  5. *

    * Remove the earlier compute environment from your job queue. *

    *
  6. *
  7. *

    * Delete the earlier compute environment. *

    *
  8. *
*

* In April 2022, Batch added enhanced support for updating compute environments. For more information, see Updating compute * environments. To use the enhanced updating of compute environments to update AMIs, follow these rules: *

*
    *
  • *

    * Either don't set the service role (serviceRole) parameter or set it to the * AWSBatchServiceRole service-linked role. *

    *
  • *
  • *

    * Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE, * SPOT_CAPACITY_OPTIMIZED, or SPOT_PRICE_CAPACITY_OPTIMIZED. *

    *
  • *
  • *

    * Set the update to latest image version (updateToLatestImageVersion) parameter to true. * The updateToLatestImageVersion parameter is used when you update a compute environment. This * parameter is ignored when you create a compute environment. *

    *
  • *
  • *

    * Don't specify an AMI ID in imageId, imageIdOverride (in * ec2Configuration ), or in the launch template (launchTemplate). In that case, Batch * selects the latest Amazon ECS optimized AMI that's supported by Batch at the time the infrastructure update is * initiated. Alternatively, you can specify the AMI ID in the imageId or imageIdOverride * parameters, or the launch template identified by the LaunchTemplate properties. Changing any of * these properties starts an infrastructure update. If the AMI ID is specified in the launch template, it can't be * replaced by specifying an AMI ID in either the imageId or imageIdOverride parameters. * It can only be replaced by specifying a different launch template, or if the launch template version is set to * $Default or $Latest, by setting either a new default version for the launch template * (if $Default) or by adding a new version to the launch template (if $Latest). *

    *
  • *
*

* If these rules are followed, any update that starts an infrastructure update causes the AMI ID to be re-selected. * If the version setting in the launch template (launchTemplate) is set to * $Latest or $Default, the latest or default version of the launch template is evaluated * up at the time of the infrastructure update, even if the launchTemplate wasn't updated. *

*
* * @param createComputeEnvironmentRequest * Contains the parameters for CreateComputeEnvironment. * @return Result of the CreateComputeEnvironment operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.CreateComputeEnvironment * @see AWS * API Documentation */ @Override public CreateComputeEnvironmentResult createComputeEnvironment(CreateComputeEnvironmentRequest request) { request = beforeClientExecution(request); return executeCreateComputeEnvironment(request); } @SdkInternalApi final CreateComputeEnvironmentResult executeCreateComputeEnvironment(CreateComputeEnvironmentRequest createComputeEnvironmentRequest) { ExecutionContext executionContext = createExecutionContext(createComputeEnvironmentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateComputeEnvironmentRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createComputeEnvironmentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateComputeEnvironment"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateComputeEnvironmentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Batch job queue. When you create a job queue, you associate one or more compute environments to the * queue and assign an order of preference for the compute environments. *

*

* You also set a priority to the job queue that determines the order that the Batch scheduler places jobs onto its * associated compute environments. For example, if a compute environment is associated with more than one job * queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment. *

* * @param createJobQueueRequest * Contains the parameters for CreateJobQueue. * @return Result of the CreateJobQueue operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.CreateJobQueue * @see AWS API * Documentation */ @Override public CreateJobQueueResult createJobQueue(CreateJobQueueRequest request) { request = beforeClientExecution(request); return executeCreateJobQueue(request); } @SdkInternalApi final CreateJobQueueResult executeCreateJobQueue(CreateJobQueueRequest createJobQueueRequest) { ExecutionContext executionContext = createExecutionContext(createJobQueueRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateJobQueueRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createJobQueueRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateJobQueue"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateJobQueueResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Batch scheduling policy. *

* * @param createSchedulingPolicyRequest * Contains the parameters for CreateSchedulingPolicy. * @return Result of the CreateSchedulingPolicy operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.CreateSchedulingPolicy * @see AWS * API Documentation */ @Override public CreateSchedulingPolicyResult createSchedulingPolicy(CreateSchedulingPolicyRequest request) { request = beforeClientExecution(request); return executeCreateSchedulingPolicy(request); } @SdkInternalApi final CreateSchedulingPolicyResult executeCreateSchedulingPolicy(CreateSchedulingPolicyRequest createSchedulingPolicyRequest) { ExecutionContext executionContext = createExecutionContext(createSchedulingPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSchedulingPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createSchedulingPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSchedulingPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSchedulingPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an Batch compute environment. *

*

* Before you can delete a compute environment, you must set its state to DISABLED with the * UpdateComputeEnvironment API operation and disassociate it from any job queues with the * UpdateJobQueue API operation. Compute environments that use Fargate resources must terminate all active * jobs on that compute environment before deleting the compute environment. If this isn't done, the compute * environment enters an invalid state. *

* * @param deleteComputeEnvironmentRequest * Contains the parameters for DeleteComputeEnvironment. * @return Result of the DeleteComputeEnvironment operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DeleteComputeEnvironment * @see AWS * API Documentation */ @Override public DeleteComputeEnvironmentResult deleteComputeEnvironment(DeleteComputeEnvironmentRequest request) { request = beforeClientExecution(request); return executeDeleteComputeEnvironment(request); } @SdkInternalApi final DeleteComputeEnvironmentResult executeDeleteComputeEnvironment(DeleteComputeEnvironmentRequest deleteComputeEnvironmentRequest) { ExecutionContext executionContext = createExecutionContext(deleteComputeEnvironmentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteComputeEnvironmentRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteComputeEnvironmentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteComputeEnvironment"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteComputeEnvironmentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue * operation. All jobs in the queue are eventually terminated when you delete a job queue. The jobs are terminated * at a rate of about 16 jobs each second. *

*

* It's not necessary to disassociate compute environments from a queue before submitting a * DeleteJobQueue request. *

* * @param deleteJobQueueRequest * Contains the parameters for DeleteJobQueue. * @return Result of the DeleteJobQueue operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DeleteJobQueue * @see AWS API * Documentation */ @Override public DeleteJobQueueResult deleteJobQueue(DeleteJobQueueRequest request) { request = beforeClientExecution(request); return executeDeleteJobQueue(request); } @SdkInternalApi final DeleteJobQueueResult executeDeleteJobQueue(DeleteJobQueueRequest deleteJobQueueRequest) { ExecutionContext executionContext = createExecutionContext(deleteJobQueueRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteJobQueueRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteJobQueueRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteJobQueue"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteJobQueueResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified scheduling policy. *

*

* You can't delete a scheduling policy that's used in any job queues. *

* * @param deleteSchedulingPolicyRequest * Contains the parameters for DeleteSchedulingPolicy. * @return Result of the DeleteSchedulingPolicy operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DeleteSchedulingPolicy * @see AWS * API Documentation */ @Override public DeleteSchedulingPolicyResult deleteSchedulingPolicy(DeleteSchedulingPolicyRequest request) { request = beforeClientExecution(request); return executeDeleteSchedulingPolicy(request); } @SdkInternalApi final DeleteSchedulingPolicyResult executeDeleteSchedulingPolicy(DeleteSchedulingPolicyRequest deleteSchedulingPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteSchedulingPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSchedulingPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteSchedulingPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSchedulingPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSchedulingPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deregisters an Batch job definition. Job definitions are permanently deleted after 180 days. *

* * @param deregisterJobDefinitionRequest * @return Result of the DeregisterJobDefinition operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DeregisterJobDefinition * @see AWS * API Documentation */ @Override public DeregisterJobDefinitionResult deregisterJobDefinition(DeregisterJobDefinitionRequest request) { request = beforeClientExecution(request); return executeDeregisterJobDefinition(request); } @SdkInternalApi final DeregisterJobDefinitionResult executeDeregisterJobDefinition(DeregisterJobDefinitionRequest deregisterJobDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(deregisterJobDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeregisterJobDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deregisterJobDefinitionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeregisterJobDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeregisterJobDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your compute environments. *

*

* If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment * operation to determine the ecsClusterArn that you launch your Amazon ECS container instances into. *

* * @param describeComputeEnvironmentsRequest * Contains the parameters for DescribeComputeEnvironments. * @return Result of the DescribeComputeEnvironments operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DescribeComputeEnvironments * @see AWS API Documentation */ @Override public DescribeComputeEnvironmentsResult describeComputeEnvironments(DescribeComputeEnvironmentsRequest request) { request = beforeClientExecution(request); return executeDescribeComputeEnvironments(request); } @SdkInternalApi final DescribeComputeEnvironmentsResult executeDescribeComputeEnvironments(DescribeComputeEnvironmentsRequest describeComputeEnvironmentsRequest) { ExecutionContext executionContext = createExecutionContext(describeComputeEnvironmentsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeComputeEnvironmentsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeComputeEnvironmentsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeComputeEnvironments"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeComputeEnvironmentsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes a list of job definitions. You can specify a status (such as ACTIVE) to only * return job definitions that match that status. *

* * @param describeJobDefinitionsRequest * Contains the parameters for DescribeJobDefinitions. * @return Result of the DescribeJobDefinitions operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DescribeJobDefinitions * @see AWS * API Documentation */ @Override public DescribeJobDefinitionsResult describeJobDefinitions(DescribeJobDefinitionsRequest request) { request = beforeClientExecution(request); return executeDescribeJobDefinitions(request); } @SdkInternalApi final DescribeJobDefinitionsResult executeDescribeJobDefinitions(DescribeJobDefinitionsRequest describeJobDefinitionsRequest) { ExecutionContext executionContext = createExecutionContext(describeJobDefinitionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeJobDefinitionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeJobDefinitionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeJobDefinitions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeJobDefinitionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your job queues. *

* * @param describeJobQueuesRequest * Contains the parameters for DescribeJobQueues. * @return Result of the DescribeJobQueues operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DescribeJobQueues * @see AWS API * Documentation */ @Override public DescribeJobQueuesResult describeJobQueues(DescribeJobQueuesRequest request) { request = beforeClientExecution(request); return executeDescribeJobQueues(request); } @SdkInternalApi final DescribeJobQueuesResult executeDescribeJobQueues(DescribeJobQueuesRequest describeJobQueuesRequest) { ExecutionContext executionContext = createExecutionContext(describeJobQueuesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeJobQueuesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeJobQueuesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeJobQueues"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeJobQueuesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes a list of Batch jobs. *

* * @param describeJobsRequest * Contains the parameters for DescribeJobs. * @return Result of the DescribeJobs operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DescribeJobs * @see AWS API * Documentation */ @Override public DescribeJobsResult describeJobs(DescribeJobsRequest request) { request = beforeClientExecution(request); return executeDescribeJobs(request); } @SdkInternalApi final DescribeJobsResult executeDescribeJobs(DescribeJobsRequest describeJobsRequest) { ExecutionContext executionContext = createExecutionContext(describeJobsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeJobsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeJobs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeJobsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your scheduling policies. *

* * @param describeSchedulingPoliciesRequest * Contains the parameters for DescribeSchedulingPolicies. * @return Result of the DescribeSchedulingPolicies operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.DescribeSchedulingPolicies * @see AWS API Documentation */ @Override public DescribeSchedulingPoliciesResult describeSchedulingPolicies(DescribeSchedulingPoliciesRequest request) { request = beforeClientExecution(request); return executeDescribeSchedulingPolicies(request); } @SdkInternalApi final DescribeSchedulingPoliciesResult executeDescribeSchedulingPolicies(DescribeSchedulingPoliciesRequest describeSchedulingPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(describeSchedulingPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSchedulingPoliciesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeSchedulingPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeSchedulingPolicies"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeSchedulingPoliciesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides a list of the first 100 RUNNABLE jobs associated to a single job queue. *

* * @param getJobQueueSnapshotRequest * @return Result of the GetJobQueueSnapshot operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.GetJobQueueSnapshot * @see AWS API * Documentation */ @Override public GetJobQueueSnapshotResult getJobQueueSnapshot(GetJobQueueSnapshotRequest request) { request = beforeClientExecution(request); return executeGetJobQueueSnapshot(request); } @SdkInternalApi final GetJobQueueSnapshotResult executeGetJobQueueSnapshot(GetJobQueueSnapshotRequest getJobQueueSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(getJobQueueSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetJobQueueSnapshotRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getJobQueueSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetJobQueueSnapshot"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetJobQueueSnapshotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of Batch jobs. *

*

* You must specify only one of the following items: *

*
    *
  • *

    * A job queue ID to return a list of jobs in that job queue *

    *
  • *
  • *

    * A multi-node parallel job ID to return a list of nodes for that job *

    *
  • *
  • *

    * An array job ID to return a list of the children for that job *

    *
  • *
*

* You can filter the results by job status with the jobStatus parameter. If you don't specify a * status, only RUNNING jobs are returned. *

* * @param listJobsRequest * Contains the parameters for ListJobs. * @return Result of the ListJobs operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.ListJobs * @see AWS API * Documentation */ @Override public ListJobsResult listJobs(ListJobsRequest request) { request = beforeClientExecution(request); return executeListJobs(request); } @SdkInternalApi final ListJobsResult executeListJobs(ListJobsRequest listJobsRequest) { ExecutionContext executionContext = createExecutionContext(listJobsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listJobsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListJobs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListJobsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of Batch scheduling policies. *

* * @param listSchedulingPoliciesRequest * Contains the parameters for ListSchedulingPolicies. * @return Result of the ListSchedulingPolicies operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.ListSchedulingPolicies * @see AWS * API Documentation */ @Override public ListSchedulingPoliciesResult listSchedulingPolicies(ListSchedulingPoliciesRequest request) { request = beforeClientExecution(request); return executeListSchedulingPolicies(request); } @SdkInternalApi final ListSchedulingPoliciesResult executeListSchedulingPolicies(ListSchedulingPoliciesRequest listSchedulingPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(listSchedulingPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSchedulingPoliciesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listSchedulingPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSchedulingPolicies"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSchedulingPoliciesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the tags for an Batch resource. Batch resources that support tags are compute environments, jobs, job * definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs * aren't supported. *

* * @param listTagsForResourceRequest * Contains the parameters for ListTagsForResource. * @return Result of the ListTagsForResource operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.ListTagsForResource * @see AWS API * Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Registers an Batch job definition. *

* * @param registerJobDefinitionRequest * Contains the parameters for RegisterJobDefinition. * @return Result of the RegisterJobDefinition operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.RegisterJobDefinition * @see AWS * API Documentation */ @Override public RegisterJobDefinitionResult registerJobDefinition(RegisterJobDefinitionRequest request) { request = beforeClientExecution(request); return executeRegisterJobDefinition(request); } @SdkInternalApi final RegisterJobDefinitionResult executeRegisterJobDefinition(RegisterJobDefinitionRequest registerJobDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(registerJobDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RegisterJobDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(registerJobDefinitionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RegisterJobDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RegisterJobDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Submits an Batch job from a job definition. Parameters that are specified during SubmitJob override * parameters defined in the job definition. vCPU and memory requirements that are specified in the * resourceRequirements objects in the job definition are the exception. They can't be overridden this * way using the memory and vcpus parameters. Rather, you must specify updates to job * definition parameters in a resourceRequirements object that's included in the * containerOverrides parameter. *

* *

* Job queues with a scheduling policy are limited to 500 active fair share identifiers at a time. *

*
*

* Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14 * days, Fargate resources might become unavailable and job might be terminated. *

*
* * @param submitJobRequest * Contains the parameters for SubmitJob. * @return Result of the SubmitJob operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.SubmitJob * @see AWS API * Documentation */ @Override public SubmitJobResult submitJob(SubmitJobRequest request) { request = beforeClientExecution(request); return executeSubmitJob(request); } @SdkInternalApi final SubmitJobResult executeSubmitJob(SubmitJobRequest submitJobRequest) { ExecutionContext executionContext = createExecutionContext(submitJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SubmitJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(submitJobRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "SubmitJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new SubmitJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates the specified tags to a resource with the specified resourceArn. If existing tags on a * resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags * that are associated with that resource are deleted as well. Batch resources that support tags are compute * environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and * multi-node parallel (MNP) jobs aren't supported. *

* * @param tagResourceRequest * Contains the parameters for TagResource. * @return Result of the TagResource operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.TagResource * @see AWS API * Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are * terminated, which causes them to transition to FAILED. Jobs that have not progressed to the * STARTING state are cancelled. *

* * @param terminateJobRequest * Contains the parameters for TerminateJob. * @return Result of the TerminateJob operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.TerminateJob * @see AWS API * Documentation */ @Override public TerminateJobResult terminateJob(TerminateJobRequest request) { request = beforeClientExecution(request); return executeTerminateJob(request); } @SdkInternalApi final TerminateJobResult executeTerminateJob(TerminateJobRequest terminateJobRequest) { ExecutionContext executionContext = createExecutionContext(terminateJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TerminateJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(terminateJobRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TerminateJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TerminateJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes specified tags from an Batch resource. *

* * @param untagResourceRequest * Contains the parameters for UntagResource. * @return Result of the UntagResource operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates an Batch compute environment. *

* * @param updateComputeEnvironmentRequest * Contains the parameters for UpdateComputeEnvironment. * @return Result of the UpdateComputeEnvironment operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.UpdateComputeEnvironment * @see AWS * API Documentation */ @Override public UpdateComputeEnvironmentResult updateComputeEnvironment(UpdateComputeEnvironmentRequest request) { request = beforeClientExecution(request); return executeUpdateComputeEnvironment(request); } @SdkInternalApi final UpdateComputeEnvironmentResult executeUpdateComputeEnvironment(UpdateComputeEnvironmentRequest updateComputeEnvironmentRequest) { ExecutionContext executionContext = createExecutionContext(updateComputeEnvironmentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateComputeEnvironmentRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateComputeEnvironmentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateComputeEnvironment"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateComputeEnvironmentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates a job queue. *

* * @param updateJobQueueRequest * Contains the parameters for UpdateJobQueue. * @return Result of the UpdateJobQueue operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.UpdateJobQueue * @see AWS API * Documentation */ @Override public UpdateJobQueueResult updateJobQueue(UpdateJobQueueRequest request) { request = beforeClientExecution(request); return executeUpdateJobQueue(request); } @SdkInternalApi final UpdateJobQueueResult executeUpdateJobQueue(UpdateJobQueueRequest updateJobQueueRequest) { ExecutionContext executionContext = createExecutionContext(updateJobQueueRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateJobQueueRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateJobQueueRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateJobQueue"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateJobQueueResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates a scheduling policy. *

* * @param updateSchedulingPolicyRequest * Contains the parameters for UpdateSchedulingPolicy. * @return Result of the UpdateSchedulingPolicy operation returned by the service. * @throws ClientException * These errors are usually caused by a client action. One example cause is using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying * an identifier that's not valid. * @throws ServerException * These errors are usually caused by a server issue. * @sample AWSBatch.UpdateSchedulingPolicy * @see AWS * API Documentation */ @Override public UpdateSchedulingPolicyResult updateSchedulingPolicy(UpdateSchedulingPolicyRequest request) { request = beforeClientExecution(request); return executeUpdateSchedulingPolicy(request); } @SdkInternalApi final UpdateSchedulingPolicyResult executeUpdateSchedulingPolicy(UpdateSchedulingPolicyRequest updateSchedulingPolicyRequest) { ExecutionContext executionContext = createExecutionContext(updateSchedulingPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSchedulingPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateSchedulingPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Batch"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSchedulingPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSchedulingPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy