Class KmsVaultAsyncClient

  • All Implemented Interfaces:
    KmsVaultAsync, AutoCloseable

    @Generated(value="OracleSDKGenerator",
               comments="API Version: release")
    public class KmsVaultAsyncClient
    extends BaseAsyncClient
    implements KmsVaultAsync
    Async client implementation for KmsVault service.
    There are two ways to use async client: 1. Use AsyncHandler: using AsyncHandler, if the response to the call is an InputStream, like getObject Api in object storage service, developers need to process the stream in AsyncHandler, and not anywhere else, because the stream will be closed right after the AsyncHandler is invoked.
    2. Use Java Future: using Java Future, developers need to close the stream after they are done with the Java Future.
    Accessing the result should be done in a mutually exclusive manner, either through the Future or the AsyncHandler, but not both. If the Future is used, the caller should pass in null as the AsyncHandler. If the AsyncHandler is used, it is still safe to use the Future to determine whether or not the request was completed via Future.isDone/isCancelled.
    Please refer to https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ResteasyClientWithObjectStorageExample.java
    • Field Detail

      • SERVICE

        public static final Service SERVICE
        Service instance for KmsVault.
      • clientCommonLibraryVersion

        public final String clientCommonLibraryVersion
        Compatible SDK version, provided by the codegen.
      • minimumClientCommonLibraryVersionFromClient

        public final Optional<String> minimumClientCommonLibraryVersionFromClient
        Minimum compatible SDK version, maybe provided by the codegen.
    • Method Detail

      • setRegion

        public void setRegion​(Region region)
        Description copied from interface: KmsVaultAsync
        Sets the region to call (ex, Region.US_PHOENIX_1).

        Note, this will call setEndpoint after resolving the endpoint. If the service is not available in this region, however, an IllegalArgumentException will be raised.

        Specified by:
        setRegion in interface KmsVaultAsync
        Parameters:
        region - The region of the service.
      • backupVault

        public Future<BackupVaultResponse> backupVault​(BackupVaultRequest request,
                                                       AsyncHandler<BackupVaultRequest,​BackupVaultResponse> handler)
        Description copied from interface: KmsVaultAsync
        Backs up an encrypted file that contains all the metadata of a vault so that you can restore the vault later.

        You can backup a vault whether or not it contains keys. This operation only backs up the metadata of the vault, and does not include key metadata.

        Specified by:
        backupVault in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • cancelVaultDeletion

        public Future<CancelVaultDeletionResponse> cancelVaultDeletion​(CancelVaultDeletionRequest request,
                                                                       AsyncHandler<CancelVaultDeletionRequest,​CancelVaultDeletionResponse> handler)
        Description copied from interface: KmsVaultAsync
        Cancels the scheduled deletion of the specified vault.

        Canceling a scheduled deletion restores the vault and all keys in it to their respective states from before their scheduled deletion. All keys that were scheduled for deletion prior to vault deletion retain their lifecycle state and time of deletion.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        cancelVaultDeletion in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • changeVaultCompartment

        public Future<ChangeVaultCompartmentResponse> changeVaultCompartment​(ChangeVaultCompartmentRequest request,
                                                                             AsyncHandler<ChangeVaultCompartmentRequest,​ChangeVaultCompartmentResponse> handler)
        Description copied from interface: KmsVaultAsync
        Moves a vault into a different compartment within the same tenancy.

        For information about moving resources between compartments, see Moving Resources to a Different Compartment.

        When provided, if-match is checked against the ETag values of the resource.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        changeVaultCompartment in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • createVault

        public Future<CreateVaultResponse> createVault​(CreateVaultRequest request,
                                                       AsyncHandler<CreateVaultRequest,​CreateVaultResponse> handler)
        Description copied from interface: KmsVaultAsync
        Creates a new vault.

        The type of vault you create determines key placement, pricing, and available options. Options include storage isolation, a dedicated service endpoint instead of a shared service endpoint for API calls, and either a dedicated hardware security module (HSM) or a multitenant HSM.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        createVault in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • createVaultReplica

        public Future<CreateVaultReplicaResponse> createVaultReplica​(CreateVaultReplicaRequest request,
                                                                     AsyncHandler<CreateVaultReplicaRequest,​CreateVaultReplicaResponse> handler)
        Description copied from interface: KmsVaultAsync
        Creates a replica for the vault in another region in the same realm

        The API is a no-op if called for same region that a vault is already replicated to. 409 if called on a vault that is already replicated to a different region. Users need to delete existing replica first before calling it with a different region.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        createVaultReplica in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • deleteVaultReplica

        public Future<DeleteVaultReplicaResponse> deleteVaultReplica​(DeleteVaultReplicaRequest request,
                                                                     AsyncHandler<DeleteVaultReplicaRequest,​DeleteVaultReplicaResponse> handler)
        Description copied from interface: KmsVaultAsync
        Deletes a vault replica

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        deleteVaultReplica in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • getVault

        public Future<GetVaultResponse> getVault​(GetVaultRequest request,
                                                 AsyncHandler<GetVaultRequest,​GetVaultResponse> handler)
        Description copied from interface: KmsVaultAsync
        Gets the specified vault’s configuration information.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning read operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning read operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        getVault in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • getVaultUsage

        public Future<GetVaultUsageResponse> getVaultUsage​(GetVaultUsageRequest request,
                                                           AsyncHandler<GetVaultUsageRequest,​GetVaultUsageResponse> handler)
        Description copied from interface: KmsVaultAsync
        Gets the count of keys and key versions in the specified vault to calculate usage against service limits.
        Specified by:
        getVaultUsage in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listVaultReplicas

        public Future<ListVaultReplicasResponse> listVaultReplicas​(ListVaultReplicasRequest request,
                                                                   AsyncHandler<ListVaultReplicasRequest,​ListVaultReplicasResponse> handler)
        Description copied from interface: KmsVaultAsync
        Lists the replicas for a vault

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        listVaultReplicas in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listVaults

        public Future<ListVaultsResponse> listVaults​(ListVaultsRequest request,
                                                     AsyncHandler<ListVaultsRequest,​ListVaultsResponse> handler)
        Description copied from interface: KmsVaultAsync
        Lists the vaults in the specified compartment.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning read operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning read operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        listVaults in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • restoreVaultFromFile

        public Future<RestoreVaultFromFileResponse> restoreVaultFromFile​(RestoreVaultFromFileRequest request,
                                                                         AsyncHandler<RestoreVaultFromFileRequest,​RestoreVaultFromFileResponse> handler)
        Description copied from interface: KmsVaultAsync
        Restores a vault from an encrypted backup file.

        If a vault with the same OCID already exists, this operation returns a response with a 409 HTTP status error code.

        Specified by:
        restoreVaultFromFile in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • scheduleVaultDeletion

        public Future<ScheduleVaultDeletionResponse> scheduleVaultDeletion​(ScheduleVaultDeletionRequest request,
                                                                           AsyncHandler<ScheduleVaultDeletionRequest,​ScheduleVaultDeletionResponse> handler)
        Description copied from interface: KmsVaultAsync
        Schedules the deletion of the specified vault.

        This sets the lifecycle state of the vault and all keys in it that are not already scheduled for deletion to PENDING_DELETION and then deletes them after the retention period ends. The lifecycle state and time of deletion for keys already scheduled for deletion won’t change. If any keys in the vault are scheduled to be deleted after the specified time of deletion for the vault, the call is rejected with the error code 409.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        scheduleVaultDeletion in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • updateVault

        public Future<UpdateVaultResponse> updateVault​(UpdateVaultRequest request,
                                                       AsyncHandler<UpdateVaultRequest,​UpdateVaultResponse> handler)
        Description copied from interface: KmsVaultAsync
        Updates the properties of a vault.

        Specifically, you can update the displayName, freeformTags, and definedTags properties. Furthermore, the vault must be in an ACTIVE or CREATING state to be updated.

        As a provisioning operation, this call is subject to a Key Management limit that applies to the total number of requests across all provisioning write operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of provisioning write operations exceeds 10 requests per second for a given tenancy.

        Specified by:
        updateVault in interface KmsVaultAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • useRealmSpecificEndpointTemplate

        public void useRealmSpecificEndpointTemplate​(boolean useOfRealmSpecificEndpointTemplateEnabled)
        This method should be used to enable or disable the use of realm-specific endpoint template.

        The default value is null. To enable the use of endpoint template defined for the realm in use, set the flag to true To disable the use of endpoint template defined for the realm in use, set the flag to false

        Parameters:
        useOfRealmSpecificEndpointTemplateEnabled - This flag can be set to true or false to enable or disable the use of realm-specific endpoint template respectively
      • populateServiceParametersInEndpoint

        public final void populateServiceParametersInEndpoint​(String endpoint,
                                                              Map<String,​Object> requiredParametersMap)
        Populate the parameters in the endpoint with its corresponding value and update the base endpoint.

        The value will be populated iff the parameter in endpoint is a required request path parameter or a required request query parameter. If not, the parameter in the endpoint will be ignored and left blank.

        Parameters:
        endpoint - The endpoint template in use
        requiredParametersMap - Map of parameter name as key and value set in request path or query parameter as value
      • updateBaseEndpoint

        public final void updateBaseEndpoint​(String endpoint)
        This method should be used for parameterized endpoint templates only.

        This does not include {region} and {secondLevelDomain} parameters.

        Parameters:
        endpoint - The updated endpoint to use
      • setEndpoint

        public final void setEndpoint​(String endpoint)
      • getEndpoint

        public final String getEndpoint()
      • refreshClient

        public final void refreshClient()
        Rebuild the backing HttpClient.

        This will call ClientConfigurators again, and can be used to e.g. refresh the SSL certificate.

      • getClientCommonLibraryVersion

        public String getClientCommonLibraryVersion()
      • getMinimumClientCommonLibraryVersionFromClient

        public Optional<String> getMinimumClientCommonLibraryVersionFromClient()