import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Api Key resource in Oracle Cloud Infrastructure Identity service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/identity/latest/ApiKey
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/identity
 *
 * Uploads an API signing key for the specified user.
 *
 * Every user has permission to use this operation to upload a key for *their own user ID*. An
 * administrator in your organization does not need to write a policy to give users this ability.
 * To compare, administrators who have permission to the tenancy can use this operation to upload a
 * key for any user, including themselves.
 *
 * **Important:** Even though you have permission to upload an API key, you might not yet
 * have permission to do much else. If you try calling an operation unrelated to your own credential
 * management (e.g., `ListUsers`, `LaunchInstance`) and receive an "unauthorized" error,
 * check with an administrator to confirm which IAM Service group(s) you're in and what access
 * you have. Also confirm you're working in the correct compartment.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testApiKey = new oci.identity.ApiKey("test_api_key", {
 *     keyValue: apiKeyKeyValue,
 *     userId: testUser.id,
 * });
 * ```
 *
 * ## Import
 *
 * ApiKeys can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Identity/apiKey:ApiKey test_api_key "users/{userId}/apiKeys/{fingerprint}"
 * ```
 */
export declare class ApiKey extends pulumi.CustomResource {
    /**
     * Get an existing ApiKey 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ApiKeyState, opts?: pulumi.CustomResourceOptions): ApiKey;
    /**
     * Returns true if the given object is an instance of ApiKey.  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 ApiKey;
    /**
     * The key's fingerprint (e.g., 12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef).
     */
    readonly fingerprint: pulumi.Output<string>;
    /**
     * The detailed status of INACTIVE lifecycleState.
     */
    readonly inactiveStatus: pulumi.Output<string>;
    /**
     * The public key.  Must be an RSA key in PEM format.
     */
    readonly keyValue: pulumi.Output<string>;
    /**
     * The API key's current state.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Date and time the `ApiKey` object was created, in the format defined by RFC3339.  Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The OCID of the user.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly userId: pulumi.Output<string>;
    /**
     * Create a ApiKey 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: ApiKeyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ApiKey resources.
 */
export interface ApiKeyState {
    /**
     * The key's fingerprint (e.g., 12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef).
     */
    fingerprint?: pulumi.Input<string | undefined>;
    /**
     * The detailed status of INACTIVE lifecycleState.
     */
    inactiveStatus?: pulumi.Input<string | undefined>;
    /**
     * The public key.  Must be an RSA key in PEM format.
     */
    keyValue?: pulumi.Input<string | undefined>;
    /**
     * The API key's current state.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Date and time the `ApiKey` object was created, in the format defined by RFC3339.  Example: `2016-08-25T21:10:29.600Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the user.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    userId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a ApiKey resource.
 */
export interface ApiKeyArgs {
    /**
     * The public key.  Must be an RSA key in PEM format.
     */
    keyValue: pulumi.Input<string>;
    /**
     * The OCID of the user.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    userId: pulumi.Input<string>;
}
//# sourceMappingURL=apiKey.d.ts.map