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

com.amazonaws.services.importexport.AmazonImportExportAsyncClient Maven / Gradle / Ivy

/*
 * Copyright 2010-2011 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.importexport;
            
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;

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


/**
 * Client for accessing AmazonImportExport.  All calls made
 * using this client are non-blocking and will immediately return a Java Future.
 * Callers must use the Future object to determine when the service call has actually
 * completed.
 * AWS Import/Export Service 

* AWS Import/Export accelerates transferring large amounts of data * between the AWS cloud and portable storage devices that you mail to * us. AWS Import/Export transfers data directly onto and off of your * storage devices using Amazon's high-speed internal network and * bypassing the Internet. For large data sets, AWS Import/Export is * often faster than Internet transfer and more cost effective than * upgrading your connectivity. *

*/ public class AmazonImportExportAsyncClient extends AmazonImportExportClient implements AmazonImportExportAsync { /** * Executor service for executing asynchronous requests. */ private ExecutorService executorService; /** * Constructs a new asynchronous client to invoke service methods on * AmazonImportExport using the specified AWS account credentials. * Default client settings will be used, and a default cached thread pool will be * created for executing the asynchronous tasks. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. */ public AmazonImportExportAsyncClient(AWSCredentials awsCredentials) { this(awsCredentials, Executors.newCachedThreadPool()); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonImportExport using the specified AWS account credentials * and executor service. Default client settings will be used. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonImportExportAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService) { super(awsCredentials); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * AmazonImportExport using the specified AWS account credentials, * executor service, and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy * settings, etc). * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonImportExportAsyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService) { super(awsCredentials, clientConfiguration); this.executorService = executorService; } /** * Returns the executor service used by this async client to execute * requests. * * @return The executor service used by this async client to execute * requests. */ public ExecutorService getExecutorService() { return executorService; } /** *

* This operation initiates the process of scheduling an upload or * download of your data. You include in the request a manifest that * describes the data transfer specifics. The response to the request * includes a job ID, which you can use in other operations, a signature * that you use to identify your storage device, and the address where * you should ship your storage device. *

* * @param createJobRequest Container for the necessary parameters to * execute the CreateJob operation on AmazonImportExport. * * @return A Java Future object containing the response from the * CreateJob service method, as returned by AmazonImportExport. * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonImportExport indicating * either a problem with the data in the request, or a server side issue. */ public Future createJobAsync(final CreateJobRequest createJobRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreateJobResult call() throws Exception { return createJob(createJobRequest); } }); } /** *

* This operation cancels a specified job. Only the job owner can cancel * it. The operation fails if the job has already started or is complete. *

* * @param cancelJobRequest Container for the necessary parameters to * execute the CancelJob operation on AmazonImportExport. * * @return A Java Future object containing the response from the * CancelJob service method, as returned by AmazonImportExport. * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonImportExport indicating * either a problem with the data in the request, or a server side issue. */ public Future cancelJobAsync(final CancelJobRequest cancelJobRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CancelJobResult call() throws Exception { return cancelJob(cancelJobRequest); } }); } /** *

* This operation returns information about a job, including where the * job is in the processing pipeline, the status of the results, and the * signature value associated with the job. You can only return * information about jobs you own. *

* * @param getStatusRequest Container for the necessary parameters to * execute the GetStatus operation on AmazonImportExport. * * @return A Java Future object containing the response from the * GetStatus service method, as returned by AmazonImportExport. * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonImportExport indicating * either a problem with the data in the request, or a server side issue. */ public Future getStatusAsync(final GetStatusRequest getStatusRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetStatusResult call() throws Exception { return getStatus(getStatusRequest); } }); } /** *

* This operation returns the jobs associated with the requester. AWS * Import/Export lists the jobs in reverse chronological order based on * the date of creation. For example if Job Test1 was created 2009Dec30 * and Test2 was created 2010Feb05, the ListJobs operation would return * Test2 followed by Test1. *

* * @param listJobsRequest Container for the necessary parameters to * execute the ListJobs operation on AmazonImportExport. * * @return A Java Future object containing the response from the ListJobs * service method, as returned by AmazonImportExport. * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonImportExport indicating * either a problem with the data in the request, or a server side issue. */ public Future listJobsAsync(final ListJobsRequest listJobsRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListJobsResult call() throws Exception { return listJobs(listJobsRequest); } }); } /** *

* You use this operation to change the parameters specified in the * original manifest file by supplying a new manifest file. The manifest * file attached to this request replaces the original manifest file. You * can only use the operation after a CreateJob request but before the * data transfer starts and you can only use it on jobs you own. *

* * @param updateJobRequest Container for the necessary parameters to * execute the UpdateJob operation on AmazonImportExport. * * @return A Java Future object containing the response from the * UpdateJob service method, as returned by AmazonImportExport. * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonImportExport indicating * either a problem with the data in the request, or a server side issue. */ public Future updateJobAsync(final UpdateJobRequest updateJobRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public UpdateJobResult call() throws Exception { return updateJob(updateJobRequest); } }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy