/*
* Copyright 2018-2023 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.emrcontainers;
import javax.annotation.Generated;
import com.amazonaws.services.emrcontainers.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;
import java.util.concurrent.ExecutorService;
/**
* Client for accessing Amazon EMR Containers asynchronously. Each asynchronous method will return a Java Future object
* representing the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive
* notification when an asynchronous operation completes.
*
*
* Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run open-source big data frameworks
* on Amazon Elastic Kubernetes Service (Amazon EKS). With this deployment option, you can focus on running analytics
* workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications. For more
* information about Amazon EMR on EKS concepts and tasks, see What is shared
* id="EMR-EKS"/>.
*
*
* Amazon EMR containers is the API name for Amazon EMR on EKS. The emr-containers
prefix is used in
* the following scenarios:
*
*
* -
*
* It is the prefix in the CLI commands for Amazon EMR on EKS. For example,
* aws emr-containers start-job-run
.
*
*
* -
*
* It is the prefix before IAM policy actions for Amazon EMR on EKS. For example,
* "Action": [ "emr-containers:StartJobRun"]
. For more information, see Policy actions for Amazon EMR on EKS.
*
*
* -
*
* It is the prefix used in Amazon EMR on EKS service endpoints. For example,
* emr-containers.us-east-2.amazonaws.com
. For more information, see Amazon EMR on EKSService Endpoints.
*
*
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AmazonEMRContainersAsyncClient extends AmazonEMRContainersClient implements AmazonEMRContainersAsync {
private static final int DEFAULT_THREAD_POOL_SIZE = 50;
private final java.util.concurrent.ExecutorService executorService;
public static AmazonEMRContainersAsyncClientBuilder asyncBuilder() {
return AmazonEMRContainersAsyncClientBuilder.standard();
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon EMR Containers using the specified
* parameters.
*
* @param asyncClientParams
* Object providing client parameters.
*/
AmazonEMRContainersAsyncClient(AwsAsyncClientParams asyncClientParams) {
this(asyncClientParams, false);
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon EMR Containers using the specified
* parameters.
*
* @param asyncClientParams
* Object providing client parameters.
* @param endpointDiscoveryEnabled
* true will enable endpoint discovery if the service supports it.
*/
AmazonEMRContainersAsyncClient(AwsAsyncClientParams asyncClientParams, boolean endpointDiscoveryEnabled) {
super(asyncClientParams, endpointDiscoveryEnabled);
this.executorService = asyncClientParams.getExecutor();
}
/**
* Returns the executor service used by this client to execute async requests.
*
* @return The executor service used by this client to execute async requests.
*/
public ExecutorService getExecutorService() {
return executorService;
}
@Override
public java.util.concurrent.Future cancelJobRunAsync(CancelJobRunRequest request) {
return cancelJobRunAsync(request, null);
}
@Override
public java.util.concurrent.Future cancelJobRunAsync(final CancelJobRunRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CancelJobRunRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CancelJobRunResult call() throws Exception {
CancelJobRunResult result = null;
try {
result = executeCancelJobRun(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future createJobTemplateAsync(CreateJobTemplateRequest request) {
return createJobTemplateAsync(request, null);
}
@Override
public java.util.concurrent.Future createJobTemplateAsync(final CreateJobTemplateRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CreateJobTemplateRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CreateJobTemplateResult call() throws Exception {
CreateJobTemplateResult result = null;
try {
result = executeCreateJobTemplate(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future createManagedEndpointAsync(CreateManagedEndpointRequest request) {
return createManagedEndpointAsync(request, null);
}
@Override
public java.util.concurrent.Future createManagedEndpointAsync(final CreateManagedEndpointRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CreateManagedEndpointRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CreateManagedEndpointResult call() throws Exception {
CreateManagedEndpointResult result = null;
try {
result = executeCreateManagedEndpoint(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future createVirtualClusterAsync(CreateVirtualClusterRequest request) {
return createVirtualClusterAsync(request, null);
}
@Override
public java.util.concurrent.Future createVirtualClusterAsync(final CreateVirtualClusterRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CreateVirtualClusterRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CreateVirtualClusterResult call() throws Exception {
CreateVirtualClusterResult result = null;
try {
result = executeCreateVirtualCluster(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future deleteJobTemplateAsync(DeleteJobTemplateRequest request) {
return deleteJobTemplateAsync(request, null);
}
@Override
public java.util.concurrent.Future deleteJobTemplateAsync(final DeleteJobTemplateRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DeleteJobTemplateRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DeleteJobTemplateResult call() throws Exception {
DeleteJobTemplateResult result = null;
try {
result = executeDeleteJobTemplate(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future deleteManagedEndpointAsync(DeleteManagedEndpointRequest request) {
return deleteManagedEndpointAsync(request, null);
}
@Override
public java.util.concurrent.Future deleteManagedEndpointAsync(final DeleteManagedEndpointRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DeleteManagedEndpointRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DeleteManagedEndpointResult call() throws Exception {
DeleteManagedEndpointResult result = null;
try {
result = executeDeleteManagedEndpoint(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future deleteVirtualClusterAsync(DeleteVirtualClusterRequest request) {
return deleteVirtualClusterAsync(request, null);
}
@Override
public java.util.concurrent.Future deleteVirtualClusterAsync(final DeleteVirtualClusterRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DeleteVirtualClusterRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DeleteVirtualClusterResult call() throws Exception {
DeleteVirtualClusterResult result = null;
try {
result = executeDeleteVirtualCluster(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeJobRunAsync(DescribeJobRunRequest request) {
return describeJobRunAsync(request, null);
}
@Override
public java.util.concurrent.Future describeJobRunAsync(final DescribeJobRunRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeJobRunRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeJobRunResult call() throws Exception {
DescribeJobRunResult result = null;
try {
result = executeDescribeJobRun(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeJobTemplateAsync(DescribeJobTemplateRequest request) {
return describeJobTemplateAsync(request, null);
}
@Override
public java.util.concurrent.Future describeJobTemplateAsync(final DescribeJobTemplateRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeJobTemplateRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeJobTemplateResult call() throws Exception {
DescribeJobTemplateResult result = null;
try {
result = executeDescribeJobTemplate(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeManagedEndpointAsync(DescribeManagedEndpointRequest request) {
return describeManagedEndpointAsync(request, null);
}
@Override
public java.util.concurrent.Future describeManagedEndpointAsync(final DescribeManagedEndpointRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeManagedEndpointRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeManagedEndpointResult call() throws Exception {
DescribeManagedEndpointResult result = null;
try {
result = executeDescribeManagedEndpoint(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeVirtualClusterAsync(DescribeVirtualClusterRequest request) {
return describeVirtualClusterAsync(request, null);
}
@Override
public java.util.concurrent.Future describeVirtualClusterAsync(final DescribeVirtualClusterRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeVirtualClusterRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeVirtualClusterResult call() throws Exception {
DescribeVirtualClusterResult result = null;
try {
result = executeDescribeVirtualCluster(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future getManagedEndpointSessionCredentialsAsync(
GetManagedEndpointSessionCredentialsRequest request) {
return getManagedEndpointSessionCredentialsAsync(request, null);
}
@Override
public java.util.concurrent.Future getManagedEndpointSessionCredentialsAsync(
final GetManagedEndpointSessionCredentialsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetManagedEndpointSessionCredentialsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetManagedEndpointSessionCredentialsResult call() throws Exception {
GetManagedEndpointSessionCredentialsResult result = null;
try {
result = executeGetManagedEndpointSessionCredentials(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listJobRunsAsync(ListJobRunsRequest request) {
return listJobRunsAsync(request, null);
}
@Override
public java.util.concurrent.Future listJobRunsAsync(final ListJobRunsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListJobRunsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListJobRunsResult call() throws Exception {
ListJobRunsResult result = null;
try {
result = executeListJobRuns(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listJobTemplatesAsync(ListJobTemplatesRequest request) {
return listJobTemplatesAsync(request, null);
}
@Override
public java.util.concurrent.Future listJobTemplatesAsync(final ListJobTemplatesRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListJobTemplatesRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListJobTemplatesResult call() throws Exception {
ListJobTemplatesResult result = null;
try {
result = executeListJobTemplates(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listManagedEndpointsAsync(ListManagedEndpointsRequest request) {
return listManagedEndpointsAsync(request, null);
}
@Override
public java.util.concurrent.Future listManagedEndpointsAsync(final ListManagedEndpointsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListManagedEndpointsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListManagedEndpointsResult call() throws Exception {
ListManagedEndpointsResult result = null;
try {
result = executeListManagedEndpoints(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listTagsForResourceAsync(ListTagsForResourceRequest request) {
return listTagsForResourceAsync(request, null);
}
@Override
public java.util.concurrent.Future listTagsForResourceAsync(final ListTagsForResourceRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListTagsForResourceRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListTagsForResourceResult call() throws Exception {
ListTagsForResourceResult result = null;
try {
result = executeListTagsForResource(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listVirtualClustersAsync(ListVirtualClustersRequest request) {
return listVirtualClustersAsync(request, null);
}
@Override
public java.util.concurrent.Future listVirtualClustersAsync(final ListVirtualClustersRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListVirtualClustersRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListVirtualClustersResult call() throws Exception {
ListVirtualClustersResult result = null;
try {
result = executeListVirtualClusters(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future startJobRunAsync(StartJobRunRequest request) {
return startJobRunAsync(request, null);
}
@Override
public java.util.concurrent.Future startJobRunAsync(final StartJobRunRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final StartJobRunRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public StartJobRunResult call() throws Exception {
StartJobRunResult result = null;
try {
result = executeStartJobRun(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future tagResourceAsync(TagResourceRequest request) {
return tagResourceAsync(request, null);
}
@Override
public java.util.concurrent.Future tagResourceAsync(final TagResourceRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final TagResourceRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public TagResourceResult call() throws Exception {
TagResourceResult result = null;
try {
result = executeTagResource(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future untagResourceAsync(UntagResourceRequest request) {
return untagResourceAsync(request, null);
}
@Override
public java.util.concurrent.Future untagResourceAsync(final UntagResourceRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final UntagResourceRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public UntagResourceResult call() throws Exception {
UntagResourceResult result = null;
try {
result = executeUntagResource(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
/**
* Shuts down the client, releasing all managed resources. This includes forcibly terminating all pending
* asynchronous service calls. Clients who wish to give pending asynchronous service calls time to complete should
* call {@code getExecutorService().shutdown()} followed by {@code getExecutorService().awaitTermination()} prior to
* calling this method.
*/
@Override
public void shutdown() {
super.shutdown();
executorService.shutdownNow();
}
}