import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * The AuthConfig resource use to hold channels and connection config data.
 *
 * To get more information about AuthConfig, see:
 *
 * * [API documentation](https://cloud.google.com/application-integration/docs/reference/rest/v1/projects.locations.authConfigs)
 * * How-to Guides
 *     * [Manage authentication profiles](https://cloud.google.com/application-integration/docs/configure-authentication-profiles)
 *     * [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
 *
 * ## Example Usage
 *
 * ### Integrations Auth Config Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const client = new gcp.applicationintegration.Client("client", {location: "us-west1"});
 * const basicExample = new gcp.applicationintegration.AuthConfig("basic_example", {
 *     location: "us-west1",
 *     displayName: "test-authconfig",
 *     description: "Test auth config created via terraform",
 *     decryptedCredential: {
 *         credentialType: "USERNAME_AND_PASSWORD",
 *         usernameAndPassword: {
 *             username: "test-username",
 *             password: "test-password",
 *         },
 *     },
 * }, {
 *     dependsOn: [client],
 * });
 * ```
 *
 * ## Import
 *
 * AuthConfig can be imported using any of these accepted formats:
 *
 * * `{{project}}/{{name}}`
 *
 * * `{{project}} {{name}}`
 *
 * * `{{name}}`
 *
 * When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}"
 * ```
 *
 * ```sh
 * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}}
 * ```
 */
export declare class AuthConfig extends pulumi.CustomResource {
    /**
     * Get an existing AuthConfig 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?: AuthConfigState, opts?: pulumi.CustomResourceOptions): AuthConfig;
    /**
     * Returns true if the given object is an instance of AuthConfig.  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 AuthConfig;
    /**
     * Certificate id for client certificate.
     */
    readonly certificateId: pulumi.Output<string>;
    /**
     * Raw client certificate
     * Structure is documented below.
     */
    readonly clientCertificate: pulumi.Output<outputs.applicationintegration.AuthConfigClientCertificate | undefined>;
    /**
     * The timestamp when the auth config is created.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * The creator's email address. Generated based on the End User Credentials/LOAS role of the user making the call.
     */
    readonly creatorEmail: pulumi.Output<string>;
    /**
     * Credential type of the encrypted credential.
     */
    readonly credentialType: pulumi.Output<string>;
    /**
     * Raw auth credentials.
     * Structure is documented below.
     */
    readonly decryptedCredential: pulumi.Output<outputs.applicationintegration.AuthConfigDecryptedCredential | undefined>;
    /**
     * A description of the auth config.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The name of the auth config.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Auth credential encrypted by Cloud KMS. Can be decrypted as Credential with proper KMS key.
     * A base64-encoded string.
     */
    readonly encryptedCredential: pulumi.Output<string>;
    /**
     * User can define the time to receive notification after which the auth config becomes invalid. Support up to 30 days. Support granularity in hours.
     * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
     */
    readonly expiryNotificationDurations: pulumi.Output<string[] | undefined>;
    /**
     * The last modifier's email address. Generated based on the End User Credentials/LOAS role of the user making the call.
     */
    readonly lastModifierEmail: pulumi.Output<string>;
    /**
     * Location in which client needs to be provisioned.
     *
     *
     * - - -
     */
    readonly location: pulumi.Output<string>;
    /**
     * Resource name of the auth config.
     */
    readonly name: pulumi.Output<string>;
    /**
     * User provided expiry time to override. For the example of Salesforce, username/password credentials can be valid for 6 months depending on the instance settings.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    readonly overrideValidTime: pulumi.Output<string | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * The reason / details of the current status.
     */
    readonly reason: pulumi.Output<string>;
    /**
     * The status of the auth config.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The timestamp when the auth config is modified.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * The time until the auth config is valid. Empty or max value is considered the auth config won't expire.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    readonly validTime: pulumi.Output<string>;
    /**
     * The visibility of the auth config.
     * Possible values are: `PRIVATE`, `CLIENT_VISIBLE`.
     */
    readonly visibility: pulumi.Output<string | undefined>;
    /**
     * Create a AuthConfig 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: AuthConfigArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AuthConfig resources.
 */
export interface AuthConfigState {
    /**
     * Certificate id for client certificate.
     */
    certificateId?: pulumi.Input<string>;
    /**
     * Raw client certificate
     * Structure is documented below.
     */
    clientCertificate?: pulumi.Input<inputs.applicationintegration.AuthConfigClientCertificate>;
    /**
     * The timestamp when the auth config is created.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    createTime?: pulumi.Input<string>;
    /**
     * The creator's email address. Generated based on the End User Credentials/LOAS role of the user making the call.
     */
    creatorEmail?: pulumi.Input<string>;
    /**
     * Credential type of the encrypted credential.
     */
    credentialType?: pulumi.Input<string>;
    /**
     * Raw auth credentials.
     * Structure is documented below.
     */
    decryptedCredential?: pulumi.Input<inputs.applicationintegration.AuthConfigDecryptedCredential>;
    /**
     * A description of the auth config.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the auth config.
     */
    displayName?: pulumi.Input<string>;
    /**
     * Auth credential encrypted by Cloud KMS. Can be decrypted as Credential with proper KMS key.
     * A base64-encoded string.
     */
    encryptedCredential?: pulumi.Input<string>;
    /**
     * User can define the time to receive notification after which the auth config becomes invalid. Support up to 30 days. Support granularity in hours.
     * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
     */
    expiryNotificationDurations?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The last modifier's email address. Generated based on the End User Credentials/LOAS role of the user making the call.
     */
    lastModifierEmail?: pulumi.Input<string>;
    /**
     * Location in which client needs to be provisioned.
     *
     *
     * - - -
     */
    location?: pulumi.Input<string>;
    /**
     * Resource name of the auth config.
     */
    name?: pulumi.Input<string>;
    /**
     * User provided expiry time to override. For the example of Salesforce, username/password credentials can be valid for 6 months depending on the instance settings.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    overrideValidTime?: pulumi.Input<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * The reason / details of the current status.
     */
    reason?: pulumi.Input<string>;
    /**
     * The status of the auth config.
     */
    state?: pulumi.Input<string>;
    /**
     * The timestamp when the auth config is modified.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    updateTime?: pulumi.Input<string>;
    /**
     * The time until the auth config is valid. Empty or max value is considered the auth config won't expire.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    validTime?: pulumi.Input<string>;
    /**
     * The visibility of the auth config.
     * Possible values are: `PRIVATE`, `CLIENT_VISIBLE`.
     */
    visibility?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a AuthConfig resource.
 */
export interface AuthConfigArgs {
    /**
     * Raw client certificate
     * Structure is documented below.
     */
    clientCertificate?: pulumi.Input<inputs.applicationintegration.AuthConfigClientCertificate>;
    /**
     * Raw auth credentials.
     * Structure is documented below.
     */
    decryptedCredential?: pulumi.Input<inputs.applicationintegration.AuthConfigDecryptedCredential>;
    /**
     * A description of the auth config.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the auth config.
     */
    displayName: pulumi.Input<string>;
    /**
     * User can define the time to receive notification after which the auth config becomes invalid. Support up to 30 days. Support granularity in hours.
     * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
     */
    expiryNotificationDurations?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Location in which client needs to be provisioned.
     *
     *
     * - - -
     */
    location: pulumi.Input<string>;
    /**
     * User provided expiry time to override. For the example of Salesforce, username/password credentials can be valid for 6 months depending on the instance settings.
     * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
     */
    overrideValidTime?: pulumi.Input<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * The visibility of the auth config.
     * Possible values are: `PRIVATE`, `CLIENT_VISIBLE`.
     */
    visibility?: pulumi.Input<string>;
}
