/* * 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.verifiedpermissions; import javax.annotation.Generated; import com.amazonaws.services.verifiedpermissions.model.*; import com.amazonaws.client.AwsAsyncClientParams; import com.amazonaws.annotation.ThreadSafe; import java.util.concurrent.ExecutorService; /** * Client for accessing Amazon Verified Permissions 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 Verified Permissions is a permissions management service from Amazon Web Services. You can use Verified * Permissions to manage permissions for your application, and authorize user access based on those permissions. Using * Verified Permissions, application developers can grant access based on information about the users, resources, and * requested actions. You can also evaluate additional information like group membership, attributes of the resources, * and session context, such as time of request and IP addresses. Verified Permissions manages these permissions by * letting you create and store authorization policies for your applications, such as consumer-facing web sites and * enterprise business systems. *

*

* Verified Permissions uses Cedar as the policy language to express your permission requirements. Cedar supports both * role-based access control (RBAC) and attribute-based access control (ABAC) authorization models. *

*

* For more information about configuring, administering, and using Amazon Verified Permissions in your applications, * see the Amazon Verified Permissions User * Guide. *

*

* For more information about the Cedar policy language, see the Cedar Policy * Language Guide. *

* *

* When you write Cedar policies that reference principals, resources and actions, you can define the unique identifiers * used for each of those elements. We strongly recommend that you follow these best practices: *

* *
*

* Several operations return structures that appear similar, but have different purposes. As new functionality is added * to the product, the structure used in a parameter of one operation might need to change in a way that wouldn't make * sense for the same parameter in a different operation. To help you understand the purpose of each, the following * naming convention is used for the structures: *

* */ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonVerifiedPermissionsAsyncClient extends AmazonVerifiedPermissionsClient implements AmazonVerifiedPermissionsAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; public static AmazonVerifiedPermissionsAsyncClientBuilder asyncBuilder() { return AmazonVerifiedPermissionsAsyncClientBuilder.standard(); } /** * Constructs a new asynchronous client to invoke service methods on Amazon Verified Permissions using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. */ AmazonVerifiedPermissionsAsyncClient(AwsAsyncClientParams asyncClientParams) { this(asyncClientParams, false); } /** * Constructs a new asynchronous client to invoke service methods on Amazon Verified Permissions using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. * @param endpointDiscoveryEnabled * true will enable endpoint discovery if the service supports it. */ AmazonVerifiedPermissionsAsyncClient(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 createIdentitySourceAsync(CreateIdentitySourceRequest request) { return createIdentitySourceAsync(request, null); } @Override public java.util.concurrent.Future createIdentitySourceAsync(final CreateIdentitySourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreateIdentitySourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreateIdentitySourceResult call() throws Exception { CreateIdentitySourceResult result = null; try { result = executeCreateIdentitySource(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 createPolicyAsync(CreatePolicyRequest request) { return createPolicyAsync(request, null); } @Override public java.util.concurrent.Future createPolicyAsync(final CreatePolicyRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreatePolicyRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreatePolicyResult call() throws Exception { CreatePolicyResult result = null; try { result = executeCreatePolicy(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 createPolicyStoreAsync(CreatePolicyStoreRequest request) { return createPolicyStoreAsync(request, null); } @Override public java.util.concurrent.Future createPolicyStoreAsync(final CreatePolicyStoreRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreatePolicyStoreRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreatePolicyStoreResult call() throws Exception { CreatePolicyStoreResult result = null; try { result = executeCreatePolicyStore(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 createPolicyTemplateAsync(CreatePolicyTemplateRequest request) { return createPolicyTemplateAsync(request, null); } @Override public java.util.concurrent.Future createPolicyTemplateAsync(final CreatePolicyTemplateRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final CreatePolicyTemplateRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public CreatePolicyTemplateResult call() throws Exception { CreatePolicyTemplateResult result = null; try { result = executeCreatePolicyTemplate(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 deleteIdentitySourceAsync(DeleteIdentitySourceRequest request) { return deleteIdentitySourceAsync(request, null); } @Override public java.util.concurrent.Future deleteIdentitySourceAsync(final DeleteIdentitySourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeleteIdentitySourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeleteIdentitySourceResult call() throws Exception { DeleteIdentitySourceResult result = null; try { result = executeDeleteIdentitySource(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 deletePolicyAsync(DeletePolicyRequest request) { return deletePolicyAsync(request, null); } @Override public java.util.concurrent.Future deletePolicyAsync(final DeletePolicyRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeletePolicyRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeletePolicyResult call() throws Exception { DeletePolicyResult result = null; try { result = executeDeletePolicy(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 deletePolicyStoreAsync(DeletePolicyStoreRequest request) { return deletePolicyStoreAsync(request, null); } @Override public java.util.concurrent.Future deletePolicyStoreAsync(final DeletePolicyStoreRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeletePolicyStoreRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeletePolicyStoreResult call() throws Exception { DeletePolicyStoreResult result = null; try { result = executeDeletePolicyStore(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 deletePolicyTemplateAsync(DeletePolicyTemplateRequest request) { return deletePolicyTemplateAsync(request, null); } @Override public java.util.concurrent.Future deletePolicyTemplateAsync(final DeletePolicyTemplateRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeletePolicyTemplateRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeletePolicyTemplateResult call() throws Exception { DeletePolicyTemplateResult result = null; try { result = executeDeletePolicyTemplate(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 getIdentitySourceAsync(GetIdentitySourceRequest request) { return getIdentitySourceAsync(request, null); } @Override public java.util.concurrent.Future getIdentitySourceAsync(final GetIdentitySourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetIdentitySourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetIdentitySourceResult call() throws Exception { GetIdentitySourceResult result = null; try { result = executeGetIdentitySource(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 getPolicyAsync(GetPolicyRequest request) { return getPolicyAsync(request, null); } @Override public java.util.concurrent.Future getPolicyAsync(final GetPolicyRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetPolicyRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetPolicyResult call() throws Exception { GetPolicyResult result = null; try { result = executeGetPolicy(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 getPolicyStoreAsync(GetPolicyStoreRequest request) { return getPolicyStoreAsync(request, null); } @Override public java.util.concurrent.Future getPolicyStoreAsync(final GetPolicyStoreRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetPolicyStoreRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetPolicyStoreResult call() throws Exception { GetPolicyStoreResult result = null; try { result = executeGetPolicyStore(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 getPolicyTemplateAsync(GetPolicyTemplateRequest request) { return getPolicyTemplateAsync(request, null); } @Override public java.util.concurrent.Future getPolicyTemplateAsync(final GetPolicyTemplateRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetPolicyTemplateRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetPolicyTemplateResult call() throws Exception { GetPolicyTemplateResult result = null; try { result = executeGetPolicyTemplate(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 getSchemaAsync(GetSchemaRequest request) { return getSchemaAsync(request, null); } @Override public java.util.concurrent.Future getSchemaAsync(final GetSchemaRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetSchemaRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetSchemaResult call() throws Exception { GetSchemaResult result = null; try { result = executeGetSchema(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 isAuthorizedAsync(IsAuthorizedRequest request) { return isAuthorizedAsync(request, null); } @Override public java.util.concurrent.Future isAuthorizedAsync(final IsAuthorizedRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final IsAuthorizedRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public IsAuthorizedResult call() throws Exception { IsAuthorizedResult result = null; try { result = executeIsAuthorized(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 isAuthorizedWithTokenAsync(IsAuthorizedWithTokenRequest request) { return isAuthorizedWithTokenAsync(request, null); } @Override public java.util.concurrent.Future isAuthorizedWithTokenAsync(final IsAuthorizedWithTokenRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final IsAuthorizedWithTokenRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public IsAuthorizedWithTokenResult call() throws Exception { IsAuthorizedWithTokenResult result = null; try { result = executeIsAuthorizedWithToken(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 listIdentitySourcesAsync(ListIdentitySourcesRequest request) { return listIdentitySourcesAsync(request, null); } @Override public java.util.concurrent.Future listIdentitySourcesAsync(final ListIdentitySourcesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListIdentitySourcesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListIdentitySourcesResult call() throws Exception { ListIdentitySourcesResult result = null; try { result = executeListIdentitySources(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 listPoliciesAsync(ListPoliciesRequest request) { return listPoliciesAsync(request, null); } @Override public java.util.concurrent.Future listPoliciesAsync(final ListPoliciesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListPoliciesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListPoliciesResult call() throws Exception { ListPoliciesResult result = null; try { result = executeListPolicies(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 listPolicyStoresAsync(ListPolicyStoresRequest request) { return listPolicyStoresAsync(request, null); } @Override public java.util.concurrent.Future listPolicyStoresAsync(final ListPolicyStoresRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListPolicyStoresRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListPolicyStoresResult call() throws Exception { ListPolicyStoresResult result = null; try { result = executeListPolicyStores(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 listPolicyTemplatesAsync(ListPolicyTemplatesRequest request) { return listPolicyTemplatesAsync(request, null); } @Override public java.util.concurrent.Future listPolicyTemplatesAsync(final ListPolicyTemplatesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListPolicyTemplatesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListPolicyTemplatesResult call() throws Exception { ListPolicyTemplatesResult result = null; try { result = executeListPolicyTemplates(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 putSchemaAsync(PutSchemaRequest request) { return putSchemaAsync(request, null); } @Override public java.util.concurrent.Future putSchemaAsync(final PutSchemaRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final PutSchemaRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public PutSchemaResult call() throws Exception { PutSchemaResult result = null; try { result = executePutSchema(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 updateIdentitySourceAsync(UpdateIdentitySourceRequest request) { return updateIdentitySourceAsync(request, null); } @Override public java.util.concurrent.Future updateIdentitySourceAsync(final UpdateIdentitySourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdateIdentitySourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdateIdentitySourceResult call() throws Exception { UpdateIdentitySourceResult result = null; try { result = executeUpdateIdentitySource(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 updatePolicyAsync(UpdatePolicyRequest request) { return updatePolicyAsync(request, null); } @Override public java.util.concurrent.Future updatePolicyAsync(final UpdatePolicyRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdatePolicyRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdatePolicyResult call() throws Exception { UpdatePolicyResult result = null; try { result = executeUpdatePolicy(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 updatePolicyStoreAsync(UpdatePolicyStoreRequest request) { return updatePolicyStoreAsync(request, null); } @Override public java.util.concurrent.Future updatePolicyStoreAsync(final UpdatePolicyStoreRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdatePolicyStoreRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdatePolicyStoreResult call() throws Exception { UpdatePolicyStoreResult result = null; try { result = executeUpdatePolicyStore(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 updatePolicyTemplateAsync(UpdatePolicyTemplateRequest request) { return updatePolicyTemplateAsync(request, null); } @Override public java.util.concurrent.Future updatePolicyTemplateAsync(final UpdatePolicyTemplateRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdatePolicyTemplateRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdatePolicyTemplateResult call() throws Exception { UpdatePolicyTemplateResult result = null; try { result = executeUpdatePolicyTemplate(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(); } }