import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * The key resource.
 *
 * Uses Azure REST API version 2024-11-01. In version 2.x of the Azure Native provider, it used API version 2023-02-01.
 *
 * Other available API versions: 2023-02-01, 2023-07-01, 2024-04-01-preview, 2024-12-01-preview, 2025-05-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native keyvault [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class Key extends pulumi.CustomResource {
    /**
     * Get an existing Key resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Key;
    /**
     * Returns true if the given object is an instance of Key.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Key;
    /**
     * The attributes of the key.
     */
    readonly attributes: pulumi.Output<outputs.keyvault.KeyAttributesResponse | undefined>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * The elliptic curve name. For valid values, see JsonWebKeyCurveName. Default for EC and EC-HSM keys is P-256
     */
    readonly curveName: pulumi.Output<string | undefined>;
    readonly keyOps: pulumi.Output<string[] | undefined>;
    /**
     * The key size in bits. For example: 2048, 3072, or 4096 for RSA. Default for RSA and RSA-HSM keys is 2048. Exception made for bring your own key (BYOK), key exchange keys default to 4096.
     */
    readonly keySize: pulumi.Output<number | undefined>;
    /**
     * The URI to retrieve the current version of the key.
     */
    readonly keyUri: pulumi.Output<string>;
    /**
     * The URI to retrieve the specific version of the key.
     */
    readonly keyUriWithVersion: pulumi.Output<string>;
    /**
     * The type of the key. For valid values, see JsonWebKeyType.
     */
    readonly kty: pulumi.Output<string | undefined>;
    /**
     * Azure location of the key vault resource.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Name of the key vault resource.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Key release policy in response. It will be used for both output and input. Omitted if empty
     */
    readonly releasePolicy: pulumi.Output<outputs.keyvault.KeyReleasePolicyResponse | undefined>;
    /**
     * Key rotation policy in response. It will be used for both output and input. Omitted if empty
     */
    readonly rotationPolicy: pulumi.Output<outputs.keyvault.RotationPolicyResponse | undefined>;
    /**
     * Tags assigned to the key vault resource.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Resource type of the key vault resource.
     */
    readonly type: pulumi.Output<string>;
    /**
     * Create a Key resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: KeyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Key resource.
 */
export interface KeyArgs {
    /**
     * The name of the key to be created. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.
     */
    keyName?: pulumi.Input<string>;
    /**
     * The properties of the key to be created.
     */
    properties: pulumi.Input<inputs.keyvault.KeyPropertiesArgs>;
    /**
     * The name of the resource group which contains the specified key vault.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The tags that will be assigned to the key.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The name of the key vault which contains the key to be created.
     */
    vaultName: pulumi.Input<string>;
}
