/*
* 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.qldb;
import javax.annotation.Generated;
import com.amazonaws.services.qldb.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;
import java.util.concurrent.ExecutorService;
/**
* Client for accessing QLDB 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.
*
*
* The resource management API for Amazon QLDB
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AmazonQLDBAsyncClient extends AmazonQLDBClient implements AmazonQLDBAsync {
private static final int DEFAULT_THREAD_POOL_SIZE = 50;
private final java.util.concurrent.ExecutorService executorService;
public static AmazonQLDBAsyncClientBuilder asyncBuilder() {
return AmazonQLDBAsyncClientBuilder.standard();
}
/**
* Constructs a new asynchronous client to invoke service methods on QLDB using the specified parameters.
*
* @param asyncClientParams
* Object providing client parameters.
*/
AmazonQLDBAsyncClient(AwsAsyncClientParams asyncClientParams) {
this(asyncClientParams, false);
}
/**
* Constructs a new asynchronous client to invoke service methods on QLDB using the specified parameters.
*
* @param asyncClientParams
* Object providing client parameters.
* @param endpointDiscoveryEnabled
* true will enable endpoint discovery if the service supports it.
*/
AmazonQLDBAsyncClient(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 cancelJournalKinesisStreamAsync(CancelJournalKinesisStreamRequest request) {
return cancelJournalKinesisStreamAsync(request, null);
}
@Override
public java.util.concurrent.Future cancelJournalKinesisStreamAsync(final CancelJournalKinesisStreamRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CancelJournalKinesisStreamRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CancelJournalKinesisStreamResult call() throws Exception {
CancelJournalKinesisStreamResult result = null;
try {
result = executeCancelJournalKinesisStream(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 createLedgerAsync(CreateLedgerRequest request) {
return createLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future createLedgerAsync(final CreateLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final CreateLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public CreateLedgerResult call() throws Exception {
CreateLedgerResult result = null;
try {
result = executeCreateLedger(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 deleteLedgerAsync(DeleteLedgerRequest request) {
return deleteLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future deleteLedgerAsync(final DeleteLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DeleteLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DeleteLedgerResult call() throws Exception {
DeleteLedgerResult result = null;
try {
result = executeDeleteLedger(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 describeJournalKinesisStreamAsync(DescribeJournalKinesisStreamRequest request) {
return describeJournalKinesisStreamAsync(request, null);
}
@Override
public java.util.concurrent.Future describeJournalKinesisStreamAsync(final DescribeJournalKinesisStreamRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeJournalKinesisStreamRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeJournalKinesisStreamResult call() throws Exception {
DescribeJournalKinesisStreamResult result = null;
try {
result = executeDescribeJournalKinesisStream(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 describeJournalS3ExportAsync(DescribeJournalS3ExportRequest request) {
return describeJournalS3ExportAsync(request, null);
}
@Override
public java.util.concurrent.Future describeJournalS3ExportAsync(final DescribeJournalS3ExportRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeJournalS3ExportRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeJournalS3ExportResult call() throws Exception {
DescribeJournalS3ExportResult result = null;
try {
result = executeDescribeJournalS3Export(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 describeLedgerAsync(DescribeLedgerRequest request) {
return describeLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future describeLedgerAsync(final DescribeLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeLedgerResult call() throws Exception {
DescribeLedgerResult result = null;
try {
result = executeDescribeLedger(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 exportJournalToS3Async(ExportJournalToS3Request request) {
return exportJournalToS3Async(request, null);
}
@Override
public java.util.concurrent.Future exportJournalToS3Async(final ExportJournalToS3Request request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ExportJournalToS3Request finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ExportJournalToS3Result call() throws Exception {
ExportJournalToS3Result result = null;
try {
result = executeExportJournalToS3(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 getBlockAsync(GetBlockRequest request) {
return getBlockAsync(request, null);
}
@Override
public java.util.concurrent.Future getBlockAsync(final GetBlockRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetBlockRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetBlockResult call() throws Exception {
GetBlockResult result = null;
try {
result = executeGetBlock(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 getDigestAsync(GetDigestRequest request) {
return getDigestAsync(request, null);
}
@Override
public java.util.concurrent.Future getDigestAsync(final GetDigestRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetDigestRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetDigestResult call() throws Exception {
GetDigestResult result = null;
try {
result = executeGetDigest(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 getRevisionAsync(GetRevisionRequest request) {
return getRevisionAsync(request, null);
}
@Override
public java.util.concurrent.Future getRevisionAsync(final GetRevisionRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetRevisionRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetRevisionResult call() throws Exception {
GetRevisionResult result = null;
try {
result = executeGetRevision(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 listJournalKinesisStreamsForLedgerAsync(
ListJournalKinesisStreamsForLedgerRequest request) {
return listJournalKinesisStreamsForLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future listJournalKinesisStreamsForLedgerAsync(
final ListJournalKinesisStreamsForLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListJournalKinesisStreamsForLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListJournalKinesisStreamsForLedgerResult call() throws Exception {
ListJournalKinesisStreamsForLedgerResult result = null;
try {
result = executeListJournalKinesisStreamsForLedger(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 listJournalS3ExportsAsync(ListJournalS3ExportsRequest request) {
return listJournalS3ExportsAsync(request, null);
}
@Override
public java.util.concurrent.Future listJournalS3ExportsAsync(final ListJournalS3ExportsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListJournalS3ExportsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListJournalS3ExportsResult call() throws Exception {
ListJournalS3ExportsResult result = null;
try {
result = executeListJournalS3Exports(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 listJournalS3ExportsForLedgerAsync(ListJournalS3ExportsForLedgerRequest request) {
return listJournalS3ExportsForLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future listJournalS3ExportsForLedgerAsync(
final ListJournalS3ExportsForLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListJournalS3ExportsForLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListJournalS3ExportsForLedgerResult call() throws Exception {
ListJournalS3ExportsForLedgerResult result = null;
try {
result = executeListJournalS3ExportsForLedger(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 listLedgersAsync(ListLedgersRequest request) {
return listLedgersAsync(request, null);
}
@Override
public java.util.concurrent.Future listLedgersAsync(final ListLedgersRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListLedgersRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListLedgersResult call() throws Exception {
ListLedgersResult result = null;
try {
result = executeListLedgers(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 streamJournalToKinesisAsync(StreamJournalToKinesisRequest request) {
return streamJournalToKinesisAsync(request, null);
}
@Override
public java.util.concurrent.Future streamJournalToKinesisAsync(final StreamJournalToKinesisRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final StreamJournalToKinesisRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public StreamJournalToKinesisResult call() throws Exception {
StreamJournalToKinesisResult result = null;
try {
result = executeStreamJournalToKinesis(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;
}
});
}
@Override
public java.util.concurrent.Future updateLedgerAsync(UpdateLedgerRequest request) {
return updateLedgerAsync(request, null);
}
@Override
public java.util.concurrent.Future updateLedgerAsync(final UpdateLedgerRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final UpdateLedgerRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public UpdateLedgerResult call() throws Exception {
UpdateLedgerResult result = null;
try {
result = executeUpdateLedger(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 updateLedgerPermissionsModeAsync(UpdateLedgerPermissionsModeRequest request) {
return updateLedgerPermissionsModeAsync(request, null);
}
@Override
public java.util.concurrent.Future updateLedgerPermissionsModeAsync(final UpdateLedgerPermissionsModeRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final UpdateLedgerPermissionsModeRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public UpdateLedgerPermissionsModeResult call() throws Exception {
UpdateLedgerPermissionsModeResult result = null;
try {
result = executeUpdateLedgerPermissionsMode(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();
}
}