Endpoint Args
data class EndpointArgs(val contentTypesToCompress: Output<List<String>>? = null, val defaultOriginGroup: Output<ResourceReferenceArgs>? = null, val deliveryPolicy: Output<EndpointPropertiesUpdateParametersDeliveryPolicyArgs>? = null, val endpointName: Output<String>? = null, val geoFilters: Output<List<GeoFilterArgs>>? = null, val isCompressionEnabled: Output<Boolean>? = null, val isHttpAllowed: Output<Boolean>? = null, val isHttpsAllowed: Output<Boolean>? = null, val location: Output<String>? = null, val optimizationType: Output<Either<String, OptimizationType>>? = null, val originGroups: Output<List<DeepCreatedOriginGroupArgs>>? = null, val originHostHeader: Output<String>? = null, val originPath: Output<String>? = null, val origins: Output<List<DeepCreatedOriginArgs>>? = null, val probePath: Output<String>? = null, val profileName: Output<String>? = null, val queryStringCachingBehavior: Output<QueryStringCachingBehavior>? = null, val resourceGroupName: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val urlSigningKeys: Output<List<UrlSigningKeyArgs>>? = null, val webApplicationFirewallPolicyLink: Output<EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkArgs>? = null) : ConvertibleToJava<EndpointArgs>
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
Example Usage
Endpoints_Create
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var endpoint = new AzureNative.Cdn.Endpoint("endpoint", new()
{
ContentTypesToCompress = new[]
{
"text/html",
"application/octet-stream",
},
DefaultOriginGroup = new AzureNative.Cdn.Inputs.ResourceReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/originGroups/originGroup1",
},
DeliveryPolicy = new AzureNative.Cdn.Inputs.EndpointPropertiesUpdateParametersDeliveryPolicyArgs
{
Description = "Test description for a policy.",
Rules = new[]
{
new AzureNative.Cdn.Inputs.DeliveryRuleArgs
{
Actions =
{
new AzureNative.Cdn.Inputs.DeliveryRuleCacheExpirationActionArgs
{
Name = "CacheExpiration",
Parameters = new AzureNative.Cdn.Inputs.CacheExpirationActionParametersArgs
{
CacheBehavior = "Override",
CacheDuration = "10:10:09",
CacheType = "All",
OdataType = "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters",
},
},
new AzureNative.Cdn.Inputs.DeliveryRuleResponseHeaderActionArgs
{
Name = "ModifyResponseHeader",
Parameters = new AzureNative.Cdn.Inputs.HeaderActionParametersArgs
{
HeaderAction = "Overwrite",
HeaderName = "Access-Control-Allow-Origin",
OdataType = "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
Value = "*",
},
},
new AzureNative.Cdn.Inputs.DeliveryRuleRequestHeaderActionArgs
{
Name = "ModifyRequestHeader",
Parameters = new AzureNative.Cdn.Inputs.HeaderActionParametersArgs
{
HeaderAction = "Overwrite",
HeaderName = "Accept-Encoding",
OdataType = "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
Value = "gzip",
},
},
},
Conditions = new[]
{
new AzureNative.Cdn.Inputs.DeliveryRuleRemoteAddressConditionArgs
{
Name = "RemoteAddress",
Parameters = new AzureNative.Cdn.Inputs.RemoteAddressMatchConditionParametersArgs
{
MatchValues = new[]
{
"192.168.1.0/24",
"10.0.0.0/24",
},
NegateCondition = true,
OdataType = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters",
Operator = "IPMatch",
},
},
},
Name = "rule1",
Order = 1,
},
},
},
EndpointName = "endpoint1",
IsCompressionEnabled = true,
IsHttpAllowed = true,
IsHttpsAllowed = true,
Location = "WestUs",
OriginGroups = new[]
{
new AzureNative.Cdn.Inputs.DeepCreatedOriginGroupArgs
{
HealthProbeSettings = new AzureNative.Cdn.Inputs.HealthProbeParametersArgs
{
ProbeIntervalInSeconds = 120,
ProbePath = "/health.aspx",
ProbeProtocol = AzureNative.Cdn.ProbeProtocol.Http,
ProbeRequestType = AzureNative.Cdn.HealthProbeRequestType.GET,
},
Name = "originGroup1",
Origins = new[]
{
new AzureNative.Cdn.Inputs.ResourceReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin1",
},
new AzureNative.Cdn.Inputs.ResourceReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin2",
},
},
ResponseBasedOriginErrorDetectionSettings = new AzureNative.Cdn.Inputs.ResponseBasedOriginErrorDetectionParametersArgs
{
ResponseBasedDetectedErrorTypes = AzureNative.Cdn.ResponseBasedDetectedErrorTypes.TcpErrorsOnly,
ResponseBasedFailoverThresholdPercentage = 10,
},
},
},
OriginHostHeader = "www.bing.com",
OriginPath = "/photos",
Origins = new[]
{
new AzureNative.Cdn.Inputs.DeepCreatedOriginArgs
{
Enabled = true,
HostName = "www.someDomain1.net",
HttpPort = 80,
HttpsPort = 443,
Name = "origin1",
OriginHostHeader = "www.someDomain1.net",
Priority = 1,
Weight = 50,
},
new AzureNative.Cdn.Inputs.DeepCreatedOriginArgs
{
Enabled = true,
HostName = "www.someDomain2.net",
HttpPort = 80,
HttpsPort = 443,
Name = "origin2",
OriginHostHeader = "www.someDomain2.net",
Priority = 2,
Weight = 50,
},
},
ProfileName = "profile1",
QueryStringCachingBehavior = AzureNative.Cdn.QueryStringCachingBehavior.BypassCaching,
ResourceGroupName = "RG",
Tags =
{
{ "key1", "value1" },
},
});
});
Content copied to clipboard
package main
import (
cdn "github.com/pulumi/pulumi-azure-native-sdk/cdn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cdn.NewEndpoint(ctx, "endpoint", &cdn.EndpointArgs{
ContentTypesToCompress: pulumi.StringArray{
pulumi.String("text/html"),
pulumi.String("application/octet-stream"),
},
DefaultOriginGroup: &cdn.ResourceReferenceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/originGroups/originGroup1"),
},
DeliveryPolicy: cdn.EndpointPropertiesUpdateParametersResponseDeliveryPolicy{
Description: pulumi.String("Test description for a policy."),
Rules: []cdn.DeliveryRuleArgs{
{
Actions: pulumi.AnyArray{
{
Name: "CacheExpiration",
Parameters: {
CacheBehavior: "Override",
CacheDuration: "10:10:09",
CacheType: "All",
OdataType: "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters",
},
},
{
Name: "ModifyResponseHeader",
Parameters: {
HeaderAction: "Overwrite",
HeaderName: "Access-Control-Allow-Origin",
OdataType: "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
Value: "*",
},
},
{
Name: "ModifyRequestHeader",
Parameters: {
HeaderAction: "Overwrite",
HeaderName: "Accept-Encoding",
OdataType: "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
Value: "gzip",
},
},
},
Conditions: pulumi.AnyArray{
{
Name: "RemoteAddress",
Parameters: {
MatchValues: []string{
"192.168.1.0/24",
"10.0.0.0/24",
},
NegateCondition: true,
OdataType: "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters",
Operator: "IPMatch",
},
},
},
Name: pulumi.String("rule1"),
Order: pulumi.Int(1),
},
},
},
EndpointName: pulumi.String("endpoint1"),
IsCompressionEnabled: pulumi.Bool(true),
IsHttpAllowed: pulumi.Bool(true),
IsHttpsAllowed: pulumi.Bool(true),
Location: pulumi.String("WestUs"),
OriginGroups: []cdn.DeepCreatedOriginGroupArgs{
{
HealthProbeSettings: {
ProbeIntervalInSeconds: pulumi.Int(120),
ProbePath: pulumi.String("/health.aspx"),
ProbeProtocol: cdn.ProbeProtocolHttp,
ProbeRequestType: cdn.HealthProbeRequestTypeGET,
},
Name: pulumi.String("originGroup1"),
Origins: cdn.ResourceReferenceArray{
{
Id: pulumi.String("/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin1"),
},
{
Id: pulumi.String("/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin2"),
},
},
ResponseBasedOriginErrorDetectionSettings: {
ResponseBasedDetectedErrorTypes: cdn.ResponseBasedDetectedErrorTypesTcpErrorsOnly,
ResponseBasedFailoverThresholdPercentage: pulumi.Int(10),
},
},
},
OriginHostHeader: pulumi.String("www.bing.com"),
OriginPath: pulumi.String("/photos"),
Origins: []cdn.DeepCreatedOriginArgs{
{
Enabled: pulumi.Bool(true),
HostName: pulumi.String("www.someDomain1.net"),
HttpPort: pulumi.Int(80),
HttpsPort: pulumi.Int(443),
Name: pulumi.String("origin1"),
OriginHostHeader: pulumi.String("www.someDomain1.net"),
Priority: pulumi.Int(1),
Weight: pulumi.Int(50),
},
{
Enabled: pulumi.Bool(true),
HostName: pulumi.String("www.someDomain2.net"),
HttpPort: pulumi.Int(80),
HttpsPort: pulumi.Int(443),
Name: pulumi.String("origin2"),
OriginHostHeader: pulumi.String("www.someDomain2.net"),
Priority: pulumi.Int(2),
Weight: pulumi.Int(50),
},
},
ProfileName: pulumi.String("profile1"),
QueryStringCachingBehavior: cdn.QueryStringCachingBehaviorBypassCaching,
ResourceGroupName: pulumi.String("RG"),
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
},
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.cdn.Endpoint;
import com.pulumi.azurenative.cdn.EndpointArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var endpoint = new Endpoint("endpoint", EndpointArgs.builder()
.contentTypesToCompress(
"text/html",
"application/octet-stream")
.defaultOriginGroup(Map.of("id", "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/originGroups/originGroup1"))
.deliveryPolicy(Map.ofEntries(
Map.entry("description", "Test description for a policy."),
Map.entry("rules", Map.ofEntries(
Map.entry("actions",
Map.ofEntries(
Map.entry("name", "CacheExpiration"),
Map.entry("parameters", Map.ofEntries(
Map.entry("cacheBehavior", "Override"),
Map.entry("cacheDuration", "10:10:09"),
Map.entry("cacheType", "All"),
Map.entry("odataType", "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters")
))
),
Map.ofEntries(
Map.entry("name", "ModifyResponseHeader"),
Map.entry("parameters", Map.ofEntries(
Map.entry("headerAction", "Overwrite"),
Map.entry("headerName", "Access-Control-Allow-Origin"),
Map.entry("odataType", "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters"),
Map.entry("value", "*")
))
),
Map.ofEntries(
Map.entry("name", "ModifyRequestHeader"),
Map.entry("parameters", Map.ofEntries(
Map.entry("headerAction", "Overwrite"),
Map.entry("headerName", "Accept-Encoding"),
Map.entry("odataType", "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters"),
Map.entry("value", "gzip")
))
)),
Map.entry("conditions", Map.ofEntries(
Map.entry("name", "RemoteAddress"),
Map.entry("parameters", Map.ofEntries(
Map.entry("matchValues",
"192.168.1.0/24",
"10.0.0.0/24"),
Map.entry("negateCondition", true),
Map.entry("odataType", "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters"),
Map.entry("operator", "IPMatch")
))
)),
Map.entry("name", "rule1"),
Map.entry("order", 1)
))
))
.endpointName("endpoint1")
.isCompressionEnabled(true)
.isHttpAllowed(true)
.isHttpsAllowed(true)
.location("WestUs")
.originGroups(Map.ofEntries(
Map.entry("healthProbeSettings", Map.ofEntries(
Map.entry("probeIntervalInSeconds", 120),
Map.entry("probePath", "/health.aspx"),
Map.entry("probeProtocol", "Http"),
Map.entry("probeRequestType", "GET")
)),
Map.entry("name", "originGroup1"),
Map.entry("origins",
Map.of("id", "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin1"),
Map.of("id", "/subscriptions/subid/resourceGroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/origins/origin2")),
Map.entry("responseBasedOriginErrorDetectionSettings", Map.ofEntries(
Map.entry("responseBasedDetectedErrorTypes", "TcpErrorsOnly"),
Map.entry("responseBasedFailoverThresholdPercentage", 10)
))
))
.originHostHeader("www.bing.com")
.originPath("/photos")
.origins(
Map.ofEntries(
Map.entry("enabled", true),
Map.entry("hostName", "www.someDomain1.net"),
Map.entry("httpPort", 80),
Map.entry("httpsPort", 443),
Map.entry("name", "origin1"),
Map.entry("originHostHeader", "www.someDomain1.net"),
Map.entry("priority", 1),
Map.entry("weight", 50)
),
Map.ofEntries(
Map.entry("enabled", true),
Map.entry("hostName", "www.someDomain2.net"),
Map.entry("httpPort", 80),
Map.entry("httpsPort", 443),
Map.entry("name", "origin2"),
Map.entry("originHostHeader", "www.someDomain2.net"),
Map.entry("priority", 2),
Map.entry("weight", 50)
))
.profileName("profile1")
.queryStringCachingBehavior("BypassCaching")
.resourceGroupName("RG")
.tags(Map.of("key1", "value1"))
.build());
}
}
Content copied to clipboard
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:cdn:Endpoint endpoint4899 /subscriptions/subid/resourcegroups/RG/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1
Content copied to clipboard
Constructors
Link copied to clipboard
fun EndpointArgs(contentTypesToCompress: Output<List<String>>? = null, defaultOriginGroup: Output<ResourceReferenceArgs>? = null, deliveryPolicy: Output<EndpointPropertiesUpdateParametersDeliveryPolicyArgs>? = null, endpointName: Output<String>? = null, geoFilters: Output<List<GeoFilterArgs>>? = null, isCompressionEnabled: Output<Boolean>? = null, isHttpAllowed: Output<Boolean>? = null, isHttpsAllowed: Output<Boolean>? = null, location: Output<String>? = null, optimizationType: Output<Either<String, OptimizationType>>? = null, originGroups: Output<List<DeepCreatedOriginGroupArgs>>? = null, originHostHeader: Output<String>? = null, originPath: Output<String>? = null, origins: Output<List<DeepCreatedOriginArgs>>? = null, probePath: Output<String>? = null, profileName: Output<String>? = null, queryStringCachingBehavior: Output<QueryStringCachingBehavior>? = null, resourceGroupName: Output<String>? = null, tags: Output<Map<String, String>>? = null, urlSigningKeys: Output<List<UrlSigningKeyArgs>>? = null, webApplicationFirewallPolicyLink: Output<EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkArgs>? = null)
Functions
Properties
Link copied to clipboard
Link copied to clipboard
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.
Link copied to clipboard
Link copied to clipboard