import * as pulumi from "@pulumi/pulumi";
/**
 * Provides a DigitalOcean CDN Endpoint resource for use with Spaces.
 *
 * ## Example Usage
 *
 * ### Basic Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as digitalocean from "@pulumi/digitalocean";
 *
 * // Create a new Spaces Bucket
 * const mybucket = new digitalocean.SpacesBucket("mybucket", {
 *     name: "example",
 *     region: digitalocean.Region.SFO2,
 *     acl: "public-read",
 * });
 * // Add a CDN endpoint to the Spaces Bucket
 * const mycdn = new digitalocean.Cdn("mycdn", {origin: mybucket.bucketDomainName});
 * export const fqdn = mycdn.endpoint;
 * ```
 *
 * ### Custom Sub-Domain Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as digitalocean from "@pulumi/digitalocean";
 *
 * // Create a new Spaces Bucket
 * const mybucket = new digitalocean.SpacesBucket("mybucket", {
 *     name: "example",
 *     region: digitalocean.Region.SFO2,
 *     acl: "public-read",
 * });
 * // Create a DigitalOcean managed Let's Encrypt Certificate
 * const cert = new digitalocean.Certificate("cert", {
 *     name: "cdn-cert",
 *     type: digitalocean.CertificateType.LetsEncrypt,
 *     domains: ["static.example.com"],
 * });
 * // Add a CDN endpoint with a custom sub-domain to the Spaces Bucket
 * const mycdn = new digitalocean.Cdn("mycdn", {
 *     origin: mybucket.bucketDomainName,
 *     customDomain: "static.example.com",
 *     certificateName: cert.name,
 * });
 * ```
 *
 * ## Import
 *
 * CDN Endpoints can be imported using the CDN `id`, e.g.
 *
 * ```sh
 * $ pulumi import digitalocean:index/cdn:Cdn mycdn fb06ad00-351f-45c8-b5eb-13523c438661
 * ```
 */
export declare class Cdn extends pulumi.CustomResource {
    /**
     * Get an existing Cdn 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?: CdnState, opts?: pulumi.CustomResourceOptions): Cdn;
    /**
     * Returns true if the given object is an instance of Cdn.  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 Cdn;
    /**
     * **Deprecated** The ID of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     *
     * @deprecated Certificate IDs may change, for example when a Let's Encrypt certificate is auto-renewed. Please specify 'certificate_name' instead.
     */
    readonly certificateId: pulumi.Output<string>;
    /**
     * The unique name of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     */
    readonly certificateName: pulumi.Output<string>;
    /**
     * The date and time when the CDN Endpoint was created.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * The fully qualified domain name (FQDN) of the custom subdomain used with the CDN Endpoint.
     */
    readonly customDomain: pulumi.Output<string | undefined>;
    /**
     * The fully qualified domain name (FQDN) from which the CDN-backed content is served.
     */
    readonly endpoint: pulumi.Output<string>;
    /**
     * The fully qualified domain name, (FQDN) for a Space.
     */
    readonly origin: pulumi.Output<string>;
    /**
     * The time to live for the CDN Endpoint, in seconds. Default is 3600 seconds.
     */
    readonly ttl: pulumi.Output<number>;
    /**
     * Create a Cdn 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: CdnArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Cdn resources.
 */
export interface CdnState {
    /**
     * **Deprecated** The ID of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     *
     * @deprecated Certificate IDs may change, for example when a Let's Encrypt certificate is auto-renewed. Please specify 'certificate_name' instead.
     */
    certificateId?: pulumi.Input<string>;
    /**
     * The unique name of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     */
    certificateName?: pulumi.Input<string>;
    /**
     * The date and time when the CDN Endpoint was created.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * The fully qualified domain name (FQDN) of the custom subdomain used with the CDN Endpoint.
     */
    customDomain?: pulumi.Input<string>;
    /**
     * The fully qualified domain name (FQDN) from which the CDN-backed content is served.
     */
    endpoint?: pulumi.Input<string>;
    /**
     * The fully qualified domain name, (FQDN) for a Space.
     */
    origin?: pulumi.Input<string>;
    /**
     * The time to live for the CDN Endpoint, in seconds. Default is 3600 seconds.
     */
    ttl?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a Cdn resource.
 */
export interface CdnArgs {
    /**
     * **Deprecated** The ID of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     *
     * @deprecated Certificate IDs may change, for example when a Let's Encrypt certificate is auto-renewed. Please specify 'certificate_name' instead.
     */
    certificateId?: pulumi.Input<string>;
    /**
     * The unique name of a DigitalOcean managed TLS certificate used for SSL when a custom subdomain is provided.
     */
    certificateName?: pulumi.Input<string>;
    /**
     * The fully qualified domain name (FQDN) of the custom subdomain used with the CDN Endpoint.
     */
    customDomain?: pulumi.Input<string>;
    /**
     * The fully qualified domain name, (FQDN) for a Space.
     */
    origin: pulumi.Input<string>;
    /**
     * The time to live for the CDN Endpoint, in seconds. Default is 3600 seconds.
     */
    ttl?: pulumi.Input<number>;
}
