import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Use this data source to query detailed information of kms keys
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const default = volcengine.kms.getKeys({
 *     creationDateRanges: [
 *         "2025-06-01 19:48:06",
 *         "2025-06-04 19:48:06",
 *     ],
 *     descriptions: ["tf-test"],
 *     keyNames: [
 *         "mrk-tf-key-mod",
 *         "mrk-tf-key",
 *     ],
 *     keySpecs: ["SYMMETRIC_256"],
 *     keyStates: ["Enable"],
 *     keyUsages: ["ENCRYPT_DECRYPT"],
 *     keyringId: "7a358829-bd5a-4763-ba77-7500ecxxxxxx",
 *     origins: ["CloudKMS"],
 *     protectionLevels: ["SOFTWARE"],
 *     rotateStates: ["Enable"],
 *     tags: [{
 *         key: "tf-k1",
 *         values: ["tf-v1"],
 *     }],
 *     updateDateRanges: [
 *         "2025-06-01 19:48:06",
 *         "2025-06-04 19:48:06",
 *     ],
 * });
 * ```
 */
export declare function getKeys(args?: GetKeysArgs, opts?: pulumi.InvokeOptions): Promise<GetKeysResult>;
/**
 * A collection of arguments for invoking getKeys.
 */
export interface GetKeysArgs {
    /**
     * The creation date of the keyring.
     */
    creationDateRanges?: string[];
    /**
     * The description of the key.
     */
    descriptions?: string[];
    /**
     * The name of the key.
     */
    keyNames?: string[];
    /**
     * The algorithm used in the key. Valid values: SYMMETRIC_256, SYMMETRIC_128, RSA_2048, RSA_3072, RSA_4096, EC_P256K, EC_P256, EC_P384, EC_P521, EC_SM2.
     */
    keySpecs?: string[];
    /**
     * The state of the key.
     */
    keyStates?: string[];
    /**
     * The usage of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY.
     */
    keyUsages?: string[];
    /**
     * Query the Key ring that meets the specified conditions, which is composed of key-value pairs.
     */
    keyringId?: string;
    /**
     * Query the Key ring that meets the specified conditions, which is composed of key-value pairs.
     */
    keyringName?: string;
    /**
     * A Name Regex of Resource.
     */
    nameRegex?: string;
    /**
     * The origin of the key. Valid values: CloudKMS, External.
     */
    origins?: string[];
    /**
     * File name where to save data source results.
     */
    outputFile?: string;
    /**
     * The protection level of the key. Valid values: SOFTWARE, HSM.
     */
    protectionLevels?: string[];
    /**
     * The state of the rotate. Valid values: Enable, Disable.
     */
    rotateStates?: string[];
    /**
     * A list of tags.
     */
    tags?: inputs.kms.GetKeysTag[];
    /**
     * The update date of the keyring.
     */
    updateDateRanges?: string[];
}
/**
 * A collection of values returned by getKeys.
 */
export interface GetKeysResult {
    readonly creationDateRanges?: string[];
    /**
     * The description of the key.
     */
    readonly descriptions?: string[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The name of the key.
     */
    readonly keyNames?: string[];
    /**
     * The algorithm used in the key.
     */
    readonly keySpecs?: string[];
    /**
     * The state of the key.
     */
    readonly keyStates?: string[];
    /**
     * The usage of the key.
     */
    readonly keyUsages?: string[];
    readonly keyringId?: string;
    readonly keyringName?: string;
    /**
     * Master key list information.
     */
    readonly keys: outputs.kms.GetKeysKey[];
    readonly nameRegex?: string;
    /**
     * The origin of the key.
     */
    readonly origins?: string[];
    readonly outputFile?: string;
    /**
     * The protection level of the key.
     */
    readonly protectionLevels?: string[];
    readonly rotateStates?: string[];
    /**
     * Tags.
     */
    readonly tags?: outputs.kms.GetKeysTag[];
    /**
     * The total count of query.
     */
    readonly totalCount: number;
    readonly updateDateRanges?: string[];
}
/**
 * Use this data source to query detailed information of kms keys
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const default = volcengine.kms.getKeys({
 *     creationDateRanges: [
 *         "2025-06-01 19:48:06",
 *         "2025-06-04 19:48:06",
 *     ],
 *     descriptions: ["tf-test"],
 *     keyNames: [
 *         "mrk-tf-key-mod",
 *         "mrk-tf-key",
 *     ],
 *     keySpecs: ["SYMMETRIC_256"],
 *     keyStates: ["Enable"],
 *     keyUsages: ["ENCRYPT_DECRYPT"],
 *     keyringId: "7a358829-bd5a-4763-ba77-7500ecxxxxxx",
 *     origins: ["CloudKMS"],
 *     protectionLevels: ["SOFTWARE"],
 *     rotateStates: ["Enable"],
 *     tags: [{
 *         key: "tf-k1",
 *         values: ["tf-v1"],
 *     }],
 *     updateDateRanges: [
 *         "2025-06-01 19:48:06",
 *         "2025-06-04 19:48:06",
 *     ],
 * });
 * ```
 */
export declare function getKeysOutput(args?: GetKeysOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetKeysResult>;
/**
 * A collection of arguments for invoking getKeys.
 */
export interface GetKeysOutputArgs {
    /**
     * The creation date of the keyring.
     */
    creationDateRanges?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The description of the key.
     */
    descriptions?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the key.
     */
    keyNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The algorithm used in the key. Valid values: SYMMETRIC_256, SYMMETRIC_128, RSA_2048, RSA_3072, RSA_4096, EC_P256K, EC_P256, EC_P384, EC_P521, EC_SM2.
     */
    keySpecs?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The state of the key.
     */
    keyStates?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The usage of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY.
     */
    keyUsages?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Query the Key ring that meets the specified conditions, which is composed of key-value pairs.
     */
    keyringId?: pulumi.Input<string>;
    /**
     * Query the Key ring that meets the specified conditions, which is composed of key-value pairs.
     */
    keyringName?: pulumi.Input<string>;
    /**
     * A Name Regex of Resource.
     */
    nameRegex?: pulumi.Input<string>;
    /**
     * The origin of the key. Valid values: CloudKMS, External.
     */
    origins?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * File name where to save data source results.
     */
    outputFile?: pulumi.Input<string>;
    /**
     * The protection level of the key. Valid values: SOFTWARE, HSM.
     */
    protectionLevels?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The state of the rotate. Valid values: Enable, Disable.
     */
    rotateStates?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.kms.GetKeysTagArgs>[]>;
    /**
     * The update date of the keyring.
     */
    updateDateRanges?: pulumi.Input<pulumi.Input<string>[]>;
}
