/* * 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.managedblockchain; import javax.annotation.Generated; import com.amazonaws.services.managedblockchain.model.*; import com.amazonaws.client.AwsAsyncClientParams; import com.amazonaws.annotation.ThreadSafe; import java.util.concurrent.ExecutorService; /** * Client for accessing ManagedBlockchain 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 Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source * frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run * transactions and share data without the need for a trusted, central authority. *

*

* Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental * differences between the frameworks, some API actions or data types may only apply in the context of one framework and * not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember * and DeleteMember don't apply to Ethereum. *

*

* The description for each action indicates the framework or frameworks to which it applies. Data types and properties * that apply only in the context of a particular framework are similarly indicated. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonManagedBlockchainAsyncClient extends AmazonManagedBlockchainClient implements AmazonManagedBlockchainAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; public static AmazonManagedBlockchainAsyncClientBuilder asyncBuilder() { return AmazonManagedBlockchainAsyncClientBuilder.standard(); } /** * Constructs a new asynchronous client to invoke service methods on ManagedBlockchain using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. */ AmazonManagedBlockchainAsyncClient(AwsAsyncClientParams asyncClientParams) { this(asyncClientParams, false); } /** * Constructs a new asynchronous client to invoke service methods on ManagedBlockchain using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. * @param endpointDiscoveryEnabled * true will enable endpoint discovery if the service supports it. */ AmazonManagedBlockchainAsyncClient(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 createAccessorAsync(CreateAccessorRequest request) { return createAccessorAsync(request, null); } @Override public java.util.concurrent.Future createAccessorAsync(final CreateAccessorRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateAccessorRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateAccessorResult call() throws Exception { CreateAccessorResult result = null; try { result = executeCreateAccessor(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 createMemberAsync(CreateMemberRequest request) { return createMemberAsync(request, null); } @Override public java.util.concurrent.Future createMemberAsync(final CreateMemberRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateMemberRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateMemberResult call() throws Exception { CreateMemberResult result = null; try { result = executeCreateMember(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 createNetworkAsync(CreateNetworkRequest request) { return createNetworkAsync(request, null); } @Override public java.util.concurrent.Future createNetworkAsync(final CreateNetworkRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateNetworkRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateNetworkResult call() throws Exception { CreateNetworkResult result = null; try { result = executeCreateNetwork(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 createNodeAsync(CreateNodeRequest request) { return createNodeAsync(request, null); } @Override public java.util.concurrent.Future createNodeAsync(final CreateNodeRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateNodeRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateNodeResult call() throws Exception { CreateNodeResult result = null; try { result = executeCreateNode(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 createProposalAsync(CreateProposalRequest request) { return createProposalAsync(request, null); } @Override public java.util.concurrent.Future createProposalAsync(final CreateProposalRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateProposalRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateProposalResult call() throws Exception { CreateProposalResult result = null; try { result = executeCreateProposal(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 deleteAccessorAsync(DeleteAccessorRequest request) { return deleteAccessorAsync(request, null); } @Override public java.util.concurrent.Future deleteAccessorAsync(final DeleteAccessorRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeleteAccessorRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeleteAccessorResult call() throws Exception { DeleteAccessorResult result = null; try { result = executeDeleteAccessor(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 deleteMemberAsync(DeleteMemberRequest request) { return deleteMemberAsync(request, null); } @Override public java.util.concurrent.Future deleteMemberAsync(final DeleteMemberRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeleteMemberRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeleteMemberResult call() throws Exception { DeleteMemberResult result = null; try { result = executeDeleteMember(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 deleteNodeAsync(DeleteNodeRequest request) { return deleteNodeAsync(request, null); } @Override public java.util.concurrent.Future deleteNodeAsync(final DeleteNodeRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeleteNodeRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeleteNodeResult call() throws Exception { DeleteNodeResult result = null; try { result = executeDeleteNode(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 getAccessorAsync(GetAccessorRequest request) { return getAccessorAsync(request, null); } @Override public java.util.concurrent.Future getAccessorAsync(final GetAccessorRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetAccessorRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetAccessorResult call() throws Exception { GetAccessorResult result = null; try { result = executeGetAccessor(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 getMemberAsync(GetMemberRequest request) { return getMemberAsync(request, null); } @Override public java.util.concurrent.Future getMemberAsync(final GetMemberRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetMemberRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetMemberResult call() throws Exception { GetMemberResult result = null; try { result = executeGetMember(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 getNetworkAsync(GetNetworkRequest request) { return getNetworkAsync(request, null); } @Override public java.util.concurrent.Future getNetworkAsync(final GetNetworkRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetNetworkRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetNetworkResult call() throws Exception { GetNetworkResult result = null; try { result = executeGetNetwork(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 getNodeAsync(GetNodeRequest request) { return getNodeAsync(request, null); } @Override public java.util.concurrent.Future getNodeAsync(final GetNodeRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetNodeRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetNodeResult call() throws Exception { GetNodeResult result = null; try { result = executeGetNode(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 getProposalAsync(GetProposalRequest request) { return getProposalAsync(request, null); } @Override public java.util.concurrent.Future getProposalAsync(final GetProposalRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetProposalRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetProposalResult call() throws Exception { GetProposalResult result = null; try { result = executeGetProposal(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 listAccessorsAsync(ListAccessorsRequest request) { return listAccessorsAsync(request, null); } @Override public java.util.concurrent.Future listAccessorsAsync(final ListAccessorsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListAccessorsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListAccessorsResult call() throws Exception { ListAccessorsResult result = null; try { result = executeListAccessors(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 listInvitationsAsync(ListInvitationsRequest request) { return listInvitationsAsync(request, null); } @Override public java.util.concurrent.Future listInvitationsAsync(final ListInvitationsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListInvitationsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListInvitationsResult call() throws Exception { ListInvitationsResult result = null; try { result = executeListInvitations(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 listMembersAsync(ListMembersRequest request) { return listMembersAsync(request, null); } @Override public java.util.concurrent.Future listMembersAsync(final ListMembersRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListMembersRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListMembersResult call() throws Exception { ListMembersResult result = null; try { result = executeListMembers(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 listNetworksAsync(ListNetworksRequest request) { return listNetworksAsync(request, null); } @Override public java.util.concurrent.Future listNetworksAsync(final ListNetworksRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListNetworksRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListNetworksResult call() throws Exception { ListNetworksResult result = null; try { result = executeListNetworks(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 listNodesAsync(ListNodesRequest request) { return listNodesAsync(request, null); } @Override public java.util.concurrent.Future listNodesAsync(final ListNodesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListNodesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListNodesResult call() throws Exception { ListNodesResult result = null; try { result = executeListNodes(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 listProposalVotesAsync(ListProposalVotesRequest request) { return listProposalVotesAsync(request, null); } @Override public java.util.concurrent.Future listProposalVotesAsync(final ListProposalVotesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListProposalVotesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListProposalVotesResult call() throws Exception { ListProposalVotesResult result = null; try { result = executeListProposalVotes(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 listProposalsAsync(ListProposalsRequest request) { return listProposalsAsync(request, null); } @Override public java.util.concurrent.Future listProposalsAsync(final ListProposalsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListProposalsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListProposalsResult call() throws Exception { ListProposalsResult result = null; try { result = executeListProposals(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 rejectInvitationAsync(RejectInvitationRequest request) { return rejectInvitationAsync(request, null); } @Override public java.util.concurrent.Future rejectInvitationAsync(final RejectInvitationRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final RejectInvitationRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public RejectInvitationResult call() throws Exception { RejectInvitationResult result = null; try { result = executeRejectInvitation(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 updateMemberAsync(UpdateMemberRequest request) { return updateMemberAsync(request, null); } @Override public java.util.concurrent.Future updateMemberAsync(final UpdateMemberRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdateMemberRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdateMemberResult call() throws Exception { UpdateMemberResult result = null; try { result = executeUpdateMember(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 updateNodeAsync(UpdateNodeRequest request) { return updateNodeAsync(request, null); } @Override public java.util.concurrent.Future updateNodeAsync(final UpdateNodeRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdateNodeRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdateNodeResult call() throws Exception { UpdateNodeResult result = null; try { result = executeUpdateNode(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 voteOnProposalAsync(VoteOnProposalRequest request) { return voteOnProposalAsync(request, null); } @Override public java.util.concurrent.Future voteOnProposalAsync(final VoteOnProposalRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final VoteOnProposalRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public VoteOnProposalResult call() throws Exception { VoteOnProposalResult result = null; try { result = executeVoteOnProposal(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(); } }