/* * 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.ebs; import javax.annotation.Generated; import com.amazonaws.services.ebs.model.*; /** * Interface for accessing Amazon EBS 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. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.ebs.AbstractAmazonEBSAsync} instead. *

*

*

* You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create Amazon EBS snapshots, write data * directly to your snapshots, read data on your snapshots, and identify the differences or changes between two * snapshots. If you’re an independent software vendor (ISV) who offers backup services for Amazon EBS, the EBS direct * APIs make it more efficient and cost-effective to track incremental changes on your Amazon EBS volumes through * snapshots. This can be done without having to create new volumes from snapshots, and then use Amazon Elastic Compute * Cloud (Amazon EC2) instances to compare the differences. *

*

* You can create incremental snapshots directly from data on-premises into volumes and the cloud to use for quick * disaster recovery. With the ability to write and read snapshots, you can write your on-premises data to an snapshot * during a disaster. Then after recovery, you can restore it back to Amazon Web Services or on-premises from the * snapshot. You no longer need to build and maintain complex mechanisms to copy data to and from Amazon EBS. *

*

* This API reference provides detailed information about the actions, data types, parameters, and errors of the EBS * direct APIs. For more information about the elements that make up the EBS direct APIs, and examples of how to use * them effectively, see Accessing the Contents of an * Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide. For more information about the * supported Amazon Web Services Regions, endpoints, and service quotas for the EBS direct APIs, see Amazon Elastic Block Store Endpoints and * Quotas in the Amazon Web Services General Reference. *

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AmazonEBSAsync extends AmazonEBS { /** *

* Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the * snapshot changes the status to completed. You cannot write new blocks to a snapshot after it has * been completed. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param completeSnapshotRequest * @return A Java Future containing the result of the CompleteSnapshot operation returned by the service. * @sample AmazonEBSAsync.CompleteSnapshot * @see AWS API * Documentation */ java.util.concurrent.Future completeSnapshotAsync(CompleteSnapshotRequest completeSnapshotRequest); /** *

* Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the * snapshot changes the status to completed. You cannot write new blocks to a snapshot after it has * been completed. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param completeSnapshotRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the CompleteSnapshot operation returned by the service. * @sample AmazonEBSAsyncHandler.CompleteSnapshot * @see AWS API * Documentation */ java.util.concurrent.Future completeSnapshotAsync(CompleteSnapshotRequest completeSnapshotRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Returns the data in a block in an Amazon Elastic Block Store snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param getSnapshotBlockRequest * @return A Java Future containing the result of the GetSnapshotBlock operation returned by the service. * @sample AmazonEBSAsync.GetSnapshotBlock * @see AWS API * Documentation */ java.util.concurrent.Future getSnapshotBlockAsync(GetSnapshotBlockRequest getSnapshotBlockRequest); /** *

* Returns the data in a block in an Amazon Elastic Block Store snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param getSnapshotBlockRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the GetSnapshotBlock operation returned by the service. * @sample AmazonEBSAsyncHandler.GetSnapshotBlock * @see AWS API * Documentation */ java.util.concurrent.Future getSnapshotBlockAsync(GetSnapshotBlockRequest getSnapshotBlockRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the * same volume/snapshot lineage. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param listChangedBlocksRequest * @return A Java Future containing the result of the ListChangedBlocks operation returned by the service. * @sample AmazonEBSAsync.ListChangedBlocks * @see AWS API * Documentation */ java.util.concurrent.Future listChangedBlocksAsync(ListChangedBlocksRequest listChangedBlocksRequest); /** *

* Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the * same volume/snapshot lineage. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param listChangedBlocksRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the ListChangedBlocks operation returned by the service. * @sample AmazonEBSAsyncHandler.ListChangedBlocks * @see AWS API * Documentation */ java.util.concurrent.Future listChangedBlocksAsync(ListChangedBlocksRequest listChangedBlocksRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Returns information about the blocks in an Amazon Elastic Block Store snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param listSnapshotBlocksRequest * @return A Java Future containing the result of the ListSnapshotBlocks operation returned by the service. * @sample AmazonEBSAsync.ListSnapshotBlocks * @see AWS API * Documentation */ java.util.concurrent.Future listSnapshotBlocksAsync(ListSnapshotBlocksRequest listSnapshotBlocksRequest); /** *

* Returns information about the blocks in an Amazon Elastic Block Store snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param listSnapshotBlocksRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the ListSnapshotBlocks operation returned by the service. * @sample AmazonEBSAsyncHandler.ListSnapshotBlocks * @see AWS API * Documentation */ java.util.concurrent.Future listSnapshotBlocksAsync(ListSnapshotBlocksRequest listSnapshotBlocksRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The * target snapshot must be in the pending state. *

*

* Data written to a snapshot must be aligned with 512-KiB sectors. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param putSnapshotBlockRequest * @return A Java Future containing the result of the PutSnapshotBlock operation returned by the service. * @sample AmazonEBSAsync.PutSnapshotBlock * @see AWS API * Documentation */ java.util.concurrent.Future putSnapshotBlockAsync(PutSnapshotBlockRequest putSnapshotBlockRequest); /** *

* Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The * target snapshot must be in the pending state. *

*

* Data written to a snapshot must be aligned with 512-KiB sectors. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param putSnapshotBlockRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the PutSnapshotBlock operation returned by the service. * @sample AmazonEBSAsyncHandler.PutSnapshotBlock * @see AWS API * Documentation */ java.util.concurrent.Future putSnapshotBlockAsync(PutSnapshotBlockRequest putSnapshotBlockRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Creates a new Amazon EBS snapshot. The new snapshot enters the pending state after the request * completes. *

*

* After creating the snapshot, use PutSnapshotBlock to * write blocks of data to the snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param startSnapshotRequest * @return A Java Future containing the result of the StartSnapshot operation returned by the service. * @sample AmazonEBSAsync.StartSnapshot * @see AWS API * Documentation */ java.util.concurrent.Future startSnapshotAsync(StartSnapshotRequest startSnapshotRequest); /** *

* Creates a new Amazon EBS snapshot. The new snapshot enters the pending state after the request * completes. *

*

* After creating the snapshot, use PutSnapshotBlock to * write blocks of data to the snapshot. *

* *

* You should always retry requests that receive server (5xx) error responses, and * ThrottlingException and RequestThrottledException client error responses. For more * information see Error * retries in the Amazon Elastic Compute Cloud User Guide. *

*
* * @param startSnapshotRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the StartSnapshot operation returned by the service. * @sample AmazonEBSAsyncHandler.StartSnapshot * @see AWS API * Documentation */ java.util.concurrent.Future startSnapshotAsync(StartSnapshotRequest startSnapshotRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); }