import "@typespec/rest"; import "@typespec/http"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; using Azure.ResourceManager; using TypeSpec.Versioning; namespace Microsoft.Cdn; /** * Type of CDN resource used in CheckNameAvailability. */ union ResourceType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/Profiles/Endpoints`: "Microsoft.Cdn/Profiles/Endpoints", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/Profiles/AfdEndpoints`: "Microsoft.Cdn/Profiles/AfdEndpoints", } /** * Indicates the endpoint name reuse scope. The default value is TenantReuse. */ union AutoGeneratedDomainNameLabelScope { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TenantReuse: "TenantReuse", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SubscriptionReuse: "SubscriptionReuse", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ResourceGroupReuse: "ResourceGroupReuse", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NoReuse: "NoReuse", } /** * An enum describing the unit of measurement. */ union UsageUnit { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Count: "Count", } /** * The type of the secret resource. */ union SecretType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlSigningKey: "UrlSigningKey", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CustomerCertificate: "CustomerCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ManagedCertificate: "ManagedCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" AzureFirstPartyManagedCertificate: "AzureFirstPartyManagedCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) MtlsCertificateChain: "MtlsCertificateChain", } /** * The validation status. */ union Status { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Valid: "Valid", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Invalid: "Invalid", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" AccessDenied: "AccessDenied", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CertificateExpired: "CertificateExpired", } /** * Name of the pricing tier. */ union SkuName { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_Verizon: "Standard_Verizon", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Premium_Verizon: "Premium_Verizon", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Custom_Verizon: "Custom_Verizon", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_Akamai: "Standard_Akamai", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_ChinaCdn: "Standard_ChinaCdn", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_Microsoft: "Standard_Microsoft", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_AzureFrontDoor: "Standard_AzureFrontDoor", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Premium_AzureFrontDoor: "Premium_AzureFrontDoor", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) Classic_AzureFrontDoor: "Classic_AzureFrontDoor", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_955BandWidth_ChinaCdn: "Standard_955BandWidth_ChinaCdn", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_AvgBandWidth_ChinaCdn: "Standard_AvgBandWidth_ChinaCdn", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" StandardPlus_ChinaCdn: "StandardPlus_ChinaCdn", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" StandardPlus_955BandWidth_ChinaCdn: "StandardPlus_955BandWidth_ChinaCdn", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" StandardPlus_AvgBandWidth_ChinaCdn: "StandardPlus_AvgBandWidth_ChinaCdn", } /** * Resource status of the profile. */ union ProfileResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Active: "Active", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Migrating: "Migrating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Migrated: "Migrated", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PendingMigrationCommit: "PendingMigrationCommit", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CommittingMigration: "CommittingMigration", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" AbortingMigration: "AbortingMigration", } /** * Provisioning status of the profile. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union ProfileProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } /** * State of the log scrubbing config. Default value is Enabled. */ union ProfileScrubbingState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * The variable to be scrubbed from the logs. */ union ScrubbingRuleEntryMatchVariable { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestIPAddress: "RequestIPAddress", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestUri: "RequestUri", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" QueryStringArgNames: "QueryStringArgNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) RequestHeaderNames: "RequestHeaderNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) RequestCookieNames: "RequestCookieNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) RequestBodyPostArgNames: "RequestBodyPostArgNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) RequestBodyJsonArgNames: "RequestBodyJsonArgNames", } /** * When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. */ union ScrubbingRuleEntryMatchOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EqualsAny: "EqualsAny", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) Equals: "Equals", } /** * Defines the state of a log scrubbing rule. Default value is enabled. */ union ScrubbingRuleEntryState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * The type of identity that created the resource. */ union CreatedByType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" User: "User", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Application: "Application", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ManagedIdentity: "ManagedIdentity", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Key: "Key", } /** * Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step. DCV stands for DomainControlValidation. */ union DomainValidationState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Unknown: "Unknown", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Submitting: "Submitting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Pending: "Pending", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Rejected: "Rejected", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TimedOut: "TimedOut", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PendingRevalidation: "PendingRevalidation", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Approved: "Approved", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RefreshingValidationToken: "RefreshingValidationToken", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" InternalError: "InternalError", } /** * Defines the source of the SSL certificate. */ union AfdCertificateType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CustomerCertificate: "CustomerCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ManagedCertificate: "ManagedCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" AzureFirstPartyManagedCertificate: "AzureFirstPartyManagedCertificate", } /** * cipher suite set type that will be used for Https */ union AfdCipherSuiteSetType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Customized: "Customized", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLS10_2019: "TLS10_2019", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLS12_2022: "TLS12_2022", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLS12_2023: "TLS12_2023", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union AfdCustomizedCipherSuiteForTls12 { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ECDHE_RSA_AES128_GCM_SHA256: "ECDHE_RSA_AES128_GCM_SHA256", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ECDHE_RSA_AES256_GCM_SHA384: "ECDHE_RSA_AES256_GCM_SHA384", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DHE_RSA_AES256_GCM_SHA384: "DHE_RSA_AES256_GCM_SHA384", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DHE_RSA_AES128_GCM_SHA256: "DHE_RSA_AES128_GCM_SHA256", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ECDHE_RSA_AES128_SHA256: "ECDHE_RSA_AES128_SHA256", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ECDHE_RSA_AES256_SHA384: "ECDHE_RSA_AES256_SHA384", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union AfdCustomizedCipherSuiteForTls13 { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLS_AES_128_GCM_SHA256: "TLS_AES_128_GCM_SHA256", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLS_AES_256_GCM_SHA384: "TLS_AES_256_GCM_SHA384", } /** * Supported scenarios for establishing mTLS connection. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union MtlsScenarioType { string, ClientCertificateRequiredAndValidated: "ClientCertificateRequiredAndValidated", ClientCertificateRequiredAndOriginValidates: "ClientCertificateRequiredAndOriginValidates", ClientCertificateValidatedIfPresented: "ClientCertificateValidatedIfPresented", CompleteMtlsPassthroughToOrigin: "CompleteMtlsPassthroughToOrigin", } /** * Provisioning status */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union AfdProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union DeploymentStatus { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NotStarted: "NotStarted", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" InProgress: "InProgress", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", } /** * Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' */ union EnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Set to Disabled by default. If set to Enabled, only custom domains with mTLS enabled can be added to child Route resources. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union EnforceMtlsEnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * The type of the authentication for the origin. */ union OriginAuthenticationType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SystemAssignedIdentity: "SystemAssignedIdentity", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UserAssignedIdentity: "UserAssignedIdentity", } /** * Supported protocols for the customer's endpoint. */ union AFDEndpointProtocols { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Http: "Http", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Https: "Https", } /** * Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings. */ union AfdQueryStringCachingBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IgnoreQueryString: "IgnoreQueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UseQueryString: "UseQueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IgnoreSpecifiedQueryStrings: "IgnoreSpecifiedQueryStrings", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IncludeSpecifiedQueryStrings: "IncludeSpecifiedQueryStrings", } /** * Protocol this rule will use when forwarding traffic to backends. */ union ForwardingProtocol { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HttpOnly: "HttpOnly", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HttpsOnly: "HttpsOnly", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" MatchRequest: "MatchRequest", } /** * whether this route will be linked to the default endpoint domain. */ union LinkToDefaultDomain { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Whether to automatically redirect HTTP traffic to HTTPS traffic. Note that this is a easy way to set up this rule and it will be the first rule that gets executed. */ union HttpsRedirect { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Whether or not gRPC is enabled on this route. Permitted values are 'Enabled' or 'Disabled' */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union AFDRouteGrpcState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Request variable to compare with. */ union MatchVariable { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RemoteAddress: "RemoteAddress", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestMethod: "RequestMethod", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" QueryString: "QueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PostArgs: "PostArgs", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestUri: "RequestUri", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestHeader: "RequestHeader", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestBody: "RequestBody", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestScheme: "RequestScheme", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlPath: "UrlPath", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlFileExtension: "UrlFileExtension", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlFileName: "UrlFileName", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HttpVersion: "HttpVersion", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Cookies: "Cookies", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IsDevice: "IsDevice", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SocketAddr: "SocketAddr", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ClientPort: "ClientPort", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ServerPort: "ServerPort", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HostName: "HostName", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SslProtocol: "SslProtocol", } /** * The name of the action for the delivery rule. */ union DeliveryRuleActionName { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CacheExpiration: "CacheExpiration", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CacheKeyQueryString: "CacheKeyQueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ModifyRequestHeader: "ModifyRequestHeader", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ModifyResponseHeader: "ModifyResponseHeader", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlRedirect: "UrlRedirect", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlRewrite: "UrlRewrite", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlSigning: "UrlSigning", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" OriginGroupOverride: "OriginGroupOverride", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RouteConfigurationOverride: "RouteConfigurationOverride", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) EdgeAction: "EdgeAction", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) AfdUrlSigning: "AfdUrlSigning", } /** * If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. */ union MatchProcessingBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Continue: "Continue", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Stop: "Stop", } /** * The type of the Security policy to create. */ union SecurityPolicyType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" WebApplicationFirewall: "WebApplicationFirewall", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) WebApplicationFirewallEmbedded: "WebApplicationFirewallEmbedded", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union ApprovalStatus { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NotApproved: "NotApproved", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Approved: "Approved", } /** * Deployment status of preview stage. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union DeploymentRolloutStatus { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NotStarted: "NotStarted", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" InProgress: "InProgress", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", } /** * Resource type supported by preview. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union PreviewSupportedResourceType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/afdEndpoints/route`: "Microsoft.Cdn/profiles/afdEndpoints/routes", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/originGroups`: "Microsoft.Cdn/profiles/originGroups", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/originGroups/origins`: "Microsoft.Cdn/profiles/originGroups/origins", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/ruleSets`: "Microsoft.Cdn/profiles/ruleSets", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/ruleSets/rules`: "Microsoft.Cdn/profiles/ruleSets/rules", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `Microsoft.Cdn/profiles/securityPolicies`: "Microsoft.Cdn/profiles/securityPolicies", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union LogMetric { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientRequestCount: "clientRequestCount", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientRequestTraffic: "clientRequestTraffic", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientRequestBandwidth: "clientRequestBandwidth", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" originRequestTraffic: "originRequestTraffic", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" originRequestBandwidth: "originRequestBandwidth", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" totalLatency: "totalLatency", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union LogMetricsGranularity { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT5M: "PT5M", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT1H: "PT1H", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" P1D: "P1D", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union LogMetricsGroupBy { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "httpStatusCode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "protocol", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "cacheStatus", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "countryOrRegion", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "customDomain", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union MetricsGranularity { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT5M: "PT5M", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT1H: "PT1H", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" P1D: "P1D", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union MetricsSeriesUnit { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" count: "count", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" bytes: "bytes", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" bitsPerSecond: "bitsPerSecond", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" milliSeconds: "milliSeconds", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union LogRanking { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url: "url", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" referrer: "referrer", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" browser: "browser", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" userAgent: "userAgent", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" countryOrRegion: "countryOrRegion", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union LogRankingMetric { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "clientRequestCount", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "clientRequestTraffic", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "hitCount", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "missCount", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "userErrorCount", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "errorCount", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafMetric { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "clientRequestCount", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafGranularity { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT5M: "PT5M", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT1H: "PT1H", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" P1D: "P1D", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafAction { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "allow", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "block", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "log", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "redirect", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafRankingGroupBy { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "httpStatusCode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "customDomain", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafRuleType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "managed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "custom", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" "bot", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafMetricsGranularity { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT5M: "PT5M", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PT1H: "PT1H", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" P1D: "P1D", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafMetricsSeriesUnit { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" count: "count", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union WafRankingType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" action: "action", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ruleGroup: "ruleGroup", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ruleId: "ruleId", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" userAgent: "userAgent", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientIp: "clientIp", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url: "url", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" countryOrRegion: "countryOrRegion", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ruleType: "ruleType", } /** * Recommended sku for the migration */ union CanMigrateDefaultSku { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Standard_AzureFrontDoor: "Standard_AzureFrontDoor", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Premium_AzureFrontDoor: "Premium_AzureFrontDoor", } /** * Specifies what scenario the customer wants this CDN endpoint to optimize, e.g. Download, Media services. With this information we can apply scenario driven optimization. */ union OptimizationType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GeneralWebDelivery: "GeneralWebDelivery", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GeneralMediaStreaming: "GeneralMediaStreaming", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" VideoOnDemandMediaStreaming: "VideoOnDemandMediaStreaming", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LargeFileDownload: "LargeFileDownload", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DynamicSiteAcceleration: "DynamicSiteAcceleration", } /** * Unit of the usage. e.g. count. */ union ResourceUsageUnit { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" count: "count", } /** * The approval status for the connection to the Private Link */ union PrivateEndpointStatus { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Pending: "Pending", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Approved: "Approved", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Rejected: "Rejected", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disconnected: "Disconnected", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Timeout: "Timeout", } /** * Resource status of the endpoint. */ union EndpointResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Running: "Running", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Starting: "Starting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Stopped: "Stopped", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Stopping: "Stopping", } /** * Provisioning status of the endpoint. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union EndpointProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union KeyVaultSigningKeyParametersType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" KeyVaultSigningKeyParameters: "KeyVaultSigningKeyParameters", } /** * Resource status of the origin. */ union OriginResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Active: "Active", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * Provisioning status of the origin. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union OriginProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } /** * Resource status of the origin group. */ union OriginGroupResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Active: "Active", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * Provisioning status of the origin group. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union OriginGroupProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } /** * Resource status of the custom domain. */ union CustomDomainResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Active: "Active", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * Provisioning status of the custom domain. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union CustomHttpsProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabling: "Enabling", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabling: "Disabling", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", } /** * Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step. */ union CustomHttpsProvisioningSubstate { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SubmittingDomainControlValidationRequest: "SubmittingDomainControlValidationRequest", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PendingDomainControlValidationREquestApproval: "PendingDomainControlValidationREquestApproval", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DomainControlValidationRequestApproved: "DomainControlValidationRequestApproved", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DomainControlValidationRequestRejected: "DomainControlValidationRequestRejected", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DomainControlValidationRequestTimedOut: "DomainControlValidationRequestTimedOut", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IssuingCertificate: "IssuingCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeployingCertificate: "DeployingCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CertificateDeployed: "CertificateDeployed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeletingCertificate: "DeletingCertificate", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CertificateDeleted: "CertificateDeleted", } /** * Defines the source of the SSL certificate. */ union CertificateSource { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" AzureKeyVault: "AzureKeyVault", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Cdn: "Cdn", } /** * Defines the TLS extension protocol that is used for secure delivery. */ union ProtocolType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ServerNameIndication: "ServerNameIndication", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IPBased: "IPBased", } /** * Provisioning status of the profile agent association. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union ProfileAgentProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", } /** * Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified. */ union PolicyEnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", } /** * Describes if it is in detection mode or prevention mode at policy level. */ union PolicyMode { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Prevention: "Prevention", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Detection: "Detection", } /** * If the action type is block, this field defines the default customer overridable http response status code. */ union PolicySettingsDefaultCustomBlockResponseStatusCode { int32, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `200`: 200, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `403`: 403, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `405`: 405, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `406`: 406, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `429`: 429, } /** * Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. */ union CustomRuleEnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", } /** * Match variable to compare against. */ union WafMatchVariable { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RemoteAddr: "RemoteAddr", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SocketAddr: "SocketAddr", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestMethod: "RequestMethod", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestHeader: "RequestHeader", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestUri: "RequestUri", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" QueryString: "QueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestBody: "RequestBody", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Cookies: "Cookies", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PostArgs: "PostArgs", } /** * Describes operator to be matched */ union Operator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IPMatch: "IPMatch", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GeoMatch: "GeoMatch", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes what transforms were applied before matching. */ union TransformType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Lowercase: "Lowercase", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Uppercase: "Uppercase", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Trim: "Trim", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlDecode: "UrlDecode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlEncode: "UrlEncode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RemoveNulls: "RemoveNulls", } /** * Defines the action to take on rule match. */ union ActionType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Allow: "Allow", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Block: "Block", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Log: "Log", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Redirect: "Redirect", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) AnomalyScoring: "AnomalyScoring", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) JSChallenge: "JSChallenge", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) CAPTCHA: "CAPTCHA", } /** * Describes if the managed rule is in enabled or disabled state. */ union ManagedRuleEnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", } /** * Provisioning state of the WebApplicationFirewallPolicy. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union ProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", } /** * Resource status of the policy. */ union PolicyResourceState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabling: "Enabling", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabling: "Disabling", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * The type of the path. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union AgentPathType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Chat: "Chat", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" McpServer: "McpServer", } /** * Provisioning status of the web agent. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union WebAgentProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * Format or origin of the knowledge source. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union KnowledgeSourceType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SchemaOrgMarkup: "SchemaOrgMarkup", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RssFeeds: "RssFeeds", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Sitemap: "Sitemap", } /** * Specifies the units of time for scheduling update intervals for the knowledge source. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union KnowledgeSourceUpdateFrequency { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EverySixHours: "EverySixHours", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Daily: "Daily", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Weekly: "Weekly", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Monthly: "Monthly", } /** * Provisioning status of the knowledge source. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union KnowledgeSourceProvisioningState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Creating: "Creating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Succeeded: "Succeeded", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Failed: "Failed", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Updating: "Updating", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Deleting: "Deleting", } /** * Describes if policy managed rules will inspect the request body content. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union PolicyRequestBodyCheck { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", } /** * State of the log scrubbing config. Default value is Enabled. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union WebApplicationFirewallScrubbingState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Describes type of rule. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union RuleType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" MatchRule: "MatchRule", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RateLimitRule: "RateLimitRule", } /** * Describes the supported variable for group by */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union VariableName { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SocketAddr: "SocketAddr", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GeoLocation: "GeoLocation", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" None: "None", } /** * Defines the action to take when a managed rule set score threshold is met. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union ManagedRuleSetActionType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Block: "Block", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Log: "Log", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Redirect: "Redirect", } /** * The variable type to be excluded. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union ManagedRuleExclusionMatchVariable { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestHeaderNames: "RequestHeaderNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestCookieNames: "RequestCookieNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" QueryStringArgNames: "QueryStringArgNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestBodyPostArgNames: "RequestBodyPostArgNames", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RequestBodyJsonArgNames: "RequestBodyJsonArgNames", } /** * Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union ManagedRuleExclusionSelectorMatchOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equals: "Equals", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" StartsWith: "StartsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EqualsAny: "EqualsAny", } /** * Set to Enabled by default. If set to Disabled, revocation status of client certificate chain will be checked before establishing mutual TLS connection. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union CertificateRevocationCheckEnabledState { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union TypeName { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleAfdUrlSigningActionParameters: "DeliveryRuleAfdUrlSigningActionParameters", } /** * Algorithm to use for URL signing */ union Algorithm { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SHA256: "SHA256", } /** * Indicates the purpose of the parameter */ union ParamIndicator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Expires: "Expires", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" KeyId: "KeyId", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Signature: "Signature", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union DeliveryRuleConditionParametersType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRemoteAddressConditionParameters: "DeliveryRuleRemoteAddressConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRequestMethodConditionParameters: "DeliveryRuleRequestMethodConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleQueryStringConditionParameters: "DeliveryRuleQueryStringConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRulePostArgsConditionParameters: "DeliveryRulePostArgsConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRequestUriConditionParameters: "DeliveryRuleRequestUriConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRequestHeaderConditionParameters: "DeliveryRuleRequestHeaderConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRequestBodyConditionParameters: "DeliveryRuleRequestBodyConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRequestSchemeConditionParameters: "DeliveryRuleRequestSchemeConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlPathMatchConditionParameters: "DeliveryRuleUrlPathMatchConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlFileExtensionMatchConditionParameters: "DeliveryRuleUrlFileExtensionMatchConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlFilenameConditionParameters: "DeliveryRuleUrlFilenameConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleHttpVersionConditionParameters: "DeliveryRuleHttpVersionConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleCookiesConditionParameters: "DeliveryRuleCookiesConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleIsDeviceConditionParameters: "DeliveryRuleIsDeviceConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleSocketAddrConditionParameters: "DeliveryRuleSocketAddrConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleClientPortConditionParameters: "DeliveryRuleClientPortConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleServerPortConditionParameters: "DeliveryRuleServerPortConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleHostNameConditionParameters: "DeliveryRuleHostNameConditionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleSslProtocolConditionParameters: "DeliveryRuleSslProtocolConditionParameters", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union DeliveryRuleActionParametersType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlRedirectActionParameters: "DeliveryRuleUrlRedirectActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlSigningActionParameters: "DeliveryRuleUrlSigningActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleOriginGroupOverrideActionParameters: "DeliveryRuleOriginGroupOverrideActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleUrlRewriteActionParameters: "DeliveryRuleUrlRewriteActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleHeaderActionParameters: "DeliveryRuleHeaderActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleCacheExpirationActionParameters: "DeliveryRuleCacheExpirationActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleCacheKeyQueryStringBehaviorActionParameters: "DeliveryRuleCacheKeyQueryStringBehaviorActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DeliveryRuleRouteConfigurationOverrideActionParameters: "DeliveryRuleRouteConfigurationOverrideActionParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) DeliveryRuleEdgeActionParameters: "DeliveryRuleEdgeActionParameters", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union CertificateSourceParametersType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" CdnCertificateSourceParameters: "CdnCertificateSourceParameters", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" KeyVaultCertificateSourceParameters: "KeyVaultCertificateSourceParameters", } /** * Describes operator to be matched */ union RemoteAddressOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IPMatch: "IPMatch", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GeoMatch: "GeoMatch", } /** * Describes what transforms are applied before matching */ union Transform { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Lowercase: "Lowercase", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Uppercase: "Uppercase", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Trim: "Trim", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlDecode: "UrlDecode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UrlEncode: "UrlEncode", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RemoveNulls: "RemoveNulls", } /** * Describes operator to be matched */ union RequestMethodOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union RequestMethodMatchValue { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GET: "GET", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HEAD: "HEAD", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" POST: "POST", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PUT: "PUT", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" DELETE: "DELETE", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" OPTIONS: "OPTIONS", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TRACE: "TRACE", } /** * Describes operator to be matched */ union QueryStringOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union PostArgsOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union RequestUriOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union RequestHeaderOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union RequestBodyOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union RequestSchemeMatchConditionParametersOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union RequestSchemeMatchValue { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HTTP: "HTTP", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HTTPS: "HTTPS", } /** * Describes operator to be matched */ union UrlPathOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Wildcard: "Wildcard", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union UrlFileExtensionOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union UrlFileNameOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union HttpVersionOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", } /** * Describes operator to be matched */ union CookiesOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union IsDeviceOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" union IsDeviceMatchValue { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Mobile: "Mobile", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Desktop: "Desktop", } /** * Describes operator to be matched */ union SocketAddrOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IPMatch: "IPMatch", } /** * Describes operator to be matched */ union ClientPortOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union ServerPortOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union HostNameOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Any: "Any", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Contains: "Contains", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BeginsWith: "BeginsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" EndsWith: "EndsWith", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThan: "LessThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" LessThanOrEqual: "LessThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThan: "GreaterThan", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" GreaterThanOrEqual: "GreaterThanOrEqual", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" RegEx: "RegEx", } /** * Describes operator to be matched */ union SslProtocolOperator { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Equal: "Equal", } /** * The protocol of an established TLS connection. */ union SslProtocol { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TLSv1: "TLSv1", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `TLSv1.1`: "TLSv1.1", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `TLSv1.2`: "TLSv1.2", } /** * The redirect type the rule will use when redirecting traffic. */ union RedirectType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Moved: "Moved", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Found: "Found", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" TemporaryRedirect: "TemporaryRedirect", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" PermanentRedirect: "PermanentRedirect", } /** * Protocol to use for the redirect. The default value is MatchRequest */ union DestinationProtocol { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" MatchRequest: "MatchRequest", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Http: "Http", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Https: "Https", } /** * Defines at which point in the request processing pipeline the edge action will be invoked. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) union InvocationPoint { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ClientRequest: "ClientRequest", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" OriginRequest: "OriginRequest", } /** * Action to perform */ union HeaderAction { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Append: "Append", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Overwrite: "Overwrite", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Delete: "Delete", } /** * Caching behavior for the requests */ union CacheBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" BypassCache: "BypassCache", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Override: "Override", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" SetIfMissing: "SetIfMissing", } /** * The level at which the content needs to be cached. */ union CacheType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" All: "All", } /** * Caching behavior for the requests */ union QueryStringBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Include: "Include", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IncludeAll: "IncludeAll", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Exclude: "Exclude", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ExcludeAll: "ExcludeAll", } /** * Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings. */ union RuleQueryStringCachingBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IgnoreQueryString: "IgnoreQueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" UseQueryString: "UseQueryString", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IgnoreSpecifiedQueryStrings: "IgnoreSpecifiedQueryStrings", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" IncludeSpecifiedQueryStrings: "IncludeSpecifiedQueryStrings", } /** * Indicates whether content compression is enabled. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on AzureFrontDoor when requested content is smaller than 1 byte or larger than 1 MB. */ union RuleIsCompressionEnabled { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Enabled: "Enabled", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Disabled: "Disabled", } /** * Caching behavior for the requests */ union RuleCacheBehavior { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" HonorOrigin: "HonorOrigin", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" OverrideAlways: "OverrideAlways", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" OverrideIfOriginMissing: "OverrideIfOriginMissing", } /** * Type of certificate used */ union CertificateType { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Shared: "Shared", #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" Dedicated: "Dedicated", } /** * Describes the action that shall be taken when the certificate is updated in Key Vault. */ union UpdateRule { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NoAction: "NoAction", } /** * Describes the action that shall be taken when the certificate is removed from Key Vault. */ union DeleteRule { string, #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" NoAction: "NoAction", } /** * TLS protocol version that will be used for Https when cipherSuiteSetType is Customized. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum AfdMinimumTlsVersion { TLS10, TLS12, TLS13, } /** * The type of health probe request that is made. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum HealthProbeRequestType { NotSet, GET, HEAD, } /** * Protocol to use for health probe. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum ProbeProtocol { NotSet, Http, Https, @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) Grpc, } /** * Status of the shared private link resource. Can be Pending, Approved, Rejected, Disconnected, or Timeout. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum SharedPrivateLinkResourceStatus { Pending, Approved, Rejected, Disconnected, Timeout, } /** * Type of response errors for real user requests for which origin will be deemed unhealthy */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum ResponseBasedDetectedErrorTypes { None, TcpErrorsOnly, TcpAndHttpErrors, } /** * 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. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum QueryStringCachingBehavior { IgnoreQueryString, BypassCaching, UseQueryString, NotSet, } /** * Action of the geo filter, i.e. allow or block access. */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum GeoFilterActions { Block, Allow, } /** * TLS protocol version that will be used for Https */ #suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum MinimumTlsVersion { None, TLS10, TLS12, } /** * Input of CheckNameAvailability API. */ model CheckEndpointNameAvailabilityInput { /** * The resource name to validate. */ name: string; /** * The type of the resource whose name is to be validated. */ type: ResourceType; /** * Indicates the endpoint name reuse scope. The default value is TenantReuse. */ autoGeneratedDomainNameLabelScope?: AutoGeneratedDomainNameLabelScope; } /** * Output of check name availability API. */ model CheckEndpointNameAvailabilityOutput { /** * Indicates whether the name is available. */ @visibility(Lifecycle.Read) nameAvailable?: boolean; /** * Returns the available hostname generated based on the AutoGeneratedDomainNameLabelScope when the name is available, otherwise it returns empty string */ @visibility(Lifecycle.Read) availableHostname?: string; /** * The reason why the name is not available. */ @visibility(Lifecycle.Read) reason?: string; /** * The detailed error message describing why the name is not available. */ @visibility(Lifecycle.Read) message?: string; } /** * The list usages operation response. */ model UsagesListResult is Azure.Core.Page; /** * Describes resource usage. */ model Usage { /** * Resource identifier. */ @visibility(Lifecycle.Read) id?: string; /** * An enum describing the unit of measurement. */ unit: UsageUnit; /** * The current value of the usage. */ currentValue: int64; /** * The limit of usage. */ limit: int64; /** * The name of the type of usage. */ name: UsageName; } /** * The usage names. */ model UsageName { /** * A string describing the resource name. */ value?: string; /** * A localized string describing the resource name. */ localizedValue?: string; } /** * Input of CheckHostNameAvailability API. */ model CheckHostNameAvailabilityInput { /** * The host name to validate. */ hostName: string; } /** * Output of check name availability API. */ model CheckNameAvailabilityOutput { /** * Indicates whether the name is available. */ @visibility(Lifecycle.Read) nameAvailable?: boolean; /** * The reason why the name is not available. */ @visibility(Lifecycle.Read) reason?: string; /** * The detailed error message describing why the name is not available. */ @visibility(Lifecycle.Read) message?: string; } /** * Input of the secret to be validated. */ model ValidateSecretInput { /** * The secret type. */ secretType: SecretType; /** * Resource reference to the Azure Key Vault secret. Expected to be in format of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{secretName} */ secretSource: ResourceReference; /** * Secret version, if customer is using a specific version. */ secretVersion?: string; } /** * Reference to another resource. */ model ResourceReference { /** * Resource ID. */ id?: string; } /** * Output of the validated secret. */ model ValidateSecretOutput { /** * The validation status. */ status?: Status; /** * Detailed error message */ message?: string; } /** * Parameters required for profile upgrade. */ model ProfileUpgradeParameters { /** * Web Application Firewall (WAF) and security policy mapping for the profile upgrade */ @identifiers(#[]) wafMappingList: ProfileChangeSkuWafMapping[]; } /** * Parameters required for profile upgrade. */ model ProfileChangeSkuWafMapping { /** * The security policy name. */ securityPolicyName: string; /** * The new waf resource for the security policy to use. */ changeToWafPolicy: ResourceReference; } /** * Standard_Verizon = The SKU name for a Standard Verizon CDN profile. * Premium_Verizon = The SKU name for a Premium Verizon CDN profile. * Custom_Verizon = The SKU name for a Custom Verizon CDN profile. * Standard_Akamai = The SKU name for an Akamai CDN profile. * Standard_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using GB based billing model. * Standard_Microsoft = The SKU name for a Standard Microsoft CDN profile. * Standard_AzureFrontDoor = The SKU name for an Azure Front Door Standard profile. * Premium_AzureFrontDoor = The SKU name for an Azure Front Door Premium profile. * Standard_955BandWidth_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using 95-5 peak bandwidth billing model. * Standard_AvgBandWidth_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using monthly average peak bandwidth billing model. * StandardPlus_ChinaCdn = The SKU name for a China CDN profile for live-streaming using GB based billing model. * StandardPlus_955BandWidth_ChinaCdn = The SKU name for a China CDN live-streaming profile using 95-5 peak bandwidth billing model. * StandardPlus_AvgBandWidth_ChinaCdn = The SKU name for a China CDN live-streaming profile using monthly average peak bandwidth billing model. * */ model Sku { /** * Name of the pricing tier. */ name?: SkuName; } /** * The JSON object that contains the properties required to create a profile. */ model ProfileProperties { /** * Resource status of the profile. */ @visibility(Lifecycle.Read) resourceState?: ProfileResourceState; /** * Provisioning status of the profile. */ @visibility(Lifecycle.Read) provisioningState?: ProfileProvisioningState; /** * Key-Value pair representing additional properties for profiles. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) extendedProperties?: Record; /** * The Id of the frontdoor. */ @visibility(Lifecycle.Read) frontDoorId?: string; /** * Send and receive timeout on forwarding request to the origin. When timeout is reached, the request fails and returns. */ @minValue(16) originResponseTimeoutSeconds?: int32; /** * Defines rules that scrub sensitive fields in the Azure Front Door profile logs. */ logScrubbing?: ProfileLogScrubbing; } /** * Defines rules that scrub sensitive fields in the Azure Front Door profile logs. */ model ProfileLogScrubbing { /** * State of the log scrubbing config. Default value is Enabled. */ state?: ProfileScrubbingState; /** * List of log scrubbing rules applied to the Azure Front Door profile logs. */ @identifiers(#[]) scrubbingRules?: ProfileScrubbingRules[]; } /** * Defines the contents of the log scrubbing rules. */ model ProfileScrubbingRules { /** * The variable to be scrubbed from the logs. */ matchVariable: ScrubbingRuleEntryMatchVariable; /** * When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. */ selectorMatchOperator: ScrubbingRuleEntryMatchOperator; /** * When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. */ selector?: string; /** * Defines the state of a log scrubbing rule. Default value is enabled. */ state?: ScrubbingRuleEntryState; } /** * The JSON object that contains the properties of the domain to create. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDDomainProperties { ...AFDDomainUpdatePropertiesParameters; ...AFDStateProperties; /** * Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step. DCV stands for DomainControlValidation. */ @visibility(Lifecycle.Read) domainValidationState?: DomainValidationState; /** * The host name of the domain. Must be a domain name. */ hostName: string; /** * Key-Value pair representing migration properties for domains. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" extendedProperties?: Record; /** * Values the customer needs to validate domain ownership */ @visibility(Lifecycle.Read) validationProperties?: DomainValidationProperties; } /** * The JSON object that contains the properties to validate a domain. */ model DomainValidationProperties { /** * Challenge used for DNS TXT record or file based validation */ #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "TODO: Check if this is a secret and add @secret or update reason" @visibility(Lifecycle.Read) validationToken?: string; /** * The date time that the token expires */ @visibility(Lifecycle.Read) expirationDate?: string; } /** * The JSON object that contains the properties of the domain to create. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDDomainUpdatePropertiesParameters { /** * The name of the profile which holds the domain. */ @visibility(Lifecycle.Read) profileName?: string; /** * The configuration specifying how to enable HTTPS for the domain - using AzureFrontDoor managed certificate or user's own certificate. If not specified, enabling ssl uses AzureFrontDoor managed certificate by default. */ tlsSettings?: AFDDomainHttpsParameters; /** * The configuration specifying how to enable mutual TLS for the domain, including specifying allowed FQDNs and which server certificate(s) to use. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) mtlsSettings?: AFDDomainMtlsParameters; /** * Resource reference to the Azure DNS zone */ azureDnsZone?: ResourceReference; /** * Resource reference to the Azure resource where custom domain ownership was prevalidated */ preValidatedCustomDomainResourceId?: ResourceReference; } /** * The JSON object that contains the properties to secure a domain. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDDomainHttpsParameters { /** * Defines the source of the SSL certificate. */ certificateType: AfdCertificateType; /** * cipher suite set type that will be used for Https */ cipherSuiteSetType?: AfdCipherSuiteSetType; /** * TLS protocol version that will be used for Https when cipherSuiteSetType is Customized. */ minimumTlsVersion?: AfdMinimumTlsVersion; /** * Customized cipher suites object that will be used for Https when cipherSuiteSetType is Customized. */ customizedCipherSuiteSet?: AFDDomainHttpsCustomizedCipherSuiteSet; /** * Resource reference to the secret. ie. subs/rg/profile/secret */ secret?: ResourceReference; } /** * Customized cipher suite set object that will be used for Https when cipherSuiteSetType is Customized. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDDomainHttpsCustomizedCipherSuiteSet { /** * Cipher suites for TLS 1.2. Required at least one in minimumTlsVersion TLS 1.2. */ cipherSuiteSetForTls12?: AfdCustomizedCipherSuiteForTls12[]; /** * Cipher suites for TLS 1.3. Required at least one in minimumTlsVersion TLS 1.2, TLS 1.3. */ cipherSuiteSetForTls13?: AfdCustomizedCipherSuiteForTls13[]; } /** * Contains the properties to configure mutual TLS for a custom domain with FQDN. Mutual TLS cannot be configured for custom domains with wildcard host names. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) @discriminator("scenario") model AFDDomainMtlsParameters { /** * Supported scenarios for establishing mTLS connection. */ scenario: MtlsScenarioType; } /** * The tracking states for afd resources. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDStateProperties { /** * Provisioning status */ @visibility(Lifecycle.Read) provisioningState?: AfdProvisioningState; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) deploymentStatus?: DeploymentStatus; } /** * The domain JSON object required for domain creation or update. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDDomainUpdateParameters { /** * The JSON object that contains the properties of the domain to create. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: AFDDomainUpdatePropertiesParameters; } /** * The JSON object that contains the properties required to create an endpoint. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDEndpointProperties { ...AFDEndpointPropertiesUpdateParameters; ...AFDStateProperties; /** * The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g. contoso.azureedge.net */ @visibility(Lifecycle.Read) hostName?: string; /** * Indicates the endpoint name reuse scope. The default value is TenantReuse. */ autoGeneratedDomainNameLabelScope?: AutoGeneratedDomainNameLabelScope; } /** * The JSON object containing endpoint update parameters. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDEndpointPropertiesUpdateParameters { /** * The name of the profile which holds the endpoint. */ @visibility(Lifecycle.Read) profileName?: string; /** * Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' */ enabledState?: EnabledState; /** * Set to Disabled by default. If set to Enabled, only custom domains with mTLS enabled can be added to child Route resources. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) enforceMtls?: EnforceMtlsEnabledState; } /** * Properties required to create or update an endpoint. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDEndpointUpdateParameters { /** * Endpoint tags. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; /** * The JSON object containing endpoint update parameters. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: AFDEndpointPropertiesUpdateParameters; } /** * Parameters required for content purge. */ model AfdPurgeParameters { /** * The path to the content to be purged. Can describe a file path or a wild card directory. */ contentPaths: string[]; /** * List of domains. */ domains?: string[]; } /** * Input of the custom domain to be validated for DNS mapping. */ model ValidateCustomDomainInput { /** * The host name of the custom domain. Must be a domain name. */ hostName: string; } /** * Output of custom domain validation. */ model ValidateCustomDomainOutput { /** * Indicates whether the custom domain is valid or not. */ @visibility(Lifecycle.Read) customDomainValidated?: boolean; /** * The reason why the custom domain is not valid. */ @visibility(Lifecycle.Read) reason?: string; /** * Error message describing why the custom domain is not valid. */ @visibility(Lifecycle.Read) message?: string; } /** * The JSON object that contains the properties of the origin group. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginGroupProperties { ...AFDOriginGroupUpdatePropertiesParameters; ...AFDStateProperties; } /** * The JSON object that contains the properties of the origin group. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginGroupUpdatePropertiesParameters { /** * The name of the profile which holds the origin group. */ @visibility(Lifecycle.Read) profileName?: string; /** * Load balancing settings for a backend pool */ loadBalancingSettings?: LoadBalancingSettingsParameters; /** * Health probe settings to the origin that is used to determine the health of the origin. */ healthProbeSettings?: HealthProbeParameters; /** * Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. */ @maxValue(50) @minValue(0) trafficRestorationTimeToHealedOrNewEndpointsInMinutes?: int32; /** * Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled' */ sessionAffinityState?: EnabledState; /** * Authentication settings for origin in origin group. */ authentication?: OriginAuthenticationProperties; } /** * Round-Robin load balancing settings for a backend pool */ model LoadBalancingSettingsParameters { /** * The number of samples to consider for load balancing decisions */ sampleSize?: int32; /** * The number of samples within the sample period that must succeed */ successfulSamplesRequired?: int32; /** * The additional latency in milliseconds for probes to fall into the lowest latency bucket */ additionalLatencyInMilliseconds?: int32; } /** * The JSON object that contains the properties to send health probes to origin. */ model HealthProbeParameters { /** * The path relative to the origin that is used to determine the health of the origin. */ probePath?: string; /** * The type of health probe request that is made. */ probeRequestType?: HealthProbeRequestType; /** * Protocol to use for health probe. */ probeProtocol?: ProbeProtocol; /** * The number of seconds between health probes.Default is 240sec. */ @maxValue(255) @minValue(1) probeIntervalInSeconds?: int32; } /** * The JSON object that contains the properties of the origin authentication settings. */ model OriginAuthenticationProperties { /** * The type of the authentication for the origin. */ type?: OriginAuthenticationType; /** * The user assigned managed identity to use for the origin authentication if type is UserAssignedIdentity. */ userAssignedIdentity?: ResourceReference; /** * The scope used when requesting token from Microsoft Entra. For example, for Azure Blob Storage, scope could be "https://storage.azure.com/.default". */ scope?: url; } /** * AFDOrigin group properties needed for origin group creation or update. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginGroupUpdateParameters { /** * The JSON object that contains the properties of the origin group. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: AFDOriginGroupUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the origin. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginProperties { ...AFDOriginUpdatePropertiesParameters; ...AFDStateProperties; } /** * The JSON object that contains the properties of the origin. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginUpdatePropertiesParameters { /** * The name of the origin group which contains this origin. */ @visibility(Lifecycle.Read) originGroupName?: string; /** * Resource reference to the Azure origin resource. */ azureOrigin?: ResourceReference; /** * The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint. */ hostName?: string; /** * The value of the HTTP port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpPort?: int32 = 80; /** * The value of the HTTPS port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpsPort?: int32 = 443; /** * The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. This overrides the host header defined at Endpoint */ originHostHeader?: string; /** * Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5 */ @maxValue(5) @minValue(1) priority?: int32; /** * Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 */ @maxValue(1000) @minValue(1) weight?: int32; /** * The properties of the private link resource for private origin. */ sharedPrivateLinkResource?: SharedPrivateLinkResourceProperties; /** * Origin capacity settings for an origin */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) originCapacityResource?: OriginCapacityResourceProperties; /** * Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool. */ enabledState?: EnabledState; /** * Whether to enable certificate name check at origin level */ enforceCertificateNameCheck?: boolean = true; } /** * Describes the properties of an existing Shared Private Link Resource to use when connecting to a private origin. */ model SharedPrivateLinkResourceProperties { /** * The resource id of the resource the shared private link resource is for. */ privateLink?: ResourceReference; /** * The location of the shared private link resource */ privateLinkLocation?: string; /** * The group id from the provider of resource the shared private link resource is for. */ groupId?: string; /** * The request message for requesting approval of the shared private link resource. */ requestMessage?: string; /** * Status of the shared private link resource. Can be Pending, Approved, Rejected, Disconnected, or Timeout. */ status?: SharedPrivateLinkResourceStatus; } /** * Origin capacity settings for an origin */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model OriginCapacityResourceProperties { /** * Whether to enable origin capacity for a specific origin */ enabled?: EnabledState; /** * The nearest origin capacity pop region for an origin */ region?: string; /** * The request rate limit threshold for an origin per minute */ @minValue(1) originRequestRateThreshold?: int64; /** * The ingress rate limit threshold for an origin per minute in bytes */ @minValue(1) originIngressRateThreshold?: int64; } /** * AFDOrigin properties needed for origin update. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AFDOriginUpdateParameters { /** * The JSON object that contains the properties of the origin. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: AFDOriginUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the Routes to create. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RouteProperties { ...RouteUpdatePropertiesParameters; ...AFDStateProperties; } /** * The JSON object that contains the properties of the domain to create. */ model RouteUpdatePropertiesParameters { /** * The name of the endpoint which holds the route. */ @visibility(Lifecycle.Read) endpointName?: string; /** * Domains referenced by this endpoint. */ customDomains?: ActivatedResourceReference[]; /** * A reference to the origin group. */ originGroup?: ResourceReference; /** * A directory path on the origin that AzureFrontDoor can use to retrieve content from, e.g. contoso.cloudapp.net/originpath. */ originPath?: string; /** * rule sets referenced by this endpoint. */ ruleSets?: ResourceReference[]; /** * List of supported protocols for this route. */ supportedProtocols?: AFDEndpointProtocols[] = #[ AFDEndpointProtocols.Http, AFDEndpointProtocols.Https ]; /** * The route patterns of the rule. */ patternsToMatch?: string[]; /** * The caching configuration for this route. To disable caching, do not provide a cacheConfiguration object. */ cacheConfiguration?: AfdRouteCacheConfiguration; /** * Protocol this rule will use when forwarding traffic to backends. */ forwardingProtocol?: ForwardingProtocol = ForwardingProtocol.MatchRequest; /** * whether this route will be linked to the default endpoint domain. */ linkToDefaultDomain?: LinkToDefaultDomain = LinkToDefaultDomain.Disabled; /** * Whether to automatically redirect HTTP traffic to HTTPS traffic. Note that this is a easy way to set up this rule and it will be the first rule that gets executed. */ httpsRedirect?: HttpsRedirect = HttpsRedirect.Disabled; /** * Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' */ enabledState?: EnabledState; /** * Whether or not gRPC is enabled on this route. Permitted values are 'Enabled' or 'Disabled' */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) grpcState?: AFDRouteGrpcState; } /** * Reference to another resource along with its state. */ model ActivatedResourceReference { /** * Resource ID. */ id?: string; /** * Whether the resource is active or inactive */ @visibility(Lifecycle.Read) isActive?: boolean; } /** * Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object. */ model AfdRouteCacheConfiguration { /** * Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings. */ queryStringCachingBehavior?: AfdQueryStringCachingBehavior; /** * query parameters to include or exclude (comma separated). */ queryParameters?: string; /** * compression settings. */ compressionSettings?: CompressionSettings; } /** * settings for compression. */ model CompressionSettings { /** * List of content types on which compression applies. The value should be a valid MIME type. */ contentTypesToCompress?: string[]; /** * Indicates whether content compression is enabled on AzureFrontDoor. 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 AzureFrontDoor when requested content is smaller than 1 byte or larger than 1 MB. */ isCompressionEnabled?: boolean; } /** * The domain JSON object required for domain creation or update. */ model RouteUpdateParameters { /** * The JSON object that contains the properties of the domain to create. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: RouteUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the Rule Set to create. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RuleSetProperties extends AFDStateProperties { /** * The name of the profile which holds the rule set. */ @visibility(Lifecycle.Read) profileName?: string; /** * Indicates whether rule set is in batch mode. When batch mode is enabled, rules will be processed in a batch along with the rule set. * When batch mode is disabled, rules would need to be processed independently. * This property can only be set during rule set creation and cannot be updated later. * For switching modes, a new rule set needs to be created with the desired mode and rules need to be migrated to the new rule set. */ @visibility(Lifecycle.Create, Lifecycle.Read) batchMode?: boolean; /** * A list of rules that are part of this rule set provided the rule set is in batch mode. * This property will be ignored if the rule set is not in batch mode. */ @identifiers(#["ruleName"]) rules?: BatchRuleProperties[]; } /** * The JSON object that contains the properties of the Rules to create. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RuleProperties { ...RuleUpdatePropertiesParameters; ...AFDStateProperties; } /** * The JSON object that contains a rule with its name for batch mode operations. */ model BatchRuleProperties { /** * Name of the rule. */ @maxLength(60) @minLength(1) @pattern("^[a-zA-Z][a-zA-Z0-9]{0,59}$") @visibility(Lifecycle.Create, Lifecycle.Read) ruleName: string; ...RuleUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the rule to update. */ model RuleUpdatePropertiesParameters { /** * The name of the rule set containing the rule. */ @visibility(Lifecycle.Read) ruleSetName?: string; /** * The order in which the rules are applied for the endpoint. Possible values {0,1,2,3,………}. A rule with a lesser order will be applied before a rule with a greater order. Rule with order 0 is a special rule. It does not require any condition and actions listed in it will always be applied. */ order?: int32; /** * A list of conditions that must be matched for the actions to be executed */ @identifiers(#["name"]) conditions?: DeliveryRuleCondition[]; /** * A list of actions that are executed when all the conditions of a rule are satisfied. */ @identifiers(#["name"]) actions?: DeliveryRuleAction[]; /** * If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. */ matchProcessingBehavior?: MatchProcessingBehavior = MatchProcessingBehavior.Continue; } /** * A condition for the delivery rule. */ @discriminator("name") model DeliveryRuleCondition { /** * The name of the condition for the delivery rule. */ name: MatchVariable; } /** * An action for the delivery rule. */ @discriminator("name") model DeliveryRuleAction { /** * The name of the action for the delivery rule. */ name: DeliveryRuleActionName; } /** * The domain JSON object required for domain creation or update. */ model RuleUpdateParameters { /** * The JSON object that contains the properties of the rule to update. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: RuleUpdatePropertiesParameters; } /** * The json object that contains properties required to create a security policy */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model SecurityPolicyProperties extends AFDStateProperties { /** * The name of the profile which holds the security policy. */ @visibility(Lifecycle.Read) profileName?: string; /** * object which contains security policy parameters */ parameters?: SecurityPolicyPropertiesParameters; } /** * The json object containing security policy parameters */ @discriminator("type") model SecurityPolicyPropertiesParameters { /** * The type of the Security policy to create. */ type: SecurityPolicyType; } /** * The JSON object containing security policy update parameters. */ model SecurityPolicyUpdateParameters { /** * The json object that contains properties required to update a security policy */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: SecurityPolicyUpdateProperties; } /** * The json object that contains properties required to update a security policy */ model SecurityPolicyUpdateProperties { /** * object which contains security policy parameters */ parameters?: SecurityPolicyPropertiesParameters; } /** * The JSON object that contains the properties of the Secret to create. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model SecretProperties extends AFDStateProperties { /** * The name of the profile which holds the secret. */ @visibility(Lifecycle.Read) profileName?: string; /** * object which contains secret parameters */ parameters?: SecretParameters; } /** * The json object containing secret parameters */ @discriminator("type") model SecretParameters { /** * The type of the secret resource. */ type: SecretType; } /** * The JSON object that contains the properties of the key group to create. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model KeyGroupProperties { ...KeyGroupUpdatePropertiesParameters; ...AFDStateProperties; } /** * The JSON object containing properties of key group to create or update. */ model KeyGroupUpdatePropertiesParameters { /** * Names of UrlSigningKey type secret objects */ @identifiers(#[]) keyReferences?: ResourceReference[]; } /** * The JSON object that contains the properties of the deployment version. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionProperties { ...DeploymentVersionUpdateProperties; ...AFDStateProperties; /** * The timestamp of deployment version creation (UTC) */ @visibility(Lifecycle.Read) // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. createdAt?: utcDateTime; /** * The timestamp of deployment version approval (UTC) */ @visibility(Lifecycle.Read) // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. approvedAt?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) approvalStatus?: ApprovalStatus; /** * The preview and production deployment status of the deployment version under the profile */ @visibility(Lifecycle.Read) stages?: DeploymentStages; } /** * The preview and production deployment status of the deployment version under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentStages { /** * Deployment status of preview stage. */ @visibility(Lifecycle.Read) preview?: DeploymentRolloutStatus; /** * Deployment status of production stage. */ @visibility(Lifecycle.Read) production?: DeploymentRolloutStatus; } /** * Contains the properties of the deployment version. */ model DeploymentVersionUpdateProperties { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" description?: string; } /** * Contains deployment version for creation or update. */ model DeploymentVersionUpdate { /** * Contains the properties of the deployment version. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: DeploymentVersionUpdateProperties; } /** * compare deployment versions request parameter */ model CompareDeploymentVersionsParameter { /** * the deployment version name to be compared to */ compareTo: string; } /** * compare deployment versions response */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model CompareDeploymentVersionsResponse { /** * The difference between two deployment versions */ @identifiers(#[]) value: DeploymentVersionChange[]; } /** * Deployment change under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) @discriminator("resourceType") model DeploymentVersionChange { /** * Resource type supported by preview. */ resourceType: PreviewSupportedResourceType; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" resourceId?: Azure.Core.armResourceIdentifier; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" resourceName?: string; } /** * Metrics Response */ model MetricsResponse { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeBegin?: utcDateTime; // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeEnd?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" granularity?: MetricsGranularity; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) series?: MetricsResponseSeriesItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model MetricsResponseSeriesItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" metric?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" unit?: MetricsSeriesUnit; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#["name"]) groups?: MetricsResponseSeriesPropertiesItemsItem[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) data?: Components1Gs0LlpSchemasMetricsresponsePropertiesSeriesItemsPropertiesDataItems[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model MetricsResponseSeriesPropertiesItemsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: string; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model Components1Gs0LlpSchemasMetricsresponsePropertiesSeriesItemsPropertiesDataItems { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTime?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: float32; } /** * Rankings Response */ model RankingsResponse { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeBegin?: utcDateTime; // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeEnd?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) tables?: RankingsResponseTablesItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RankingsResponseTablesItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" ranking?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#["name"]) data?: RankingsResponseTablesPropertiesItemsItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RankingsResponseTablesPropertiesItemsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) metrics?: RankingsResponseTablesPropertiesItemsMetricsItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RankingsResponseTablesPropertiesItemsMetricsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" metric?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: int64; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" percentage?: float32; } /** * Continents Response */ model ContinentsResponse { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" continents?: ContinentsResponseContinentsItem[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" countryOrRegions?: ContinentsResponseCountryOrRegionsItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ContinentsResponseContinentsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" id?: string; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ContinentsResponseCountryOrRegionsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" id?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" continentId?: string; } /** * Resources Response */ model ResourcesResponse { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" endpoints?: ResourcesResponseEndpointsItem[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" customDomains?: ResourcesResponseCustomDomainsItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ResourcesResponseEndpointsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" id?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" history?: boolean; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" customDomains?: ResourcesResponseEndpointsPropertiesItemsItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ResourcesResponseEndpointsPropertiesItemsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" id?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" endpointId?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" history?: boolean; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ResourcesResponseCustomDomainsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" id?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" endpointId?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" history?: boolean; } /** * Waf Metrics Response */ model WafMetricsResponse { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeBegin?: utcDateTime; // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeEnd?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" granularity?: WafMetricsGranularity; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) series?: WafMetricsResponseSeriesItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model WafMetricsResponseSeriesItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" metric?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" unit?: WafMetricsSeriesUnit; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#["name"]) groups?: WafMetricsResponseSeriesPropertiesItemsItem[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) data?: Components18OrqelSchemasWafmetricsresponsePropertiesSeriesItemsPropertiesDataItems[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model WafMetricsResponseSeriesPropertiesItemsItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" name?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: string; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model Components18OrqelSchemasWafmetricsresponsePropertiesSeriesItemsPropertiesDataItems { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTime?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: float32; } /** * Waf Rankings Response */ model WafRankingsResponse { // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeBegin?: utcDateTime; // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dateTimeEnd?: utcDateTime; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" groups?: string[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) data?: WafRankingsResponseDataItem[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model WafRankingsResponseDataItem { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" groupValues?: string[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) metrics?: ComponentsKpo1PjSchemasWafrankingsresponsePropertiesDataItemsPropertiesMetricsItems[]; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ComponentsKpo1PjSchemasWafrankingsresponsePropertiesDataItemsPropertiesMetricsItems { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" metric?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" value?: int64; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" percentage?: float64; } /** * Properties required to update a profile. */ #suppress "@azure-tools/typespec-azure-resource-manager/patch-envelope" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ProfileUpdateParameters { /** * Profile tags */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; /** * Managed service identity (system assigned and/or user assigned identities). */ identity?: Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; /** * The JSON object containing profile update parameters. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: ProfilePropertiesUpdateParameters; } /** * The JSON object containing profile update parameters. */ model ProfilePropertiesUpdateParameters { /** * Send and receive timeout on forwarding request to the origin. When timeout is reached, the request fails and returns. */ @minValue(16) originResponseTimeoutSeconds?: int32; /** * Defines rules to scrub sensitive fields in logs */ logScrubbing?: ProfileLogScrubbing; } /** * Request body for CanMigrate operation. */ model CanMigrateParameters { /** * Resource reference of the classic cdn profile or classic frontdoor that need to be migrated. */ classicResourceReference: ResourceReference; } /** * Result for canMigrate operation. */ model CanMigrateResult { /** * Resource ID. */ @visibility(Lifecycle.Read) id?: Azure.Core.armResourceIdentifier; /** * Resource type. */ @visibility(Lifecycle.Read) type?: string; #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: CanMigrateProperties; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model CanMigrateProperties { /** * Flag that says if the profile can be migrated */ @visibility(Lifecycle.Read) canMigrate?: boolean; /** * Recommended sku for the migration */ @visibility(Lifecycle.Read) defaultSku?: CanMigrateDefaultSku; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) errors?: MigrationErrorType[]; } /** * Error response indicates CDN service is not able to process the incoming request. The reason is provided in the error message. */ model MigrationErrorType { /** * Error code. */ @visibility(Lifecycle.Read) code?: string; /** * Resource which has the problem. */ @visibility(Lifecycle.Read) resourceName?: string; /** * Error message indicating why the operation failed. */ @visibility(Lifecycle.Read) errorMessage?: string; /** * Describes what needs to be done to fix the problem */ @visibility(Lifecycle.Read) nextSteps?: string; } /** * Request body for Migrate operation. */ model MigrationParameters { /** * Sku for the migration */ sku: Sku; /** * Resource reference of the classic cdn profile or classic frontdoor that need to be migrated. */ classicResourceReference: ResourceReference; /** * Name of the new profile that need to be created. */ profileName: string; /** * Waf mapping for the migrated profile */ @identifiers(#[]) migrationWebApplicationFirewallMappings?: MigrationWebApplicationFirewallMapping[]; } /** * Web Application Firewall Mapping */ model MigrationWebApplicationFirewallMapping { /** * Migration From Waf policy */ migratedFrom?: ResourceReference; /** * Migration to Waf policy */ migratedTo?: ResourceReference; } /** * Result for migrate operation. */ model MigrateResult { /** * Resource ID. */ @visibility(Lifecycle.Read) id?: Azure.Core.armResourceIdentifier; /** * Resource type. */ @visibility(Lifecycle.Read) type?: string; #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: MigrateResultProperties; } #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model MigrateResultProperties { /** * Arm resource id of the migrated profile */ @visibility(Lifecycle.Read) migratedProfileResourceId?: ResourceReference; } /** * The URI required to login to the supplemental portal from the Azure portal. */ model SsoUri { /** * The URI used to login to the supplemental portal. */ @visibility(Lifecycle.Read) ssoUriValue?: string; } /** * The result of the GetSupportedOptimizationTypes API */ model SupportedOptimizationTypesListResult { /** * Supported optimization types for a profile. */ @visibility(Lifecycle.Read) supportedOptimizationTypes?: OptimizationType[]; } /** * Output of check resource usage API. */ model ResourceUsageListResult is Azure.Core.Page; /** * Output of check resource usage API. */ model ResourceUsage { /** * Resource type for which the usage is provided. */ @visibility(Lifecycle.Read) resourceType?: string; /** * Unit of the usage. e.g. count. */ @visibility(Lifecycle.Read) unit?: ResourceUsageUnit; /** * Actual value of usage on the specified resource type. */ @visibility(Lifecycle.Read) currentValue?: int32; /** * Quota of the specified resource type. */ @visibility(Lifecycle.Read) limit?: int32; } /** * The JSON object that contains the properties required to create an endpoint. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model EndpointProperties extends EndpointPropertiesUpdateParameters { /** * The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g. contoso.azureedge.net */ @visibility(Lifecycle.Read) hostName?: string; /** * The source of the content being delivered via CDN. */ @identifiers(#["name"]) origins: DeepCreatedOrigin[]; /** * The origin groups comprising of origins that are used for load balancing the traffic based on availability. */ @identifiers(#["name"]) originGroups?: DeepCreatedOriginGroup[]; /** * The custom domains under the endpoint. */ @visibility(Lifecycle.Read) @identifiers(#["name"]) customDomains?: DeepCreatedCustomDomain[]; /** * Resource status of the endpoint. */ @visibility(Lifecycle.Read) resourceState?: EndpointResourceState; /** * Provisioning status of the endpoint. */ @visibility(Lifecycle.Read) provisioningState?: EndpointProvisioningState; } /** * The main origin of CDN content which is added when creating a CDN endpoint. */ model DeepCreatedOrigin { /** * Origin name which must be unique within the endpoint. */ name: string; /** * Properties of the origin created on the CDN endpoint. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: DeepCreatedOriginProperties; } /** * Properties of the origin created on the CDN endpoint. */ model DeepCreatedOriginProperties { /** * The address of the origin. It can be a domain name, IPv4 address, or IPv6 address. This should be unique across all origins in an endpoint. */ hostName: string; /** * The value of the HTTP port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpPort?: int32; /** * The value of the HTTPS port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpsPort?: int32; /** * The host header value sent to the origin with each request. 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?: string; /** * Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5. */ @maxValue(5) @minValue(1) priority?: int32; /** * Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 */ @maxValue(1000) @minValue(1) weight?: int32; /** * Origin is enabled for load balancing or not. By default, origin is always enabled. */ enabled?: boolean; /** * The Alias of the Private Link resource. Populating this optional field indicates that this origin is 'Private' */ privateLinkAlias?: string; /** * The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private' */ privateLinkResourceId?: string; /** * The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated */ privateLinkLocation?: string; /** * A custom message to be included in the approval request to connect to the Private Link. */ privateLinkApprovalMessage?: string; /** * The approval status for the connection to the Private Link */ @visibility(Lifecycle.Read) privateEndpointStatus?: PrivateEndpointStatus; } /** * The origin group for CDN content which is added when creating a CDN endpoint. Traffic is sent to the origins within the origin group based on origin health. */ model DeepCreatedOriginGroup { /** * Origin group name which must be unique within the endpoint. */ name: string; /** * Properties of the origin group created on the CDN endpoint. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: DeepCreatedOriginGroupProperties; } /** * Properties of the origin group created on the CDN endpoint. */ model DeepCreatedOriginGroupProperties { /** * Health probe settings to the origin that is used to determine the health of the origin. */ healthProbeSettings?: HealthProbeParameters; /** * The source of the content being delivered via CDN within given origin group. */ origins: ResourceReference[]; /** * Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. */ @maxValue(50) trafficRestorationTimeToHealedOrNewEndpointsInMinutes?: int32; /** * The JSON object that contains the properties to determine origin health using real requests/responses.This property is currently not supported. */ responseBasedOriginErrorDetectionSettings?: ResponseBasedOriginErrorDetectionParameters; } /** * The JSON object that contains the properties to determine origin health using real requests/responses. */ model ResponseBasedOriginErrorDetectionParameters { /** * Type of response errors for real user requests for which origin will be deemed unhealthy */ responseBasedDetectedErrorTypes?: ResponseBasedDetectedErrorTypes; /** * The percentage of failed requests in the sample where failover should trigger. */ @maxValue(100) @minValue(0) responseBasedFailoverThresholdPercentage?: int32; /** * The list of Http status code ranges that are considered as server errors for origin and it is marked as unhealthy. */ @identifiers(#[]) httpErrorRanges?: HttpErrorRangeParameters[]; } /** * The JSON object that represents the range for http status codes */ model HttpErrorRangeParameters { /** * The inclusive start of the http status code range. */ @maxValue(999) @minValue(100) begin?: int32; /** * The inclusive end of the http status code range. */ @maxValue(999) @minValue(100) end?: int32; } /** * Custom domains created on the CDN endpoint. */ model DeepCreatedCustomDomain { /** * Custom domain name. */ name: string; /** * Properties of the custom domain created on the CDN endpoint. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: DeepCreatedCustomDomainProperties; } /** * Properties of the custom domain created on the CDN endpoint. */ model DeepCreatedCustomDomainProperties { /** * The host name of the custom domain. Must be a domain name. */ hostName: string; /** * Special validation or data may be required when delivering CDN to some regions due to local compliance reasons. E.g. ICP license number of a custom domain is required to deliver content in China. */ validationData?: string; } /** * The JSON object containing endpoint update parameters. */ model EndpointPropertiesUpdateParameters { /** * A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath. */ originPath?: string; /** * List of content types on which compression applies. The value should be a valid MIME type. */ contentTypesToCompress?: string[]; /** * 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?: 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. */ isCompressionEnabled?: 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?: boolean = true; /** * Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. */ isHttpsAllowed?: boolean = true; /** * 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?: QueryStringCachingBehavior = QueryStringCachingBehavior.NotSet; /** * 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?: OptimizationType; /** * 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?: 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/ */ @identifiers(#[]) geoFilters?: GeoFilter[]; /** * A reference to the origin group. */ defaultOriginGroup?: ResourceReference; /** * List of keys used to validate the signed URL hashes. */ @identifiers(#["keyId"]) urlSigningKeys?: UrlSigningKey[]; /** * A policy that specifies the delivery rules to be used for an endpoint. */ deliveryPolicy?: EndpointPropertiesUpdateParametersDeliveryPolicy; /** * Defines the Web Application Firewall policy for the endpoint (if applicable) */ webApplicationFirewallPolicyLink?: EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLink; } /** * Rules defining user's geo access within a CDN endpoint. */ model GeoFilter { /** * Relative path applicable to geo filter. (e.g. '/mypictures', '/mypicture/kitty.jpg', and etc.) */ relativePath: string; /** * Action of the geo filter, i.e. allow or block access. */ action: GeoFilterActions; /** * Two letter country or region codes defining user country or region access in a geo filter, e.g. AU, MX, US. */ countryCodes: string[]; } /** * Url signing key */ model UrlSigningKey { /** * Defines the customer defined key Id. This id will exist in the incoming request to indicate the key used to form the hash. */ keyId: string; /** * Defines the parameters for using customer key vault for Url Signing Key. */ keySourceParameters: KeyVaultSigningKeyParameters; } /** * Describes the parameters for using a user's KeyVault for URL Signing Key. */ model KeyVaultSigningKeyParameters { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" typeName: KeyVaultSigningKeyParametersType; /** * Subscription Id of the user's Key Vault containing the secret */ subscriptionId: string; /** * Resource group of the user's Key Vault containing the secret */ resourceGroupName: string; /** * The name of the user's Key Vault containing the secret */ vaultName: string; /** * The name of secret in Key Vault. */ secretName: string; /** * The version(GUID) of secret in Key Vault. */ secretVersion: string; } /** * A policy that specifies the delivery rules to be used for an endpoint. */ model EndpointPropertiesUpdateParametersDeliveryPolicy { /** * User-friendly description of the policy. */ description?: string; /** * A list of the delivery rules. */ @identifiers(#["name"]) rules: DeliveryRule[]; } /** * A rule that specifies a set of actions and conditions */ model DeliveryRule { /** * Name of the rule */ name?: string; /** * The order in which the rules are applied for the endpoint. Possible values {0,1,2,3,………}. A rule with a lesser order will be applied before a rule with a greater order. Rule with order 0 is a special rule. It does not require any condition and actions listed in it will always be applied. */ order: int32; /** * A list of conditions that must be matched for the actions to be executed */ @identifiers(#["name"]) conditions?: DeliveryRuleCondition[]; /** * A list of actions that are executed when all the conditions of a rule are satisfied. */ @identifiers(#["name"]) actions: DeliveryRuleAction[]; } /** * Defines the Web Application Firewall policy for the endpoint (if applicable) */ model EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLink { /** * Resource ID. */ id?: string; } /** * Properties required to create or update an endpoint. */ model EndpointUpdateParameters { /** * Endpoint tags. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; /** * The JSON object containing endpoint update parameters. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: EndpointPropertiesUpdateParameters; } /** * Parameters required for content purge. */ model PurgeParameters { /** * The path to the content to be purged. Can describe a file path or a wild card directory. */ contentPaths: string[]; } /** * Parameters required for content load. */ model LoadParameters { /** * The path to the content to be loaded. Path should be a relative file URL of the origin. */ contentPaths: string[]; } /** * The JSON object that contains the properties of the origin. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OriginProperties extends OriginUpdatePropertiesParameters { /** * Resource status of the origin. */ @visibility(Lifecycle.Read) resourceState?: OriginResourceState; /** * Provisioning status of the origin. */ @visibility(Lifecycle.Read) provisioningState?: OriginProvisioningState; /** * The approval status for the connection to the Private Link */ @visibility(Lifecycle.Read) privateEndpointStatus?: PrivateEndpointStatus; /** * The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint. */ hostName: string; } /** * The JSON object that contains the properties of the origin. */ model OriginUpdatePropertiesParameters { /** * The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint. */ hostName?: string; /** * The value of the HTTP port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpPort?: int32; /** * The value of the HTTPS port. Must be between 1 and 65535. */ @maxValue(65535) @minValue(1) httpsPort?: int32; /** * The host header value sent to the origin with each request. 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. This overrides the host header defined at Endpoint */ originHostHeader?: string; /** * Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5 */ @maxValue(5) @minValue(1) priority?: int32; /** * Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 */ @maxValue(1000) @minValue(1) weight?: int32; /** * Origin is enabled for load balancing or not */ enabled?: boolean; /** * The Alias of the Private Link resource. Populating this optional field indicates that this origin is 'Private' */ privateLinkAlias?: string; /** * The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private' */ privateLinkResourceId?: string; /** * The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated */ privateLinkLocation?: string; /** * A custom message to be included in the approval request to connect to the Private Link. */ privateLinkApprovalMessage?: string; } /** * Origin properties needed for origin update. */ model OriginUpdateParameters { /** * The JSON object that contains the properties of the origin. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: OriginUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the origin group. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OriginGroupProperties extends OriginGroupUpdatePropertiesParameters { /** * Resource status of the origin group. */ @visibility(Lifecycle.Read) resourceState?: OriginGroupResourceState; /** * Provisioning status of the origin group. */ @visibility(Lifecycle.Read) provisioningState?: OriginGroupProvisioningState; } /** * The JSON object that contains the properties of the origin group. */ model OriginGroupUpdatePropertiesParameters { /** * Health probe settings to the origin that is used to determine the health of the origin. */ healthProbeSettings?: HealthProbeParameters; /** * The source of the content being delivered via CDN within given origin group. */ origins?: ResourceReference[]; /** * Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. */ @maxValue(50) @minValue(0) trafficRestorationTimeToHealedOrNewEndpointsInMinutes?: int32; /** * The JSON object that contains the properties to determine origin health using real requests/responses. This property is currently not supported. */ responseBasedOriginErrorDetectionSettings?: ResponseBasedOriginErrorDetectionParameters; } /** * Origin group properties needed for origin group creation or update. */ model OriginGroupUpdateParameters { /** * The JSON object that contains the properties of the origin group. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: OriginGroupUpdatePropertiesParameters; } /** * The JSON object that contains the properties of the custom domain to create. */ model CustomDomainProperties { /** * The host name of the custom domain. Must be a domain name. */ hostName: string; /** * Resource status of the custom domain. */ @visibility(Lifecycle.Read) resourceState?: CustomDomainResourceState; /** * Provisioning status of the custom domain. */ @visibility(Lifecycle.Read) customHttpsProvisioningState?: CustomHttpsProvisioningState; /** * Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step. */ @visibility(Lifecycle.Read) customHttpsProvisioningSubstate?: CustomHttpsProvisioningSubstate; /** * Certificate parameters for securing custom HTTPS */ customHttpsParameters?: CustomDomainHttpsParameters; /** * Special validation or data may be required when delivering CDN to some regions due to local compliance reasons. E.g. ICP license number of a custom domain is required to deliver content in China. */ validationData?: string; /** * Provisioning status of Custom Https of the custom domain. */ @visibility(Lifecycle.Read) provisioningState?: CustomHttpsProvisioningState; } /** * The JSON object that contains the properties to secure a custom domain. */ @discriminator("certificateSource") model CustomDomainHttpsParameters { /** * Defines the source of the SSL certificate. */ certificateSource: CertificateSource; /** * Defines the TLS extension protocol that is used for secure delivery. */ protocolType: ProtocolType; /** * TLS protocol version that will be used for Https */ minimumTlsVersion?: MinimumTlsVersion; } /** * The customDomain JSON object required for custom domain creation or update. */ model CustomDomainParameters { /** * The JSON object that contains the properties of the custom domain to create. */ properties?: CustomDomainPropertiesParameters; } /** * The JSON object that contains the properties of the custom domain to create. */ model CustomDomainPropertiesParameters { /** * The host name of the custom domain. Must be a domain name. */ hostName: string; } /** * Input of CheckNameAvailability API. */ model CheckNameAvailabilityInput { /** * The resource name to validate. */ name: string; /** * The type of the resource whose name is to be validated. */ type: ResourceType; } /** * Input of the validate probe API. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ValidateProbeInput { /** * The probe URL to validate. */ probeURL: string; } /** * Output of the validate probe API. */ model ValidateProbeOutput { /** * Indicates whether the probe URL is accepted or not. */ @visibility(Lifecycle.Read) isValid?: boolean; /** * Specifies the error code when the probe url is not accepted. */ @visibility(Lifecycle.Read) errorCode?: string; /** * The detailed error message describing why the probe URL is not accepted. */ @visibility(Lifecycle.Read) message?: string; } /** * Result of the request to list CDN operations. It contains a list of operations and a URL link to get the next set of results. */ model OperationsListResult { /** * List of CDN operations supported by the CDN resource provider. */ @pageItems @identifiers(#[]) value: Operation[]; /** * URL to get the next set of operation list results if there are any. */ @nextLink nextLink?: string; } /** * CDN REST API operation */ model Operation { /** * Operation name: {provider}/{resource}/{operation} */ @visibility(Lifecycle.Read) name?: string; /** * Indicates whether the operation is a data action */ isDataAction?: boolean; /** * The object that represents the operation. */ display?: OperationDisplay; /** * The origin of operations. */ @visibility(Lifecycle.Read) origin?: string; /** * Properties of operation, include metric specifications. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: OperationProperties; } /** * The object that represents the operation. */ model OperationDisplay { /** * Service provider: Microsoft.Cdn */ @visibility(Lifecycle.Read) provider?: string; /** * Resource on which the operation is performed: Profile, endpoint, etc. */ @visibility(Lifecycle.Read) resource?: string; /** * Operation type: Read, write, delete, etc. */ @visibility(Lifecycle.Read) operation?: string; /** * Description of operation. */ @visibility(Lifecycle.Read) description?: string; } /** * Properties of operation, include metric specifications. */ model OperationProperties { /** * One property of operation, include metric specifications. */ serviceSpecification?: ServiceSpecification; } /** * One property of operation, include log specifications. */ model ServiceSpecification { /** * Log specifications of operation. */ @identifiers(#["name"]) logSpecifications?: LogSpecification[]; /** * Metric specifications of operation. */ @identifiers(#["name"]) metricSpecifications?: MetricSpecification[]; } /** * Log specification of operation. */ model LogSpecification { /** * Name of log specification. */ name?: string; /** * Display name of log specification. */ displayName?: string; /** * Blob duration of specification. */ blobDuration?: string; /** * Pattern to filter based on name */ logFilterPattern?: string; } /** * Metric specification of operation. */ model MetricSpecification { /** * Name of metric specification. */ name?: string; /** * Display name of metric specification. */ displayName?: string; /** * Display description of metric specification. */ displayDescription?: string; /** * The metric unit. Possible values include: 'Bytes', 'Count', 'Milliseconds'. */ unit?: string; /** * The metric aggregation type. Possible values include: 'Average', 'Count', 'Total'. */ aggregationType?: string; /** * Retention policies of a resource metric. */ @identifiers(#[]) availabilities?: MetricAvailability[]; /** * The supported time grain types for the metrics. */ supportedTimeGrainTypes?: string[]; /** * The dimensions of metric */ @identifiers(#["name"]) dimensions?: DimensionProperties[]; /** * Property to specify whether to fill gap with zero. */ fillGapWithZero?: boolean; /** * Pattern to filter based on name */ metricFilterPattern?: string; /** * Property to specify metric is internal or not. */ isInternal?: boolean; } /** * Retention policy of a resource metric. */ model MetricAvailability { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeGrain?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" blobDuration?: string; } /** * Type of operation: get, read, delete, etc. */ model DimensionProperties { /** * Name of dimension. */ name?: string; /** * Display name of dimension. */ displayName?: string; /** * Internal name of dimension. */ internalName?: string; } /** * Result of the request to list CDN edgenodes. It contains a list of ip address group and a URL link to get the next set of results. */ model EdgenodeResult is Azure.Core.Page; /** * Edgenode is a global Point of Presence (POP) location used to deliver CDN content to end users. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model EdgeNode extends Azure.ResourceManager.CommonTypes.ProxyResource { /** * The JSON object that contains the properties required to create an edgenode. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: EdgeNodeProperties; } /** * The JSON object that contains the properties required to create an edgenode. */ model EdgeNodeProperties { /** * List of ip address groups. */ @identifiers(#["deliveryRegion"]) ipAddressGroups: IpAddressGroup[]; } /** * CDN Ip address group */ model IpAddressGroup { /** * The delivery region of the ip address group */ deliveryRegion?: string; /** * The list of ip v4 addresses. */ @identifiers(#["baseIpAddress"]) ipv4Addresses?: CidrIpAddress[]; /** * The list of ip v6 addresses. */ @identifiers(#["baseIpAddress"]) ipv6Addresses?: CidrIpAddress[]; } /** * CIDR Ip address */ model CidrIpAddress { /** * Ip address itself. */ baseIpAddress?: string; /** * The length of the prefix of the ip address. */ prefixLength?: int32; } /** * Request body for Migrate operation. */ model CdnMigrationToAfdParameters { /** * Sku for the migration */ sku: Sku; /** * A name map between classic CDN endpoints and AFD Premium/Standard endpoints. */ @identifiers(#[]) migrationEndpointMappings?: MigrationEndpointMapping[]; } /** * CDN Endpoint Mapping. */ model MigrationEndpointMapping { /** * Name of the classic CDN profile endpoint. */ migratedFrom?: string; /** * Name of the newly created migrated Azure Frontdoor Standard/Premium profile endpoint. This name will replace the name of the classic CDN endpoint resource. */ migratedTo?: string; } /** * The properties of a profile agent association. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ProfileAgentProperties { /** * Reference to the web agent resource. */ webAgent: ResourceReference; /** * List of custom domains associated with this agent link. */ customDomains: ResourceReference[]; /** * Provisioning status of the profile agent association. */ @visibility(Lifecycle.Read) provisioningState?: ProfileAgentProvisioningState; } /** * Properties required to update a profile agent association. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ProfileAgentUpdateParameters { /** * The properties for updating a profile agent association. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: ProfileAgentUpdateProperties; } /** * The properties for updating a profile agent association. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ProfileAgentUpdateProperties { /** * List of custom domains associated with this agent link. */ customDomains?: ResourceReference[]; } /** * Defines a list of WebApplicationFirewallPolicies for Azure CDN. It contains a list of WebApplicationFirewallPolicy objects and a URL link to get the next set of results. */ model CdnWebApplicationFirewallPolicyList is Azure.Core.Page; /** * Defines CDN web application firewall policy properties. */ model CdnWebApplicationFirewallPolicyProperties { /** * Describes policySettings for policy */ policySettings?: PolicySettings; /** * Describes rate limit rules inside the policy. */ rateLimitRules?: RateLimitRuleList; /** * Describes custom rules inside the policy. */ customRules?: CustomRuleList; /** * Describes managed rules inside the policy. */ managedRules?: ManagedRuleSetList; /** * Describes Azure CDN endpoints associated with this Web Application Firewall policy. */ @visibility(Lifecycle.Read) endpointLinks?: CdnEndpoint[]; /** * Key-Value pair representing additional properties for Web Application Firewall policy. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" extendedProperties?: Record; /** * Provisioning state of the WebApplicationFirewallPolicy. */ @visibility(Lifecycle.Read) provisioningState?: ProvisioningState; /** * Resource status of the policy. */ @visibility(Lifecycle.Read) resourceState?: PolicyResourceState; } /** * Defines contents of a web application firewall global configuration */ model PolicySettings { /** * describes if the policy is in enabled state or disabled state */ enabledState?: PolicyEnabledState; /** * Describes if it is in detection mode or prevention mode at policy level. */ mode?: PolicyMode; /** * If action type is redirect, this field represents the default redirect URL for the client. */ defaultRedirectUrl?: string; /** * If the action type is block, this field defines the default customer overridable http response status code. */ defaultCustomBlockResponseStatusCode?: PolicySettingsDefaultCustomBlockResponseStatusCode; /** * If the action type is block, customer can override the response body. The body must be specified in base64 encoding. */ @pattern("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$") defaultCustomBlockResponseBody?: string; } /** * Defines contents of rate limit rules */ model RateLimitRuleList { /** * List of rules */ @identifiers(#["name"]) rules?: RateLimitRule[]; } /** * Defines a rate limiting rule that can be included in a waf policy */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model RateLimitRule extends CustomRule { /** * Defines rate limit threshold. */ @minValue(0) rateLimitThreshold: int32; /** * Defines rate limit duration. Default is 1 minute. */ @maxValue(60) @minValue(0) rateLimitDurationInMinutes: int32; } /** * Defines the common attributes for a custom rule that can be included in a waf policy */ model CustomRule { /** * Defines the name of the custom rule */ name: string; /** * Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. */ enabledState?: CustomRuleEnabledState; /** * Defines in what order this rule be evaluated in the overall list of custom rules */ @maxValue(1000) @minValue(0) priority: int32; /** * List of match conditions. */ @identifiers(#[]) matchConditions: MatchCondition[]; /** * Describes what action to be applied when rule matches */ action: ActionType; } /** * Define match conditions */ model MatchCondition { /** * Match variable to compare against. */ matchVariable: WafMatchVariable; /** * Selector can used to match a specific key for QueryString, Cookies, RequestHeader or PostArgs. */ selector?: string; /** * Describes operator to be matched */ operator: Operator; /** * Describes if the result of this condition should be negated. */ negateCondition?: boolean; /** * List of possible match values. */ matchValue: string[]; /** * List of transforms. */ transforms?: TransformType[]; } /** * Defines contents of custom rules */ model CustomRuleList { /** * List of rules */ @identifiers(#["name"]) rules?: CustomRule[]; } /** * Defines the list of managed rule sets for the policy. */ model ManagedRuleSetList { /** * List of rule sets. */ @identifiers(#["ruleSetType", "ruleSetVersion"]) managedRuleSets?: ManagedRuleSet[]; } /** * Defines a managed rule set. */ model ManagedRuleSet { /** * Defines the rule set type to use. */ ruleSetType: string; /** * Defines the version of the rule set to use. */ ruleSetVersion: string; /** * Verizon only : If the rule set supports anomaly detection mode, this describes the threshold for blocking requests. */ @maxValue(20) @minValue(0) anomalyScore?: int32; /** * Defines the rule overrides to apply to the rule set. */ @identifiers(#["ruleGroupName"]) ruleGroupOverrides?: ManagedRuleGroupOverride[]; } /** * Defines a managed rule group override setting. */ model ManagedRuleGroupOverride { /** * Describes the managed rule group within the rule set to override */ ruleGroupName: string; /** * List of rules that will be enabled. If none specified, all rules in the group will be disabled. */ @identifiers(#["ruleId"]) rules?: ManagedRuleOverride[]; } /** * Defines a managed rule group override setting. */ model ManagedRuleOverride { /** * Identifier for the managed rule. */ ruleId: string; /** * Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified. */ enabledState?: ManagedRuleEnabledState; /** * Describes the override action to be applied when rule matches. */ action?: ActionType; } /** * Defines the ARM Resource ID for the linked endpoints */ model CdnEndpoint { /** * ARM Resource ID string. */ id?: string; } /** * Properties required to update a CdnWebApplicationFirewallPolicy. */ #suppress "@azure-tools/typespec-azure-resource-manager/patch-envelope" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model CdnWebApplicationFirewallPolicyPatchParameters { /** * CdnWebApplicationFirewallPolicy tags */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; } /** * List of managed rule set definitions available for use in a policy. */ model ManagedRuleSetDefinitionList is Azure.Core.Page; /** * Describes a managed rule set definition. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ManagedRuleSetDefinition extends Azure.ResourceManager.CommonTypes.Resource { /** * Describes managed rule set definition properties. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: ManagedRuleSetDefinitionProperties; /** * The pricing tier (defines a CDN provider, feature list and rate) of the CdnWebApplicationFirewallPolicy. */ sku?: Sku; } /** * Properties for a managed rule set definition. */ model ManagedRuleSetDefinitionProperties { /** * Provisioning state of the managed rule set. */ @visibility(Lifecycle.Read) provisioningState?: string; /** * Type of the managed rule set. */ @visibility(Lifecycle.Read) ruleSetType?: string; /** * Version of the managed rule set type. */ @visibility(Lifecycle.Read) ruleSetVersion?: string; /** * Rule groups of the managed rule set. */ @visibility(Lifecycle.Read) @identifiers(#["ruleGroupName"]) ruleGroups?: ManagedRuleGroupDefinition[]; } /** * Describes a managed rule group. */ model ManagedRuleGroupDefinition { /** * Name of the managed rule group. */ @visibility(Lifecycle.Read) ruleGroupName?: string; /** * Description of the managed rule group. */ @visibility(Lifecycle.Read) description?: string; /** * List of rules within the managed rule group. */ @visibility(Lifecycle.Read) @identifiers(#["ruleId"]) rules?: ManagedRuleDefinition[]; } /** * Describes a managed rule definition. */ model ManagedRuleDefinition { /** * Identifier for the managed rule. */ @visibility(Lifecycle.Read) ruleId?: string; /** * Describes the functionality of the managed rule. */ @visibility(Lifecycle.Read) description?: string; } /** * Defines a list of web agents. It contains a list of WebAgent objects and a URL link to get the next set of results. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebAgentList is Azure.Core.Page; /** * Defines properties of a web agent. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebAgentProperties { /** * Optional textual description of the agent. */ description?: string; /** * System prompt for the web agent. */ systemPrompt?: string; /** * List of paths associated with the web agent. */ @identifiers(#[]) paths?: AgentPath[]; /** * References to agent links in CDN profiles. */ @visibility(Lifecycle.Read) profileAgentLinks?: ResourceReference[]; /** * Provisioning status of the web agent. */ @visibility(Lifecycle.Read) provisioningState?: WebAgentProvisioningState; } /** * Defines a path configuration for a web agent. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model AgentPath { /** * The type of the path. */ type: AgentPathType; /** * The actual path value. */ path: string; } /** * Properties required to update a web agent. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebAgentUpdateParameters { /** * Web agent tags */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; /** * Properties of the web agent to be updated. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: WebAgentPropertiesUpdateParameters; } /** * Defines properties of a web agent that can be updated. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebAgentPropertiesUpdateParameters { /** * Optional textual description of the agent. */ description?: string; /** * System prompt for the web agent. */ systemPrompt?: string; /** * List of paths associated with the web agent. */ @identifiers(#[]) paths?: AgentPath[]; } /** * Defines a list of knowledge sources. It contains a list of KnowledgeSource objects and a URL link to get the next set of results. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model KnowledgeSourceList is Azure.Core.Page; /** * Defines properties of a knowledge source. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model KnowledgeSourceProperties { /** * Description of the knowledge source. */ description?: string; /** * Format or origin of the knowledge source. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" sourceType: KnowledgeSourceType; /** * Endpoint or location of the knowledge source. */ url: string; /** * Specifies the units of time for scheduling update intervals for the knowledge source. */ updateFrequency?: KnowledgeSourceUpdateFrequency; /** * The last time the knowledge source was updated. */ @visibility(Lifecycle.Read) // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. lastRefreshedTime?: utcDateTime; /** * Provisioning status of the knowledge source. */ @visibility(Lifecycle.Read) provisioningState?: KnowledgeSourceProvisioningState; } /** * Properties required to update a knowledge source. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model KnowledgeSourceUpdateParameters { /** * Properties of the knowledge source to be updated. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: KnowledgeSourcePropertiesUpdateParameters; } /** * Defines properties of a knowledge source that can be updated. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model KnowledgeSourcePropertiesUpdateParameters { /** * Description of the knowledge source. */ description?: string; /** * Endpoint or location of the knowledge source. */ url?: string; /** * Specifies the units of time for scheduling update intervals for the knowledge source. */ updateFrequency?: KnowledgeSourceUpdateFrequency; } /** * Defines web application firewall policy. */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebApplicationFirewallPolicy extends Azure.ResourceManager.CommonTypes.Resource { /** * Properties of the web application firewall policy. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty properties?: WebApplicationFirewallPolicyProperties; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * The pricing tier of web application firewall policy. Defaults to Classic_AzureFrontDoor if not specified. */ sku?: Sku; } /** * Defines web application firewall policy properties. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebApplicationFirewallPolicyProperties { /** * Describes settings for the policy. */ policySettings?: PolicySettingsAfd; /** * Describes custom rules inside the policy. */ customRules?: CustomRuleListAfd; /** * Describes managed rules inside the policy. */ managedRules?: ManagedRuleSetListAfd; /** * Describes Frontend Endpoints associated with this Web Application Firewall policy. */ @visibility(Lifecycle.Read) frontendEndpointLinks?: FrontendEndpointLink[]; /** * Describes Routing Rules associated with this Web Application Firewall policy. */ @visibility(Lifecycle.Read) routingRuleLinks?: RoutingRuleLink[]; /** * Describes Security Policy associated with this Web Application Firewall policy. */ @visibility(Lifecycle.Read) securityPolicyLinks?: SecurityPolicyLink[]; /** * Provisioning state of the policy. */ @visibility(Lifecycle.Read) provisioningState?: string; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) resourceState?: PolicyResourceState; } /** * Defines top-level WebApplicationFirewallPolicy configuration settings. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model PolicySettingsAfd { /** * Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified. */ enabledState?: PolicyEnabledState; /** * Describes if it is in detection mode or prevention mode at policy level. */ mode?: PolicyMode; /** * If action type is redirect, this field represents redirect URL for the client. */ redirectUrl?: string; /** * If the action type is block, customer can override the response status code. */ customBlockResponseStatusCode?: int32; /** * If the action type is block, customer can override the response body. The body must be specified in base64 encoding. */ @pattern("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$") customBlockResponseBody?: string; /** * Describes if policy managed rules will inspect the request body content. */ requestBodyCheck?: PolicyRequestBodyCheck; /** * Defines the JavaScript challenge cookie validity lifetime in minutes. This setting is only applicable to Premium_AzureFrontDoor. Value must be an integer between 5 and 1440 with the default value being 30. */ @maxValue(1440) @minValue(5) javascriptChallengeExpirationInMinutes?: int32; /** * Defines the Captcha cookie validity lifetime in minutes. This setting is only applicable to Premium_AzureFrontDoor. Value must be an integer between 5 and 1440 with the default value being 30. */ @maxValue(1440) @minValue(5) captchaExpirationInMinutes?: int32; /** * Defines rules that scrub sensitive fields in the Web Application Firewall logs. */ #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @Azure.ClientGenerator.Core.Legacy.flattenProperty logScrubbing?: PolicySettingsLogScrubbing; } /** * Defines rules that scrub sensitive fields in the Web Application Firewall logs. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model PolicySettingsLogScrubbing { /** * State of the log scrubbing config. Default value is Enabled. */ state?: WebApplicationFirewallScrubbingState; /** * List of log scrubbing rules applied to the Web Application Firewall logs. */ @identifiers(#[]) scrubbingRules?: WebApplicationFirewallScrubbingRules[]; } /** * Defines the contents of the log scrubbing rules. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model WebApplicationFirewallScrubbingRules { /** * The variable to be scrubbed from the logs. */ matchVariable: ScrubbingRuleEntryMatchVariable; /** * When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. */ selectorMatchOperator: ScrubbingRuleEntryMatchOperator; /** * When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. */ selector?: string; /** * Defines the state of a log scrubbing rule. Default value is enabled. */ state?: ScrubbingRuleEntryState; } /** * Defines contents of custom rules */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model CustomRuleListAfd { /** * List of rules */ rules?: CustomRuleAfd[]; } /** * Defines contents of a web application rule */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model CustomRuleAfd { /** * Describes the name of the rule. */ @maxLength(128) name?: string; /** * Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. */ priority: int32; /** * Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. */ enabledState?: CustomRuleEnabledState; /** * Describes type of rule. */ ruleType: RuleType; /** * Time window for resetting the rate limit count. Default is 1 minute. */ @maxValue(5) @minValue(0) rateLimitDurationInMinutes?: int32; /** * Number of allowed requests per client within the time window. */ @minValue(0) rateLimitThreshold?: int32; /** * Describes the list of variables to group the rate limit requests */ @identifiers(#[]) groupBy?: GroupByVariable[]; /** * List of match conditions. */ @identifiers(#[]) matchConditions: MatchConditionAfd[]; /** * Describes what action to be applied when rule matches. */ action: ActionType; } /** * Describes the variables available to group the rate limit requests */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model GroupByVariable { /** * Describes the supported variable for group by */ variableName: VariableName; } /** * Define a match condition. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model MatchConditionAfd { /** * Request variable to compare with. */ matchVariable: MatchVariable; /** * Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null. */ selector?: string; /** * Comparison type to use for matching with the variable value. */ operator: Operator; /** * Describes if the result of this condition should be negated. */ negateCondition?: boolean; /** * List of possible match values. */ matchValue: string[]; /** * List of transforms. */ transforms?: TransformType[]; } /** * Defines the list of managed rule sets for the policy. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ManagedRuleSetListAfd { /** * List of rule sets. */ @identifiers(#[]) managedRuleSets?: ManagedRuleSetAfd[]; } /** * Defines a managed rule set. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ManagedRuleSetAfd { /** * Defines the rule set type to use. */ ruleSetType: string; /** * Defines the version of the rule set to use. */ ruleSetVersion: string; /** * Defines the rule set action. */ ruleSetAction?: ManagedRuleSetActionType; /** * Describes the exclusions that are applied to all rules in the set. */ @identifiers(#[]) exclusions?: ManagedRuleExclusion[]; /** * Defines the rule group overrides to apply to the rule set. */ @identifiers(#[]) ruleGroupOverrides?: ManagedRuleGroupOverrideAfd[]; } /** * Exclude variables from managed rule evaluation. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ManagedRuleExclusion { /** * The variable type to be excluded. */ matchVariable: ManagedRuleExclusionMatchVariable; /** * Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to. */ selectorMatchOperator: ManagedRuleExclusionSelectorMatchOperator; /** * Selector value for which elements in the collection this exclusion applies to. */ selector: string; } /** * Defines a managed rule group override setting. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ManagedRuleGroupOverrideAfd { /** * Describes the managed rule group to override. */ ruleGroupName: string; /** * Describes the exclusions that are applied to all rules in the group. */ @identifiers(#[]) exclusions?: ManagedRuleExclusion[]; /** * List of rules that will be disabled. If none specified, all rules in the group will be disabled. */ @identifiers(#[]) rules?: ManagedRuleOverrideAfd[]; } /** * Defines a managed rule group override setting. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ManagedRuleOverrideAfd { /** * Identifier for the managed rule. */ ruleId: string; /** * Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified. */ enabledState?: ManagedRuleEnabledState; /** * Describes the override action to be applied when rule matches. */ action?: ActionType; /** * Describes the exclusions that are applied to this specific rule. */ @identifiers(#[]) exclusions?: ManagedRuleExclusion[]; } /** * Defines the Resource ID for a Frontend Endpoint. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model FrontendEndpointLink { /** * Resource ID. */ @visibility(Lifecycle.Read) id?: string; } /** * Defines the Resource ID for a Routing Rule. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model RoutingRuleLink { /** * Resource ID. */ @visibility(Lifecycle.Read) id?: string; } /** * Defines the Resource ID for a Security Policy. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model SecurityPolicyLink { /** * Resource ID. */ @visibility(Lifecycle.Read) id?: string; } /** * Certificate used for https */ model Certificate { /** * The type of the secret resource. */ type?: SecretType; /** * Subject name in the certificate. */ @visibility(Lifecycle.Read) subject?: string; /** * Certificate expiration date. */ @visibility(Lifecycle.Read) expirationDate?: string; } /** * Managed Certificate used for https */ #suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ManagedCertificate extends Certificate {} /** * Customer Certificate used for https */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model CustomerCertificate extends Certificate { /** * Resource reference to the Azure Key Vault certificate. Expected to be in format of /subscriptions/{​​​​​​​​​subscriptionId}​​​​​​​​​/resourceGroups/{​​​​​​​​​resourceGroupName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/providers/Microsoft.KeyVault/vaults/{vaultName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/secrets/{certificateName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ */ secretSource?: ResourceReference; /** * Certificate version. */ secretVersion?: string; /** * Certificate issuing authority. */ @visibility(Lifecycle.Read) certificateAuthority?: string; /** * Whether to use the latest version for the certificate */ useLatestVersion?: boolean; /** * The list of SANs. */ subjectAlternativeNames?: string[]; /** * Certificate thumbprint. */ @visibility(Lifecycle.Read) thumbprint?: string; } /** * Azure FirstParty Managed Certificate provided by other first party resource providers to enable HTTPS. */ #suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model AzureFirstPartyManagedCertificate extends Certificate {} @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) @pattern("^((?!xn--)[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,61}$") scalar Fqdn extends string; /** * Advanced settings for MtlsScenarioType enum value: ClientCertificateRequiredAndValidated. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ClientCertificateRequiredAndValidatedAdvancedSettings extends AFDDomainMtlsParameters { /** * List of one or two of Resource References (ie. subs/rg/profile/secret) to Secrets of type MtlsCertificateChain to use in mutual TLS handshake as the trusted issuer certificate chain. */ secrets: ResourceReference[]; /** * List of FQDNs that will be accepted for mutual TLS validation. */ allowedFqdns?: Fqdn[]; /** * Set to Enabled by default. If set to Disabled, revocation status of client certificate chain will be checked before establishing mutual TLS connection. */ certificateRevocationCheck?: CertificateRevocationCheckEnabledState; /** * Supported scenarios for establishing mTLS connection. */ scenario: "ClientCertificateRequiredAndValidated"; } /** * Advanced settings for MtlsScenarioType enum value: ClientCertificateRequiredAndOriginValidates. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ClientCertificateRequiredAndOriginValidatesAdvancedSettings extends AFDDomainMtlsParameters { /** * Supported scenarios for establishing mTLS connection. */ scenario: "ClientCertificateRequiredAndOriginValidates"; } /** * Advanced settings for MtlsScenarioType enum value: ClientCertificateValidatedIfPresented. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model ClientCertificateValidatedIfPresentedAdvancedSettings extends AFDDomainMtlsParameters { /** * List of one or two of Resource References (ie. subs/rg/profile/secret) to Secrets of type MtlsCertificateChain to use in mutual TLS handshake as the trusted issuer certificate chain. */ secrets: ResourceReference[]; /** * List of FQDNs that will be accepted for mutual TLS validation. */ allowedFqdns?: Fqdn[]; /** * Set to Enabled by default. If set to Disabled, revocation status of client certificate chain will be checked before establishing mutual TLS connection. */ certificateRevocationCheck?: CertificateRevocationCheckEnabledState; /** * Supported scenarios for establishing mTLS connection. */ scenario: "ClientCertificateValidatedIfPresented"; } /** * Advanced settings for MtlsScenarioType enum value: CompleteMtlsPassthroughToOrigin. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model CompleteMtlsPassthroughToOriginAdvancedSettings extends AFDDomainMtlsParameters { /** * Supported scenarios for establishing mTLS connection. */ scenario: "CompleteMtlsPassthroughToOrigin"; } /** * Contains properties required to create a security policy */ #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model SecurityPolicyPropertiesWithEmbeddedWafPolicy extends AFDStateProperties { /** * The name of the profile which holds the security policy. */ @visibility(Lifecycle.Read) profileName?: string; /** * object which contains security policy parameters */ parameters?: SecurityPolicyWebApplicationFirewallParametersWithEmbeddedWafPolicy; } /** * Contains security policy waf parameters */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model SecurityPolicyWebApplicationFirewallParametersWithEmbeddedWafPolicy extends SecurityPolicyPropertiesParameters { /** * Properties of the web application firewall policy. */ wafPolicy?: WebApplicationFirewallPolicy; /** * Waf associations */ @identifiers(#[]) associations?: SecurityPolicyWebApplicationFirewallAssociation[]; /** * The type of the Security policy to create. */ type: "WebApplicationFirewallEmbedded"; } /** * settings for security policy patterns to match */ model SecurityPolicyWebApplicationFirewallAssociation { /** * List of domains. */ domains?: ActivatedResourceReference[]; /** * List of routes. */ @added(Versions.v2026_04_01_preview) routes?: ResourceReference[]; /** * List of paths */ patternsToMatch?: string[]; } /** * The json object containing security policy waf parameters */ model SecurityPolicyWebApplicationFirewallParameters extends SecurityPolicyPropertiesParameters { /** * Resource ID. */ wafPolicy?: ResourceReference; /** * Flag to signal whether the WAF policy association is at the default Profile level. */ @added(Versions.v2026_04_01_preview) isProfileLevel?: boolean; /** * Waf associations */ @identifiers(#[]) associations?: SecurityPolicyWebApplicationFirewallAssociation[]; /** * The type of the Security policy to create. */ type: "WebApplicationFirewall"; } /** * Url signing key parameters */ model UrlSigningKeyParameters extends SecretParameters { /** * Defines the customer defined key Id. This id will exist in the incoming request to indicate the key used to form the hash. */ keyId: string; /** * Resource reference to the Azure Key Vault secret. Expected to be in format of /subscriptions/{​​​​​​​​​subscriptionId}​​​​​​​​​/resourceGroups/{​​​​​​​​​resourceGroupName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/providers/Microsoft.KeyVault/vaults/{vaultName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/secrets/{secretName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ */ secretSource: ResourceReference; /** * Version of the secret to be used */ secretVersion: string; /** * The type of the secret resource. */ type: "UrlSigningKey"; } /** * Managed Certificate used for https */ model ManagedCertificateParameters extends SecretParameters { /** * Subject name in the certificate. */ @visibility(Lifecycle.Read) subject?: string; /** * Certificate expiration date. */ @visibility(Lifecycle.Read) expirationDate?: string; /** * The type of the secret resource. */ type: "ManagedCertificate"; } /** * Customer Certificate used for https */ model CustomerCertificateParameters extends SecretParameters { /** * Resource reference to the Azure Key Vault certificate. Expected to be in format of /subscriptions/{​​​​​​​​​subscriptionId}​​​​​​​​​/resourceGroups/{​​​​​​​​​resourceGroupName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/providers/Microsoft.KeyVault/vaults/{vaultName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​/secrets/{certificateName}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ */ secretSource: ResourceReference; /** * Version of the secret to be used */ secretVersion?: string; /** * Whether to use the latest version for the certificate */ useLatestVersion?: boolean; /** * Subject name in the certificate. */ @visibility(Lifecycle.Read) subject?: string; /** * Certificate expiration date. */ @visibility(Lifecycle.Read) expirationDate?: string; /** * Certificate issuing authority. */ @visibility(Lifecycle.Read) certificateAuthority?: string; /** * The list of SANs. */ @visibility(Lifecycle.Read) subjectAlternativeNames?: string[]; /** * Certificate thumbprint. */ @visibility(Lifecycle.Read) thumbprint?: string; /** * The type of the secret resource. */ type: "CustomerCertificate"; } /** * Azure FirstParty Managed Certificate provided by other first party resource providers to enable HTTPS. */ model AzureFirstPartyManagedCertificateParameters extends SecretParameters { /** * Resource reference to the Azure Key Vault certificate. Expected to be in format of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{certificateName} */ @visibility(Lifecycle.Read) secretSource?: ResourceReference; /** * Subject name in the certificate. */ @visibility(Lifecycle.Read) subject?: string; /** * Certificate expiration date. */ @visibility(Lifecycle.Read) expirationDate?: string; /** * Certificate issuing authority. */ @visibility(Lifecycle.Read) certificateAuthority?: string; /** * The list of SANs. */ subjectAlternativeNames?: string[]; /** * Certificate thumbprint. */ @visibility(Lifecycle.Read) thumbprint?: string; /** * The type of the secret resource. */ type: "AzureFirstPartyManagedCertificate"; } /** * Server-side certificate used for mTLS validation */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model AfdSecretMtlsCertificateChain extends SecretParameters { /** * Resource reference to the Azure Key Vault secret. Expected to be in format of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{secretName} */ secretSource: ResourceReference; /** * Version of the secret to be used */ secretVersion: string; /** * Soonest expiration date among certificates in customer's certificate chain in ISO 8601 compliant format yyyy-MM-ddTHH:mm:ss.fffffffK in UTC */ @visibility(Lifecycle.Read) // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. expirationDate?: utcDateTime; /** * The type of the secret resource. */ type: "MtlsCertificateChain"; } /** * Defines the url signing action for the delivery rule. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model AfdUrlSigningAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: AfdUrlSigningActionParameters; /** * The name of the action for the delivery rule. */ name: "AfdUrlSigning"; } /** * Defines the parameters for the Url Signing action. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model AfdUrlSigningActionParameters { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" typeName: TypeName; /** * Resource reference to the Azure Key Vault secret. Expected to be in format of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/keyGroups/{keyGroupName} */ keyGroupReference: ResourceReference; /** * Algorithm to use for URL signing */ algorithm?: Algorithm; /** * Defines which query string parameters in the url to be considered for expires, key id etc. */ @identifiers(#["paramName"]) parameterNameOverride?: UrlSigningParamIdentifier[]; } /** * Defines how to identify a parameter for a specific purpose e.g. expires */ model UrlSigningParamIdentifier { /** * Indicates the purpose of the parameter */ paramIndicator: ParamIndicator; /** * Parameter name */ paramName: string; } /** * Deployment change of the route under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionRouteChange extends DeploymentVersionChange { /** * The JSON object that contains the properties of the Routes to create. */ previousProperties?: RouteProperties; /** * The JSON object that contains the properties of the Routes to create. */ currentProperties?: RouteProperties; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/afdEndpoints/routes"; } /** * Deployment change of the origin group under the profile */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionAFDOriginGroupChange extends DeploymentVersionChange { /** * The JSON object that contains the properties of the origin group. */ previousProperties?: AFDOriginGroupProperties; /** * The JSON object that contains the properties of the origin group. */ currentProperties?: AFDOriginGroupProperties; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/originGroups"; } /** * Deployment change of the origin group under the profile */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionAFDOriginChange extends DeploymentVersionChange { /** * The JSON object that contains the properties of the origin. */ previousProperties?: AFDOriginProperties; /** * The JSON object that contains the properties of the origin. */ currentProperties?: AFDOriginProperties; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/originGroups/origins"; } /** * Deployment change of the rule set under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionRuleSetChange extends DeploymentVersionChange { /** * The JSON object that contains the properties of the Rule Set to create. */ previousProperties?: RuleSetProperties; /** * The JSON object that contains the properties of the Rule Set to create. */ currentProperties?: RuleSetProperties; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/ruleSets"; } /** * Deployment change of the rule under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionRuleChange extends DeploymentVersionChange { /** * The JSON object that contains the properties of the Rules to create. */ previousProperties?: RuleProperties; /** * The JSON object that contains the properties of the Rules to create. */ currentProperties?: RuleProperties; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/ruleSets/rules"; } /** * Deployment change of the security policy under the profile */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeploymentVersionSecurityPolicyChange extends DeploymentVersionChange { /** * Contains properties required to create a security policy */ previousProperties?: SecurityPolicyPropertiesWithEmbeddedWafPolicy; /** * Contains properties required to create a security policy */ currentProperties?: SecurityPolicyPropertiesWithEmbeddedWafPolicy; /** * Resource type supported by preview. */ resourceType: "Microsoft.Cdn/profiles/securityPolicies"; } /** * The validation token. */ model ValidationToken { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) token?: string; } /** * Defines the parameters for delivery rule match conditions */ @discriminator("typeName") model DeliveryRuleConditionParameters { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" typeName: DeliveryRuleConditionParametersType; } /** * Defines the parameters for delivery rule actions */ @discriminator("typeName") model DeliveryRuleActionParameters { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" typeName: DeliveryRuleActionParametersType; } /** * Defines the parameters for certificate source */ @discriminator("typeName") model CertificateSourceParameters { #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" typeName: CertificateSourceParametersType; } /** * Defines the RemoteAddress condition for the delivery rule. */ model DeliveryRuleRemoteAddressCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RemoteAddressMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RemoteAddress"; } /** * Defines the parameters for RemoteAddress match conditions */ model RemoteAddressMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: RemoteAddressOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleRemoteAddressConditionParameters"; } /** * Defines the RequestMethod condition for the delivery rule. */ model DeliveryRuleRequestMethodCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RequestMethodMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RequestMethod"; } /** * Defines the parameters for RequestMethod match conditions */ model RequestMethodMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: RequestMethodOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * List of transforms */ transforms?: Transform[]; /** * The match value for the condition of the delivery rule */ matchValues?: RequestMethodMatchValue[]; typeName: "DeliveryRuleRequestMethodConditionParameters"; } /** * Defines the QueryString condition for the delivery rule. */ model DeliveryRuleQueryStringCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: QueryStringMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "QueryString"; } /** * Defines the parameters for QueryString match conditions */ model QueryStringMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: QueryStringOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleQueryStringConditionParameters"; } /** * Defines the PostArgs condition for the delivery rule. */ model DeliveryRulePostArgsCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: PostArgsMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "PostArgs"; } /** * Defines the parameters for PostArgs match conditions */ model PostArgsMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Name of PostArg to be matched */ selector?: string; /** * Describes operator to be matched */ operator: PostArgsOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRulePostArgsConditionParameters"; } /** * Defines the RequestUri condition for the delivery rule. */ model DeliveryRuleRequestUriCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RequestUriMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RequestUri"; } /** * Defines the parameters for RequestUri match conditions */ model RequestUriMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: RequestUriOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleRequestUriConditionParameters"; } /** * Defines the RequestHeader condition for the delivery rule. */ model DeliveryRuleRequestHeaderCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RequestHeaderMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RequestHeader"; } /** * Defines the parameters for RequestHeader match conditions */ model RequestHeaderMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Name of Header to be matched */ selector?: string; /** * Describes operator to be matched */ operator: RequestHeaderOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleRequestHeaderConditionParameters"; } /** * Defines the RequestBody condition for the delivery rule. */ model DeliveryRuleRequestBodyCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RequestBodyMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RequestBody"; } /** * Defines the parameters for RequestBody match conditions */ model RequestBodyMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: RequestBodyOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleRequestBodyConditionParameters"; } /** * Defines the RequestScheme condition for the delivery rule. */ model DeliveryRuleRequestSchemeCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: RequestSchemeMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "RequestScheme"; } /** * Defines the parameters for RequestScheme match conditions */ model RequestSchemeMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: RequestSchemeMatchConditionParametersOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * List of transforms */ transforms?: Transform[]; /** * The match value for the condition of the delivery rule */ matchValues?: RequestSchemeMatchValue[]; typeName: "DeliveryRuleRequestSchemeConditionParameters"; } /** * Defines the UrlPath condition for the delivery rule. */ model DeliveryRuleUrlPathCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: UrlPathMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "UrlPath"; } /** * Defines the parameters for UrlPath match conditions */ model UrlPathMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: UrlPathOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleUrlPathMatchConditionParameters"; } /** * Defines the UrlFileExtension condition for the delivery rule. */ model DeliveryRuleUrlFileExtensionCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: UrlFileExtensionMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "UrlFileExtension"; } /** * Defines the parameters for UrlFileExtension match conditions */ model UrlFileExtensionMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: UrlFileExtensionOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleUrlFileExtensionMatchConditionParameters"; } /** * Defines the UrlFileName condition for the delivery rule. */ model DeliveryRuleUrlFileNameCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: UrlFileNameMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "UrlFileName"; } /** * Defines the parameters for UrlFilename match conditions */ model UrlFileNameMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: UrlFileNameOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleUrlFilenameConditionParameters"; } /** * Defines the HttpVersion condition for the delivery rule. */ model DeliveryRuleHttpVersionCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: HttpVersionMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "HttpVersion"; } /** * Defines the parameters for HttpVersion match conditions */ model HttpVersionMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: HttpVersionOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleHttpVersionConditionParameters"; } /** * Defines the Cookies condition for the delivery rule. */ model DeliveryRuleCookiesCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: CookiesMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "Cookies"; } /** * Defines the parameters for Cookies match conditions */ model CookiesMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Name of Cookies to be matched */ selector?: string; /** * Describes operator to be matched */ operator: CookiesOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleCookiesConditionParameters"; } /** * Defines the IsDevice condition for the delivery rule. */ model DeliveryRuleIsDeviceCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: IsDeviceMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "IsDevice"; } /** * Defines the parameters for IsDevice match conditions */ model IsDeviceMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: IsDeviceOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: IsDeviceMatchValue[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleIsDeviceConditionParameters"; } /** * Defines the SocketAddress condition for the delivery rule. */ model DeliveryRuleSocketAddrCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: SocketAddrMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "SocketAddr"; } /** * Defines the parameters for SocketAddress match conditions */ model SocketAddrMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: SocketAddrOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleSocketAddrConditionParameters"; } /** * Defines the ClientPort condition for the delivery rule. */ model DeliveryRuleClientPortCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: ClientPortMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "ClientPort"; } /** * Defines the parameters for ClientPort match conditions */ model ClientPortMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: ClientPortOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleClientPortConditionParameters"; } /** * Defines the ServerPort condition for the delivery rule. */ model DeliveryRuleServerPortCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: ServerPortMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "ServerPort"; } /** * Defines the parameters for ServerPort match conditions */ model ServerPortMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: ServerPortOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleServerPortConditionParameters"; } /** * Defines the HostName condition for the delivery rule. */ model DeliveryRuleHostNameCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: HostNameMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "HostName"; } /** * Defines the parameters for HostName match conditions */ model HostNameMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: HostNameOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: string[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleHostNameConditionParameters"; } /** * Defines the SslProtocol condition for the delivery rule. */ model DeliveryRuleSslProtocolCondition extends DeliveryRuleCondition { /** * Defines the parameters for the condition. */ parameters: SslProtocolMatchConditionParameters; /** * The name of the condition for the delivery rule. */ name: "SslProtocol"; } /** * Defines the parameters for SslProtocol match conditions */ model SslProtocolMatchConditionParameters extends DeliveryRuleConditionParameters { /** * Describes operator to be matched */ operator: SslProtocolOperator; /** * Describes if this is negate condition or not */ negateCondition?: boolean = false; /** * The match value for the condition of the delivery rule */ matchValues?: SslProtocol[]; /** * List of transforms */ transforms?: Transform[]; typeName: "DeliveryRuleSslProtocolConditionParameters"; } /** * Defines the url redirect action for the delivery rule. */ model UrlRedirectAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: UrlRedirectActionParameters; /** * The name of the action for the delivery rule. */ name: "UrlRedirect"; } /** * Defines the parameters for the url redirect action. */ model UrlRedirectActionParameters extends DeliveryRuleActionParameters { /** * The redirect type the rule will use when redirecting traffic. */ redirectType: RedirectType; /** * Protocol to use for the redirect. The default value is MatchRequest */ destinationProtocol?: DestinationProtocol; /** * The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. */ customPath?: string; /** * Host to redirect. Leave empty to use the incoming host as the destination host. */ customHostname?: string; /** * The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in = format. ? and & will be added automatically so do not include them. */ customQueryString?: string; /** * Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. */ customFragment?: string; typeName: "DeliveryRuleUrlRedirectActionParameters"; } /** * Defines the url signing action for the delivery rule. */ model UrlSigningAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: UrlSigningActionParameters; /** * The name of the action for the delivery rule. */ name: "UrlSigning"; } /** * Defines the parameters for the Url Signing action. */ model UrlSigningActionParameters extends DeliveryRuleActionParameters { /** * Algorithm to use for URL signing */ algorithm?: Algorithm; /** * Defines which query string parameters in the url to be considered for expires, key id etc. */ @identifiers(#["paramName"]) parameterNameOverride?: UrlSigningParamIdentifier[]; typeName: "DeliveryRuleUrlSigningActionParameters"; } /** * Defines the origin group override action for the delivery rule. */ model OriginGroupOverrideAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: OriginGroupOverrideActionParameters; /** * The name of the action for the delivery rule. */ name: "OriginGroupOverride"; } /** * Defines the parameters for the origin group override action. */ model OriginGroupOverrideActionParameters extends DeliveryRuleActionParameters { /** * defines the OriginGroup that would override the DefaultOriginGroup. */ originGroup: ResourceReference; typeName: "DeliveryRuleOriginGroupOverrideActionParameters"; } /** * Defines the edge action for the delivery rule. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model EdgeAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: DeliveryRuleEdgeActionParameters; /** * The name of the action for the delivery rule. */ name: "EdgeAction"; } /** * Defines the parameters for the edge action. */ @added(Versions.v2025_09_01_preview) @removed(Versions.v2025_12_01) model DeliveryRuleEdgeActionParameters extends DeliveryRuleActionParameters { /** * defines the edge action that will be invoked. */ edgeActionReference: ResourceReference; /** * Defines at which point in the request processing pipeline the edge action will be invoked. */ invocationPoint: InvocationPoint; typeName: "DeliveryRuleEdgeActionParameters"; } /** * Defines the url rewrite action for the delivery rule. */ model UrlRewriteAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: UrlRewriteActionParameters; /** * The name of the action for the delivery rule. */ name: "UrlRewrite"; } /** * Defines the parameters for the url rewrite action. */ model UrlRewriteActionParameters extends DeliveryRuleActionParameters { /** * define a request URI pattern that identifies the type of requests that may be rewritten. If value is blank, all strings are matched. */ sourcePattern: string; /** * Define the relative URL to which the above requests will be rewritten by. */ destination: string; /** * Whether to preserve unmatched path. Default value is true. */ preserveUnmatchedPath?: boolean; typeName: "DeliveryRuleUrlRewriteActionParameters"; } /** * Defines the request header action for the delivery rule. */ model DeliveryRuleRequestHeaderAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: HeaderActionParameters; /** * The name of the action for the delivery rule. */ name: "ModifyRequestHeader"; } /** * Defines the parameters for the request header action. */ model HeaderActionParameters extends DeliveryRuleActionParameters { /** * Action to perform */ headerAction: HeaderAction; /** * Name of the header to modify */ headerName: string; /** * Value for the specified action */ value?: string; typeName: "DeliveryRuleHeaderActionParameters"; } /** * Defines the response header action for the delivery rule. */ model DeliveryRuleResponseHeaderAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: HeaderActionParameters; /** * The name of the action for the delivery rule. */ name: "ModifyResponseHeader"; } /** * Defines the cache expiration action for the delivery rule. */ model DeliveryRuleCacheExpirationAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: CacheExpirationActionParameters; /** * The name of the action for the delivery rule. */ name: "CacheExpiration"; } /** * Defines the parameters for the cache expiration action. */ model CacheExpirationActionParameters extends DeliveryRuleActionParameters { /** * Caching behavior for the requests */ cacheBehavior: CacheBehavior; /** * The level at which the content needs to be cached. */ cacheType: CacheType; /** * The duration for which the content needs to be cached. Allowed format is [d.]hh:mm:ss */ #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" cacheDuration?: string | null; typeName: "DeliveryRuleCacheExpirationActionParameters"; } /** * Defines the cache-key query string action for the delivery rule. */ model DeliveryRuleCacheKeyQueryStringAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: CacheKeyQueryStringActionParameters; /** * The name of the action for the delivery rule. */ name: "CacheKeyQueryString"; } /** * Defines the parameters for the cache-key query string action. */ model CacheKeyQueryStringActionParameters extends DeliveryRuleActionParameters { /** * Caching behavior for the requests */ queryStringBehavior: QueryStringBehavior; /** * query parameters to include or exclude (comma separated). */ #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" queryParameters?: string | null; typeName: "DeliveryRuleCacheKeyQueryStringBehaviorActionParameters"; } /** * Defines the route configuration override action for the delivery rule. Only applicable to Frontdoor Standard/Premium Profiles. */ model DeliveryRuleRouteConfigurationOverrideAction extends DeliveryRuleAction { /** * Defines the parameters for the action. */ parameters: RouteConfigurationOverrideActionParameters; /** * The name of the action for the delivery rule. */ name: "RouteConfigurationOverride"; } /** * Defines the parameters for the route configuration override action. */ model RouteConfigurationOverrideActionParameters extends DeliveryRuleActionParameters { /** * A reference to the origin group override configuration. Leave empty to use the default origin group on route. */ originGroupOverride?: OriginGroupOverride; /** * The caching configuration associated with this rule. To disable caching, do not provide a cacheConfiguration object. */ cacheConfiguration?: CacheConfiguration; typeName: "DeliveryRuleRouteConfigurationOverrideActionParameters"; } /** * Defines the parameters for the origin group override configuration. */ model OriginGroupOverride { /** * defines the OriginGroup that would override the DefaultOriginGroup on route. */ originGroup?: ResourceReference; /** * Protocol this rule will use when forwarding traffic to backends. */ forwardingProtocol?: ForwardingProtocol; } /** * Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object. */ model CacheConfiguration { /** * Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings. */ queryStringCachingBehavior?: RuleQueryStringCachingBehavior; /** * query parameters to include or exclude (comma separated). */ queryParameters?: string; /** * Indicates whether content compression is enabled. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on AzureFrontDoor when requested content is smaller than 1 byte or larger than 1 MB. */ isCompressionEnabled?: RuleIsCompressionEnabled; /** * Caching behavior for the requests */ cacheBehavior?: RuleCacheBehavior; /** * The duration for which the content needs to be cached. Allowed format is [d.]hh:mm:ss */ cacheDuration?: string; } /** * Defines the certificate source parameters using CDN managed certificate for enabling SSL. */ model CdnManagedHttpsParameters extends CustomDomainHttpsParameters { /** * Defines the certificate source parameters using CDN managed certificate for enabling SSL. */ certificateSourceParameters: CdnCertificateSourceParameters; /** * Defines the source of the SSL certificate. */ certificateSource: "Cdn"; } /** * Defines the parameters for using CDN managed certificate for securing custom domain. */ model CdnCertificateSourceParameters extends CertificateSourceParameters { /** * Type of certificate used */ certificateType: CertificateType; typeName: "CdnCertificateSourceParameters"; } /** * Defines the certificate source parameters using user's keyvault certificate for enabling SSL. */ model UserManagedHttpsParameters extends CustomDomainHttpsParameters { /** * Defines the certificate source parameters using user's keyvault certificate for enabling SSL. */ certificateSourceParameters: KeyVaultCertificateSourceParameters; /** * Defines the source of the SSL certificate. */ certificateSource: "AzureKeyVault"; } /** * Describes the parameters for using a user's KeyVault certificate for securing custom domain. */ model KeyVaultCertificateSourceParameters extends CertificateSourceParameters { /** * Subscription Id of the user's Key Vault containing the SSL certificate */ subscriptionId: string; /** * Resource group of the user's Key Vault containing the SSL certificate */ resourceGroupName: string; /** * The name of the user's Key Vault containing the SSL certificate */ vaultName: string; /** * The name of Key Vault Secret (representing the full certificate PFX) in Key Vault. */ secretName: string; /** * The version(GUID) of Key Vault Secret in Key Vault. */ secretVersion?: string; /** * Describes the action that shall be taken when the certificate is updated in Key Vault. */ updateRule: UpdateRule; /** * Describes the action that shall be taken when the certificate is removed from Key Vault. */ deleteRule: DeleteRule; typeName: "KeyVaultCertificateSourceParameters"; }