import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * CDN endpoint is the entity within a CDN profile containing configuration information such as origin, protocol, content caching and delivery behavior. The CDN endpoint uses the URL format <endpointname>.azureedge.net.
 *
 * Uses Azure REST API version 2025-06-01. In version 2.x of the Azure Native provider, it used API version 2023-05-01.
 *
 * Other available API versions: 2023-05-01, 2023-07-01-preview, 2024-02-01, 2024-05-01-preview, 2024-06-01-preview, 2024-09-01, 2025-01-01-preview, 2025-04-15, 2025-07-01-preview, 2025-09-01-preview. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native cdn [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class Endpoint extends pulumi.CustomResource {
    /**
     * Get an existing Endpoint 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Endpoint;
    /**
     * Returns true if the given object is an instance of Endpoint.  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 Endpoint;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * List of content types on which compression applies. The value should be a valid MIME type.
     */
    readonly contentTypesToCompress: pulumi.Output<string[] | undefined>;
    /**
     * The custom domains under the endpoint.
     */
    readonly customDomains: pulumi.Output<outputs.cdn.DeepCreatedCustomDomainResponse[]>;
    /**
     * A reference to the origin group.
     */
    readonly defaultOriginGroup: pulumi.Output<outputs.cdn.ResourceReferenceResponse | undefined>;
    /**
     * A policy that specifies the delivery rules to be used for an endpoint.
     */
    readonly deliveryPolicy: pulumi.Output<outputs.cdn.EndpointPropertiesUpdateParametersDeliveryPolicyResponse | undefined>;
    /**
     * List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
     */
    readonly geoFilters: pulumi.Output<outputs.cdn.GeoFilterResponse[] | undefined>;
    /**
     * The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g. contoso.azureedge.net
     */
    readonly hostName: pulumi.Output<string>;
    /**
     * Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
     */
    readonly isCompressionEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     */
    readonly isHttpAllowed: pulumi.Output<boolean | undefined>;
    /**
     * Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     */
    readonly isHttpsAllowed: pulumi.Output<boolean | undefined>;
    /**
     * The geo-location where the resource lives
     */
    readonly location: pulumi.Output<string>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
     */
    readonly optimizationType: pulumi.Output<string | undefined>;
    /**
     * The origin groups comprising of origins that are used for load balancing the traffic based on availability.
     */
    readonly originGroups: pulumi.Output<outputs.cdn.DeepCreatedOriginGroupResponse[] | undefined>;
    /**
     * The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
     */
    readonly originHostHeader: pulumi.Output<string | undefined>;
    /**
     * A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
     */
    readonly originPath: pulumi.Output<string | undefined>;
    /**
     * The source of the content being delivered via CDN.
     */
    readonly origins: pulumi.Output<outputs.cdn.DeepCreatedOriginResponse[]>;
    /**
     * Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
     */
    readonly probePath: pulumi.Output<string | undefined>;
    /**
     * Provisioning status of the endpoint.
     */
    readonly provisioningState: pulumi.Output<string>;
    /**
     * Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
     */
    readonly queryStringCachingBehavior: pulumi.Output<string | undefined>;
    /**
     * Resource status of the endpoint.
     */
    readonly resourceState: pulumi.Output<string>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.cdn.SystemDataResponse>;
    /**
     * Resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * List of keys used to validate the signed URL hashes.
     */
    readonly urlSigningKeys: pulumi.Output<outputs.cdn.UrlSigningKeyResponse[] | undefined>;
    /**
     * Defines the Web Application Firewall policy for the endpoint (if applicable)
     */
    readonly webApplicationFirewallPolicyLink: pulumi.Output<outputs.cdn.EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkResponse | undefined>;
    /**
     * Create a Endpoint 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: EndpointArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Endpoint resource.
 */
export interface EndpointArgs {
    /**
     * List of content types on which compression applies. The value should be a valid MIME type.
     */
    contentTypesToCompress?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A reference to the origin group.
     */
    defaultOriginGroup?: pulumi.Input<inputs.cdn.ResourceReferenceArgs>;
    /**
     * A policy that specifies the delivery rules to be used for an endpoint.
     */
    deliveryPolicy?: pulumi.Input<inputs.cdn.EndpointPropertiesUpdateParametersDeliveryPolicyArgs>;
    /**
     * Name of the endpoint under the profile which is unique globally.
     */
    endpointName?: pulumi.Input<string>;
    /**
     * List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
     */
    geoFilters?: pulumi.Input<pulumi.Input<inputs.cdn.GeoFilterArgs>[]>;
    /**
     * Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
     */
    isCompressionEnabled?: pulumi.Input<boolean>;
    /**
     * Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     */
    isHttpAllowed?: pulumi.Input<boolean>;
    /**
     * Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     */
    isHttpsAllowed?: pulumi.Input<boolean>;
    /**
     * The geo-location where the resource lives
     */
    location?: pulumi.Input<string>;
    /**
     * Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
     */
    optimizationType?: pulumi.Input<string | enums.cdn.OptimizationType>;
    /**
     * The origin groups comprising of origins that are used for load balancing the traffic based on availability.
     */
    originGroups?: pulumi.Input<pulumi.Input<inputs.cdn.DeepCreatedOriginGroupArgs>[]>;
    /**
     * The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
     */
    originHostHeader?: pulumi.Input<string>;
    /**
     * A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
     */
    originPath?: pulumi.Input<string>;
    /**
     * The source of the content being delivered via CDN.
     */
    origins: pulumi.Input<pulumi.Input<inputs.cdn.DeepCreatedOriginArgs>[]>;
    /**
     * Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
     */
    probePath?: pulumi.Input<string>;
    /**
     * Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is unique within the resource group.
     */
    profileName: pulumi.Input<string>;
    /**
     * Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
     */
    queryStringCachingBehavior?: pulumi.Input<enums.cdn.QueryStringCachingBehavior>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * List of keys used to validate the signed URL hashes.
     */
    urlSigningKeys?: pulumi.Input<pulumi.Input<inputs.cdn.UrlSigningKeyArgs>[]>;
    /**
     * Defines the Web Application Firewall policy for the endpoint (if applicable)
     */
    webApplicationFirewallPolicyLink?: pulumi.Input<inputs.cdn.EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkArgs>;
}
