import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Vault resource in Oracle Cloud Infrastructure Kms service.
 *
 * 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.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testVault = oci.kms.getVault({
 *     vaultId: testVaultOciKmsVault.id,
 * });
 * ```
 */
export declare function getVault(args: GetVaultArgs, opts?: pulumi.InvokeOptions): Promise<GetVaultResult>;
/**
 * A collection of arguments for invoking getVault.
 */
export interface GetVaultArgs {
    /**
     * The OCID of the vault.
     */
    vaultId: string;
}
/**
 * A collection of values returned by getVault.
 */
export interface GetVaultResult {
    /**
     * The OCID of the compartment that contains a particular vault.
     */
    readonly compartmentId: string;
    /**
     * The service endpoint to perform cryptographic operations against. Cryptographic operations include [Encrypt](https://docs.cloud.oracle.com/iaas/api/#/en/key/latest/EncryptedData/Encrypt), [Decrypt](https://docs.cloud.oracle.com/iaas/api/#/en/key/latest/DecryptedData/Decrypt), and [GenerateDataEncryptionKey](https://docs.cloud.oracle.com/iaas/api/#/en/key/latest/GeneratedKey/GenerateDataEncryptionKey) operations.
     */
    readonly cryptoEndpoint: string;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: {
        [key: string]: string;
    };
    /**
     * A user-friendly name for the vault. It does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    readonly displayName: string;
    /**
     * Summary about metadata of external key manager to be returned to the customer as a response.
     */
    readonly externalKeyManagerMetadataSummaries: outputs.Kms.GetVaultExternalKeyManagerMetadataSummary[];
    readonly externalKeyManagerMetadatas: outputs.Kms.GetVaultExternalKeyManagerMetadata[];
    /**
     * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: {
        [key: string]: string;
    };
    /**
     * The OCID of the vault.
     */
    readonly id: string;
    /**
     * A Boolean value that indicates whether the Vault is primary Vault or replica Vault.
     */
    readonly isPrimary: boolean;
    /**
     * A Boolean value that indicates whether the Vault has cross region replication capability. Always true for Virtual Private Vaults.
     */
    readonly isVaultReplicable: boolean;
    /**
     * The service endpoint to perform management operations against. Management operations include "Create," "Update," "List," "Get," and "Delete" operations.
     */
    readonly managementEndpoint: string;
    /**
     * Vault replica details
     */
    readonly replicaDetails: outputs.Kms.GetVaultReplicaDetail[];
    /**
     * Details where vault was backed up.
     */
    readonly restoreFromFiles: outputs.Kms.GetVaultRestoreFromFile[];
    /**
     * Details where vault was backed up
     */
    readonly restoreFromObjectStores: outputs.Kms.GetVaultRestoreFromObjectStore[];
    /**
     * When flipped, triggers restore if restore options are provided. Values of 0 or 1 are supported
     */
    readonly restoreTrigger: boolean;
    /**
     * The OCID of the vault from which this vault was restored, if it was restored from a backup file. If you restore a vault to the same region, the vault retains the same OCID that it had when you backed up the vault.
     */
    readonly restoredFromVaultId: string;
    /**
     * The vault's current lifecycle state.  Example: `DELETED`
     */
    readonly state: string;
    /**
     * The date and time this vault was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format.  Example: `2018-04-03T21:10:29.600Z`
     */
    readonly timeCreated: string;
    /**
     * An optional property to indicate when to delete the vault, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: `2018-04-03T21:10:29.600Z`
     */
    readonly timeOfDeletion: string;
    readonly vaultId: string;
    /**
     * The type of vault. Each type of vault stores the key with different degrees of isolation and has different options and pricing.
     */
    readonly vaultType: string;
}
/**
 * This data source provides details about a specific Vault resource in Oracle Cloud Infrastructure Kms service.
 *
 * 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.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testVault = oci.kms.getVault({
 *     vaultId: testVaultOciKmsVault.id,
 * });
 * ```
 */
export declare function getVaultOutput(args: GetVaultOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetVaultResult>;
/**
 * A collection of arguments for invoking getVault.
 */
export interface GetVaultOutputArgs {
    /**
     * The OCID of the vault.
     */
    vaultId: pulumi.Input<string>;
}
//# sourceMappingURL=getVault.d.ts.map