import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Certificate resource in Oracle Cloud Infrastructure Load Balancer service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/loadbalancer/latest/Certificate
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/load_balancer
 *
 * Creates an asynchronous request to add an SSL certificate bundle.
 *
 * Set the terraform flag `lifecycle { createBeforeDestroy = true }` in your certificate to facilitate rotating certificates.
 * A certificate cannot be deleted if it is attached to another resource (a listener or a backend set for example).
 * Because certificateName in the listener is an updatable parameter, terraform will attempt to recreate the certificate first and then update the listener but the certificate cannot be deleted while it is attached to a listener so it will fail.
 * Setting the flag makes it so that when a certificate is recreated, the new certificate will be created first before the old one gets deleted.
 * Whenever you change any values on a certificate that causes it to be recreated the certificateName MUST also change. Otherwise you will get an error saying that a certificate with that name already exists.
 *
 * ## Import
 *
 * Certificates can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:LoadBalancer/certificate:Certificate test_certificate "loadBalancers/{loadBalancerId}/certificates/{certificateName}"
 * ```
 */
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 Certificate Authority certificate, or any interim certificate, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
     * EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
     * VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
     * aXR5MRQwEgYDVQQDEwtCZXN0IENBIEx0ZDAeFw0wMD..TUwMTZaFw0wMTAy
     * ...
     * -----END CERTIFICATE-----
     */
    readonly caCertificate: pulumi.Output<string>;
    /**
     * A friendly name for the certificate bundle. It must be unique and it cannot be changed. Valid certificate bundle names include only alphanumeric characters, dashes, and underscores. Certificate bundle names cannot contain spaces. Avoid entering confidential information.  Example: `exampleCertificateBundle`
     */
    readonly certificateName: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the load balancer on which to add the certificate bundle.
     */
    readonly loadBalancerId: pulumi.Output<string>;
    /**
     * A passphrase for encrypted private keys. This is needed only if you created your certificate with a passphrase.
     */
    readonly passphrase: pulumi.Output<string | undefined>;
    /**
     * The SSL private key for your certificate, in PEM format.
     *
     * Example:
     *
     * -----BEGIN RSA PRIVATE KEY-----
     * jO1O1v2ftXMsawM90tnXwc6xhOAT1gDBC9S8DKeca..JZNUgYYwNS0dP2UK
     * tmyN+XqVcAKw4HqVmChXy5b5msu8eIq3uc2NqNVtR..2ksSLukP8pxXcHyb
     * +sEwvM4uf8qbnHAqwnOnP9+KV9vds6BaH1eRA4CHz..n+NVZlzBsTxTlS16
     * /Umr7wJzVrMqK5sDiSu4WuaaBdqMGfL5hLsTjcBFD..Da2iyQmSKuVD4lIZ
     * ...
     * -----END RSA PRIVATE KEY-----
     */
    readonly privateKey: pulumi.Output<string>;
    /**
     * The public certificate, in PEM format, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIC2jCCAkMCAg38MA0GCSqGSIb3DQEBBQUAMIGbM..QswCQYDVQQGEwJKU
     * A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxE..TAPBgNVBAoTCEZyY
     * MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWB..gNVBAMTD0ZyYW5rN
     * YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmc..mFuazRkZC5jb20wH
     * ...
     * -----END CERTIFICATE-----
     *
     *
     *
     * ** 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 publicCertificate: pulumi.Output<string>;
    readonly state: 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 Certificate Authority certificate, or any interim certificate, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
     * EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
     * VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
     * aXR5MRQwEgYDVQQDEwtCZXN0IENBIEx0ZDAeFw0wMD..TUwMTZaFw0wMTAy
     * ...
     * -----END CERTIFICATE-----
     */
    caCertificate?: pulumi.Input<string | undefined>;
    /**
     * A friendly name for the certificate bundle. It must be unique and it cannot be changed. Valid certificate bundle names include only alphanumeric characters, dashes, and underscores. Certificate bundle names cannot contain spaces. Avoid entering confidential information.  Example: `exampleCertificateBundle`
     */
    certificateName?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the load balancer on which to add the certificate bundle.
     */
    loadBalancerId?: pulumi.Input<string | undefined>;
    /**
     * A passphrase for encrypted private keys. This is needed only if you created your certificate with a passphrase.
     */
    passphrase?: pulumi.Input<string | undefined>;
    /**
     * The SSL private key for your certificate, in PEM format.
     *
     * Example:
     *
     * -----BEGIN RSA PRIVATE KEY-----
     * jO1O1v2ftXMsawM90tnXwc6xhOAT1gDBC9S8DKeca..JZNUgYYwNS0dP2UK
     * tmyN+XqVcAKw4HqVmChXy5b5msu8eIq3uc2NqNVtR..2ksSLukP8pxXcHyb
     * +sEwvM4uf8qbnHAqwnOnP9+KV9vds6BaH1eRA4CHz..n+NVZlzBsTxTlS16
     * /Umr7wJzVrMqK5sDiSu4WuaaBdqMGfL5hLsTjcBFD..Da2iyQmSKuVD4lIZ
     * ...
     * -----END RSA PRIVATE KEY-----
     */
    privateKey?: pulumi.Input<string | undefined>;
    /**
     * The public certificate, in PEM format, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIC2jCCAkMCAg38MA0GCSqGSIb3DQEBBQUAMIGbM..QswCQYDVQQGEwJKU
     * A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxE..TAPBgNVBAoTCEZyY
     * MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWB..gNVBAMTD0ZyYW5rN
     * YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmc..mFuazRkZC5jb20wH
     * ...
     * -----END CERTIFICATE-----
     *
     *
     *
     * ** 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
     */
    publicCertificate?: pulumi.Input<string | undefined>;
    state?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Certificate resource.
 */
export interface CertificateArgs {
    /**
     * The Certificate Authority certificate, or any interim certificate, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
     * EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
     * VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
     * aXR5MRQwEgYDVQQDEwtCZXN0IENBIEx0ZDAeFw0wMD..TUwMTZaFw0wMTAy
     * ...
     * -----END CERTIFICATE-----
     */
    caCertificate?: pulumi.Input<string | undefined>;
    /**
     * A friendly name for the certificate bundle. It must be unique and it cannot be changed. Valid certificate bundle names include only alphanumeric characters, dashes, and underscores. Certificate bundle names cannot contain spaces. Avoid entering confidential information.  Example: `exampleCertificateBundle`
     */
    certificateName: pulumi.Input<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the load balancer on which to add the certificate bundle.
     */
    loadBalancerId: pulumi.Input<string>;
    /**
     * A passphrase for encrypted private keys. This is needed only if you created your certificate with a passphrase.
     */
    passphrase?: pulumi.Input<string | undefined>;
    /**
     * The SSL private key for your certificate, in PEM format.
     *
     * Example:
     *
     * -----BEGIN RSA PRIVATE KEY-----
     * jO1O1v2ftXMsawM90tnXwc6xhOAT1gDBC9S8DKeca..JZNUgYYwNS0dP2UK
     * tmyN+XqVcAKw4HqVmChXy5b5msu8eIq3uc2NqNVtR..2ksSLukP8pxXcHyb
     * +sEwvM4uf8qbnHAqwnOnP9+KV9vds6BaH1eRA4CHz..n+NVZlzBsTxTlS16
     * /Umr7wJzVrMqK5sDiSu4WuaaBdqMGfL5hLsTjcBFD..Da2iyQmSKuVD4lIZ
     * ...
     * -----END RSA PRIVATE KEY-----
     */
    privateKey?: pulumi.Input<string | undefined>;
    /**
     * The public certificate, in PEM format, that you received from your SSL certificate provider.
     *
     * Example:
     *
     * -----BEGIN CERTIFICATE-----
     * MIIC2jCCAkMCAg38MA0GCSqGSIb3DQEBBQUAMIGbM..QswCQYDVQQGEwJKU
     * A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxE..TAPBgNVBAoTCEZyY
     * MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWB..gNVBAMTD0ZyYW5rN
     * YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmc..mFuazRkZC5jb20wH
     * ...
     * -----END CERTIFICATE-----
     *
     *
     *
     * ** 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
     */
    publicCertificate?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=certificate.d.ts.map