import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an App Service certificate.
 *
 * ## Example Usage
 *
 * This example provisions an App Service Certificate from a Local File.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * import * as std from "@pulumi/std";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleCertificate = new azure.appservice.Certificate("example", {
 *     name: "example-cert",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     pfxBlob: std.filebase64({
 *         input: "certificate.pfx",
 *     }).then(invoke => invoke.result),
 *     password: "password123!",
 * });
 * ```
 *
 * ## Import
 *
 * App Service Certificates can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:appservice/certificate:Certificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/certificates/certificate1
 * ```
 */
export declare class Certificate extends pulumi.CustomResource {
    /**
     * Get an existing Certificate 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?: CertificateState, opts?: pulumi.CustomResourceOptions): Certificate;
    /**
     * Returns true if the given object is an instance of Certificate.  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 Certificate;
    /**
     * The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service or with Basic and Premium App Service plans. Changing this forces a new resource to be created.
     */
    readonly appServicePlanId: pulumi.Output<string | undefined>;
    /**
     * The expiration date for the certificate.
     */
    readonly expirationDate: pulumi.Output<string>;
    /**
     * The friendly name of the certificate.
     */
    readonly friendlyName: pulumi.Output<string>;
    /**
     * List of host names the certificate applies to.
     */
    readonly hostNames: pulumi.Output<string[]>;
    /**
     * The ID of the App Service Environment where the certificate is in use.
     */
    readonly hostingEnvironmentProfileId: pulumi.Output<string>;
    /**
     * The issue date for the certificate.
     */
    readonly issueDate: pulumi.Output<string>;
    /**
     * The name of the certificate issuer.
     */
    readonly issuer: pulumi.Output<string>;
    readonly keyVaultId: pulumi.Output<string | undefined>;
    /**
     * The ID of the Key Vault secret. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    readonly keyVaultSecretId: pulumi.Output<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Specifies the name of the certificate. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The password to access the certificate's private key. Changing this forces a new resource to be created.
     */
    readonly password: pulumi.Output<string | undefined>;
    /**
     * The base64-encoded contents of the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    readonly pfxBlob: pulumi.Output<string | undefined>;
    /**
     * The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The resource group must be the same as that which the app service plan is defined in - otherwise the certificate will not show as available for the app services.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * The subject name of the certificate.
     */
    readonly subjectName: pulumi.Output<string>;
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The thumbprint for the certificate.
     */
    readonly thumbprint: pulumi.Output<string>;
    /**
     * Create a Certificate 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: CertificateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Certificate resources.
 */
export interface CertificateState {
    /**
     * The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service or with Basic and Premium App Service plans. Changing this forces a new resource to be created.
     */
    appServicePlanId?: pulumi.Input<string | undefined>;
    /**
     * The expiration date for the certificate.
     */
    expirationDate?: pulumi.Input<string | undefined>;
    /**
     * The friendly name of the certificate.
     */
    friendlyName?: pulumi.Input<string | undefined>;
    /**
     * List of host names the certificate applies to.
     */
    hostNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The ID of the App Service Environment where the certificate is in use.
     */
    hostingEnvironmentProfileId?: pulumi.Input<string | undefined>;
    /**
     * The issue date for the certificate.
     */
    issueDate?: pulumi.Input<string | undefined>;
    /**
     * The name of the certificate issuer.
     */
    issuer?: pulumi.Input<string | undefined>;
    keyVaultId?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Key Vault secret. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    keyVaultSecretId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the certificate. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The password to access the certificate's private key. Changing this forces a new resource to be created.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The base64-encoded contents of the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    pfxBlob?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The resource group must be the same as that which the app service plan is defined in - otherwise the certificate will not show as available for the app services.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * The subject name of the certificate.
     */
    subjectName?: pulumi.Input<string | undefined>;
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The thumbprint for the certificate.
     */
    thumbprint?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Certificate resource.
 */
export interface CertificateArgs {
    /**
     * The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service or with Basic and Premium App Service plans. Changing this forces a new resource to be created.
     */
    appServicePlanId?: pulumi.Input<string | undefined>;
    keyVaultId?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Key Vault secret. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    keyVaultSecretId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the certificate. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The password to access the certificate's private key. Changing this forces a new resource to be created.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The base64-encoded contents of the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** Exactly one of `keyVaultSecretId` or `pfxBlob` must be specified.
     */
    pfxBlob?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The resource group must be the same as that which the app service plan is defined in - otherwise the certificate will not show as available for the app services.
     */
    resourceGroupName: pulumi.Input<string>;
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=certificate.d.ts.map