import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to get available CBR vaults within Huaweicloud.
 *
 * ## Example Usage
 * ### Get vaults for all server type
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const test = pulumi.output(huaweicloud.Cbr.getVaults({
 *     type: "server",
 * }));
 * ```
 */
export declare function getVaults(args?: GetVaultsArgs, opts?: pulumi.InvokeOptions): Promise<GetVaultsResult>;
/**
 * A collection of arguments for invoking getVaults.
 */
export interface GetVaultsArgs {
    /**
     * Specifies whether to enable automatic expansion of the backup protection
     * type vault. Defaults to **false**.
     */
    autoExpandEnabled?: boolean;
    /**
     * Specifies the consistent level (specification) of the vault.
     * The valid values are as follows:
     * + **[crashConsistent](https://support.huaweicloud.com/intl/en-us/usermanual-cbr/cbr_03_0109.html)**
     * + **[appConsistent](https://support.huaweicloud.com/intl/en-us/usermanual-cbr/cbr_03_0109.html)**
     */
    consistentLevel?: string;
    /**
     * Specifies the ID of the enterprise project to which the vault belongs.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the vault name. This parameter can contain a maximum of 64
     * characters, which may consist of letters, digits, underscores(_) and hyphens (-).
     */
    name?: string;
    /**
     * Specifies the ID of the policy associated with the vault.
     * The `policyId` cannot be used with the vault of replicate protection type.
     */
    policyId?: string;
    /**
     * Specifies the protection type of the vault.
     * The valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.
     */
    protectionType?: string;
    /**
     * Specifies the region in which to query the vaults.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies the vault capacity, in GB. The valid value range is `1` to `10,485,760`.
     */
    size?: number;
    /**
     * Specifies the vault status, including **available**, **lock**, **frozen** and **error**.
     */
    status?: string;
    /**
     * Specifies the object type of the vault. The valid values are as follows:
     * + **server** (Cloud Servers)
     * + **disk** (EVS Disks)
     * + **turbo** (SFS Turbo file systems)
     */
    type?: string;
}
/**
 * A collection of values returned by getVaults.
 */
export interface GetVaultsResult {
    /**
     * Whether to enable automatic expansion of the backup protection type vault.
     */
    readonly autoExpandEnabled?: boolean;
    /**
     * The consistent level (specification) of the vault.
     */
    readonly consistentLevel?: string;
    /**
     * The enterprise project ID.
     */
    readonly enterpriseProjectId?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The vault name.
     */
    readonly name?: string;
    /**
     * The ID of the policy associated with the vault.
     */
    readonly policyId?: string;
    /**
     * The protection type of the vault.
     */
    readonly protectionType?: string;
    readonly region?: string;
    /**
     * The vault capacity, in GB.
     */
    readonly size?: number;
    /**
     * The vault status.
     */
    readonly status?: string;
    /**
     * The object type of the vault.
     */
    readonly type?: string;
    /**
     * List of vault details. The object structure of each vault is documented below.
     */
    readonly vaults: outputs.Cbr.GetVaultsVault[];
}
export declare function getVaultsOutput(args?: GetVaultsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetVaultsResult>;
/**
 * A collection of arguments for invoking getVaults.
 */
export interface GetVaultsOutputArgs {
    /**
     * Specifies whether to enable automatic expansion of the backup protection
     * type vault. Defaults to **false**.
     */
    autoExpandEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the consistent level (specification) of the vault.
     * The valid values are as follows:
     * + **[crashConsistent](https://support.huaweicloud.com/intl/en-us/usermanual-cbr/cbr_03_0109.html)**
     * + **[appConsistent](https://support.huaweicloud.com/intl/en-us/usermanual-cbr/cbr_03_0109.html)**
     */
    consistentLevel?: pulumi.Input<string>;
    /**
     * Specifies the ID of the enterprise project to which the vault belongs.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the vault name. This parameter can contain a maximum of 64
     * characters, which may consist of letters, digits, underscores(_) and hyphens (-).
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the ID of the policy associated with the vault.
     * The `policyId` cannot be used with the vault of replicate protection type.
     */
    policyId?: pulumi.Input<string>;
    /**
     * Specifies the protection type of the vault.
     * The valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.
     */
    protectionType?: pulumi.Input<string>;
    /**
     * Specifies the region in which to query the vaults.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the vault capacity, in GB. The valid value range is `1` to `10,485,760`.
     */
    size?: pulumi.Input<number>;
    /**
     * Specifies the vault status, including **available**, **lock**, **frozen** and **error**.
     */
    status?: pulumi.Input<string>;
    /**
     * Specifies the object type of the vault. The valid values are as follows:
     * + **server** (Cloud Servers)
     * + **disk** (EVS Disks)
     * + **turbo** (SFS Turbo file systems)
     */
    type?: pulumi.Input<string>;
}
