azure-resource-manager-schemas/schemas/2021-06-01/Microsoft.Network.FrontDoor...

2010 строки
63 KiB
JSON

{
"id": "https://schema.management.azure.com/schemas/2021-06-01/Microsoft.Network.FrontDoor.json#",
"title": "Microsoft.Network",
"description": "Microsoft Network Resource Types",
"$schema": "http://json-schema.org/draft-04/schema#",
"resourceDefinitions": {
"FrontDoorWebApplicationFirewallPolicies": {
"description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies",
"properties": {
"apiVersion": {
"enum": [
"2021-06-01"
],
"type": "string"
},
"etag": {
"description": "Gets a unique read-only string that changes whenever the resource is updated.",
"type": "string"
},
"location": {
"description": "Resource location.",
"type": "string"
},
"name": {
"description": "The name of the Web Application Firewall Policy.",
"maxLength": 128,
"type": "string"
},
"properties": {
"description": "Properties of the web application firewall policy.",
"oneOf": [
{
"$ref": "#/definitions/WebApplicationFirewallPolicyProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"sku": {
"description": "The pricing tier of web application firewall policy. Defaults to Classic_AzureFrontDoor if not specified.",
"oneOf": [
{
"$ref": "#/definitions/Sku"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"tags": {
"description": "Resource tags.",
"oneOf": [
{
"additionalProperties": {
"type": "string"
},
"properties": {},
"type": "object"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"type": {
"enum": [
"Microsoft.Network/FrontDoorWebApplicationFirewallPolicies"
],
"type": "string"
}
},
"required": [
"name",
"properties",
"apiVersion",
"type"
],
"type": "object"
},
"frontDoors": {
"description": "Microsoft.Network/frontDoors",
"properties": {
"apiVersion": {
"enum": [
"2021-06-01"
],
"type": "string"
},
"location": {
"description": "Resource location.",
"type": "string"
},
"name": {
"description": "Name of the Front Door which is globally unique.",
"oneOf": [
{
"maxLength": 64,
"minLength": 5,
"pattern": "^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$",
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"properties": {
"description": "Properties of the Front Door Load Balancer",
"oneOf": [
{
"$ref": "#/definitions/FrontDoorProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"resources": {
"items": {
"oneOf": [
{
"$ref": "#/definitions/frontDoors_rulesEngines_childResource"
}
]
},
"type": "array"
},
"tags": {
"description": "Resource tags.",
"oneOf": [
{
"additionalProperties": {
"type": "string"
},
"properties": {},
"type": "object"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"type": {
"enum": [
"Microsoft.Network/frontDoors"
],
"type": "string"
}
},
"required": [
"name",
"properties",
"apiVersion",
"type"
],
"type": "object"
},
"frontDoors_rulesEngines": {
"description": "Microsoft.Network/frontDoors/rulesEngines",
"properties": {
"apiVersion": {
"enum": [
"2021-06-01"
],
"type": "string"
},
"name": {
"description": "Name of the Rules Engine which is unique within the Front Door.",
"oneOf": [
{
"maxLength": 90,
"minLength": 1,
"pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"properties": {
"description": "Properties of the Rules Engine Configuration.",
"oneOf": [
{
"$ref": "#/definitions/RulesEngineProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"type": {
"enum": [
"Microsoft.Network/frontDoors/rulesEngines"
],
"type": "string"
}
},
"required": [
"name",
"properties",
"apiVersion",
"type"
],
"type": "object"
}
},
"definitions": {
"Backend": {
"description": "Backend address of a frontDoor load balancer.",
"properties": {
"address": {
"description": "Location of the backend (IP address or FQDN)",
"type": "string"
},
"backendHostHeader": {
"description": "The value to use as the host header sent to the backend. If blank or unspecified, this defaults to the incoming host.",
"type": "string"
},
"enabledState": {
"description": "Whether to enable use of this backend. Permitted values are 'Enabled' or 'Disabled'",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"httpPort": {
"description": "The HTTP TCP port number. Must be between 1 and 65535.",
"oneOf": [
{
"maximum": 65535,
"minimum": 1,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"httpsPort": {
"description": "The HTTPS TCP port number. Must be between 1 and 65535.",
"oneOf": [
{
"maximum": 65535,
"minimum": 1,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"priority": {
"description": "Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy.",
"oneOf": [
{
"maximum": 5,
"minimum": 1,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"privateLinkAlias": {
"description": "The Alias of the Private Link resource. Populating this optional field indicates that this backend is 'Private'",
"type": "string"
},
"privateLinkApprovalMessage": {
"description": "A custom message to be included in the approval request to connect to the Private Link",
"type": "string"
},
"privateLinkLocation": {
"description": "The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated",
"type": "string"
},
"privateLinkResourceId": {
"description": "The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private'",
"type": "string"
},
"weight": {
"description": "Weight of this endpoint for load balancing purposes.",
"oneOf": [
{
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"BackendPool": {
"description": "A backend pool is a collection of backends that can be routed to.",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
},
"name": {
"description": "Resource name.",
"type": "string"
},
"properties": {
"description": "Properties of the Front Door Backend Pool",
"oneOf": [
{
"$ref": "#/definitions/BackendPoolProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"BackendPoolProperties": {
"description": "The JSON object that contains the properties required to create a Backend Pool.",
"properties": {
"backends": {
"description": "The set of backends for this pool",
"oneOf": [
{
"items": {
"$ref": "#/definitions/Backend"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"healthProbeSettings": {
"description": "L7 health probe settings for a backend pool",
"oneOf": [
{
"$ref": "#/definitions/SubResource"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"loadBalancingSettings": {
"description": "Load balancing settings for a backend pool",
"oneOf": [
{
"$ref": "#/definitions/SubResource"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"BackendPoolsSettings": {
"description": "Settings that apply to all backend pools.",
"properties": {
"enforceCertificateNameCheck": {
"description": "Whether to enforce certificate name check on HTTPS requests to all backend pools. No effect on non-HTTPS requests.",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"sendRecvTimeoutSeconds": {
"description": "Send and receive timeout on forwarding request to the backend. When timeout is reached, the request fails and returns.",
"oneOf": [
{
"minimum": 16,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"CacheConfiguration": {
"description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object.",
"properties": {
"cacheDuration": {
"description": "The duration for which the content needs to be cached. Allowed format is in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations). HTTP requires the value to be no more than a year",
"type": "string"
},
"dynamicCompression": {
"description": "Whether to use dynamic compression for cached content",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"queryParameterStripDirective": {
"description": "Treatment of URL query terms when forming the cache key.",
"oneOf": [
{
"enum": [
"StripNone",
"StripAll",
"StripOnly",
"StripAllExcept"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"queryParameters": {
"description": "query parameters to include or exclude (comma separated).",
"type": "string"
}
},
"type": "object"
},
"CustomRule": {
"description": "Defines contents of a web application rule",
"properties": {
"action": {
"description": "Describes what action to be applied when rule matches.",
"oneOf": [
{
"enum": [
"Allow",
"Block",
"Log",
"Redirect"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"enabledState": {
"description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified.",
"oneOf": [
{
"enum": [
"Disabled",
"Enabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"matchConditions": {
"description": "List of match conditions.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/MatchCondition"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"name": {
"description": "Describes the name of the rule.",
"maxLength": 128,
"type": "string"
},
"priority": {
"description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value.",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rateLimitDurationInMinutes": {
"description": "Time window for resetting the rate limit count. Default is 1 minute.",
"oneOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rateLimitThreshold": {
"description": "Number of allowed requests per client within the time window.",
"oneOf": [
{
"minimum": 0,
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleType": {
"description": "Describes type of rule.",
"oneOf": [
{
"enum": [
"MatchRule",
"RateLimitRule"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"priority",
"ruleType",
"matchConditions",
"action"
],
"type": "object"
},
"CustomRuleList": {
"description": "Defines contents of custom rules",
"properties": {
"rules": {
"description": "List of rules",
"oneOf": [
{
"items": {
"$ref": "#/definitions/CustomRule"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"FrontDoorProperties": {
"description": "The JSON object that contains the properties required to create an endpoint.",
"properties": {
"backendPools": {
"description": "Backend pools available to routing rules.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/BackendPool"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"backendPoolsSettings": {
"description": "Settings for all backendPools",
"oneOf": [
{
"$ref": "#/definitions/BackendPoolsSettings"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"enabledState": {
"description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"friendlyName": {
"description": "A friendly name for the frontDoor",
"type": "string"
},
"frontendEndpoints": {
"description": "Frontend endpoints available to routing rules.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/FrontendEndpoint"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"healthProbeSettings": {
"description": "Health probe settings associated with this Front Door instance.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/HealthProbeSettingsModel"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"loadBalancingSettings": {
"description": "Load balancing settings associated with this Front Door instance.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/LoadBalancingSettingsModel"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"routingRules": {
"description": "Routing rules associated with this Front Door.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/RoutingRule"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"FrontendEndpoint": {
"description": "A frontend endpoint used for routing.",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
},
"name": {
"description": "Resource name.",
"type": "string"
},
"properties": {
"description": "Properties of the Frontend endpoint",
"oneOf": [
{
"$ref": "#/definitions/FrontendEndpointProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"FrontendEndpointProperties": {
"description": "The JSON object that contains the properties required to create a frontend endpoint.",
"properties": {
"hostName": {
"description": "The host name of the frontendEndpoint. Must be a domain name.",
"type": "string"
},
"sessionAffinityEnabledState": {
"description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"sessionAffinityTtlSeconds": {
"description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable.",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"webApplicationFirewallPolicyLink": {
"description": "Defines the Web Application Firewall policy for each host (if applicable)",
"oneOf": [
{
"$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": {
"description": "Defines the Web Application Firewall policy for each host (if applicable)",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
}
},
"type": "object"
},
"HeaderAction": {
"description": "An action that can manipulate an http header.",
"properties": {
"headerActionType": {
"description": "Which type of manipulation to apply to the header.",
"oneOf": [
{
"enum": [
"Append",
"Delete",
"Overwrite"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"headerName": {
"description": "The name of the header this action will apply to.",
"type": "string"
},
"value": {
"description": "The value to update the given header name with. This value is not used if the actionType is Delete.",
"type": "string"
}
},
"required": [
"headerActionType",
"headerName"
],
"type": "object"
},
"HealthProbeSettingsModel": {
"description": "Load balancing settings for a backend pool",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
},
"name": {
"description": "Resource name.",
"type": "string"
},
"properties": {
"description": "Properties of the health probe settings",
"oneOf": [
{
"$ref": "#/definitions/HealthProbeSettingsProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"HealthProbeSettingsProperties": {
"description": "The JSON object that contains the properties required to create a health probe settings.",
"properties": {
"enabledState": {
"description": "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.",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"healthProbeMethod": {
"description": "Configures which HTTP method to use to probe the backends defined under backendPools.",
"oneOf": [
{
"enum": [
"GET",
"HEAD"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"intervalInSeconds": {
"description": "The number of seconds between health probes.",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"path": {
"description": "The path to use for the health probe. Default is /",
"type": "string"
},
"protocol": {
"description": "Protocol scheme to use for this probe",
"oneOf": [
{
"enum": [
"Http",
"Https"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"LoadBalancingSettingsModel": {
"description": "Load balancing settings for a backend pool",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
},
"name": {
"description": "Resource name.",
"type": "string"
},
"properties": {
"description": "Properties of the load balancing settings",
"oneOf": [
{
"$ref": "#/definitions/LoadBalancingSettingsProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"LoadBalancingSettingsProperties": {
"description": "The JSON object that contains the properties required to create load balancing settings",
"properties": {
"additionalLatencyMilliseconds": {
"description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"sampleSize": {
"description": "The number of samples to consider for load balancing decisions",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"successfulSamplesRequired": {
"description": "The number of samples within the sample period that must succeed",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"ManagedRuleExclusion": {
"description": "Exclude variables from managed rule evaluation.",
"properties": {
"matchVariable": {
"description": "The variable type to be excluded.",
"oneOf": [
{
"enum": [
"RequestHeaderNames",
"RequestCookieNames",
"QueryStringArgNames",
"RequestBodyPostArgNames",
"RequestBodyJsonArgNames"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"selector": {
"description": "Selector value for which elements in the collection this exclusion applies to.",
"type": "string"
},
"selectorMatchOperator": {
"description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to.",
"oneOf": [
{
"enum": [
"Equals",
"Contains",
"StartsWith",
"EndsWith",
"EqualsAny"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"matchVariable",
"selectorMatchOperator",
"selector"
],
"type": "object"
},
"ManagedRuleGroupOverride": {
"description": "Defines a managed rule group override setting.",
"properties": {
"exclusions": {
"description": "Describes the exclusions that are applied to all rules in the group.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleExclusion"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleGroupName": {
"description": "Describes the managed rule group to override.",
"type": "string"
},
"rules": {
"description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleOverride"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"ruleGroupName"
],
"type": "object"
},
"ManagedRuleOverride": {
"description": "Defines a managed rule group override setting.",
"properties": {
"action": {
"description": "Describes the override action to be applied when rule matches.",
"oneOf": [
{
"enum": [
"Allow",
"Block",
"Log",
"Redirect"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"enabledState": {
"description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified.",
"oneOf": [
{
"enum": [
"Disabled",
"Enabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"exclusions": {
"description": "Describes the exclusions that are applied to this specific rule.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleExclusion"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleId": {
"description": "Identifier for the managed rule.",
"type": "string"
}
},
"required": [
"ruleId"
],
"type": "object"
},
"ManagedRuleSet": {
"description": "Defines a managed rule set.",
"properties": {
"exclusions": {
"description": "Describes the exclusions that are applied to all rules in the set.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleExclusion"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleGroupOverrides": {
"description": "Defines the rule group overrides to apply to the rule set.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleGroupOverride"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleSetAction": {
"description": "Defines the action to take when a managed rule set score threshold is met.",
"oneOf": [
{
"enum": [
"Block",
"Log",
"Redirect"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"ruleSetType": {
"description": "Defines the rule set type to use.",
"type": "string"
},
"ruleSetVersion": {
"description": "Defines the version of the rule set to use.",
"type": "string"
}
},
"required": [
"ruleSetType",
"ruleSetVersion"
],
"type": "object"
},
"ManagedRuleSetList": {
"description": "Defines the list of managed rule sets for the policy.",
"properties": {
"managedRuleSets": {
"description": "List of rule sets.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/ManagedRuleSet"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"MatchCondition": {
"description": "Define a match condition.",
"properties": {
"matchValue": {
"description": "List of possible match values.",
"oneOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"matchVariable": {
"description": "Request variable to compare with.",
"oneOf": [
{
"enum": [
"RemoteAddr",
"RequestMethod",
"QueryString",
"PostArgs",
"RequestUri",
"RequestHeader",
"RequestBody",
"Cookies",
"SocketAddr"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"negateCondition": {
"description": "Describes if the result of this condition should be negated.",
"oneOf": [
{
"type": "boolean"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"operator": {
"description": "Comparison type to use for matching with the variable value.",
"oneOf": [
{
"enum": [
"Any",
"IPMatch",
"GeoMatch",
"Equal",
"Contains",
"LessThan",
"GreaterThan",
"LessThanOrEqual",
"GreaterThanOrEqual",
"BeginsWith",
"EndsWith",
"RegEx"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"selector": {
"description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null.",
"type": "string"
},
"transforms": {
"description": "List of transforms.",
"oneOf": [
{
"items": {
"enum": [
"Lowercase",
"Uppercase",
"Trim",
"UrlDecode",
"UrlEncode",
"RemoveNulls"
],
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"matchVariable",
"operator",
"matchValue"
],
"type": "object"
},
"PolicySettings": {
"description": "Defines top-level WebApplicationFirewallPolicy configuration settings.",
"properties": {
"customBlockResponseBody": {
"description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding.",
"oneOf": [
{
"pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$",
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"customBlockResponseStatusCode": {
"description": "If the action type is block, customer can override the response status code.",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"enabledState": {
"description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified.",
"oneOf": [
{
"enum": [
"Disabled",
"Enabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"mode": {
"description": "Describes if it is in detection mode or prevention mode at policy level.",
"oneOf": [
{
"enum": [
"Prevention",
"Detection"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"redirectUrl": {
"description": "If action type is redirect, this field represents redirect URL for the client.",
"type": "string"
},
"requestBodyCheck": {
"description": "Describes if policy managed rules will inspect the request body content.",
"oneOf": [
{
"enum": [
"Disabled",
"Enabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"RouteConfiguration": {
"description": "Base class for all types of Route.",
"oneOf": [
{
"description": "Describes Forwarding Route.",
"properties": {
"@odata.type": {
"enum": [
"#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration"
],
"type": "string"
},
"backendPool": {
"description": "A reference to the BackendPool which this rule routes to.",
"oneOf": [
{
"$ref": "#/definitions/SubResource"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"cacheConfiguration": {
"description": "The caching configuration associated with this rule.",
"oneOf": [
{
"$ref": "#/definitions/CacheConfiguration"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"customForwardingPath": {
"description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path.",
"type": "string"
},
"forwardingProtocol": {
"description": "Protocol this rule will use when forwarding traffic to backends.",
"oneOf": [
{
"enum": [
"HttpOnly",
"HttpsOnly",
"MatchRequest"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"@odata.type"
],
"type": "object"
},
{
"description": "Describes Redirect Route.",
"properties": {
"@odata.type": {
"enum": [
"#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration"
],
"type": "string"
},
"customFragment": {
"description": "Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #.",
"type": "string"
},
"customHost": {
"description": "Host to redirect. Leave empty to use the incoming host as the destination host.",
"type": "string"
},
"customPath": {
"description": "The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path.",
"type": "string"
},
"customQueryString": {
"description": "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 <key>=<value> format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &.",
"type": "string"
},
"redirectProtocol": {
"description": "The protocol of the destination to where the traffic is redirected",
"oneOf": [
{
"enum": [
"HttpOnly",
"HttpsOnly",
"MatchRequest"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"redirectType": {
"description": "The redirect type the rule will use when redirecting traffic.",
"oneOf": [
{
"enum": [
"Moved",
"Found",
"TemporaryRedirect",
"PermanentRedirect"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"@odata.type"
],
"type": "object"
}
],
"properties": {},
"type": "object"
},
"RoutingRule": {
"description": "A routing rule represents a specification for traffic to treat and where to send it, along with health probe information.",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
},
"name": {
"description": "Resource name.",
"type": "string"
},
"properties": {
"description": "Properties of the Front Door Routing Rule",
"oneOf": [
{
"$ref": "#/definitions/RoutingRuleProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"RoutingRuleProperties": {
"description": "The JSON object that contains the properties required to create a routing rule.",
"properties": {
"acceptedProtocols": {
"description": "Protocol schemes to match for this rule",
"oneOf": [
{
"items": {
"enum": [
"Http",
"Https"
],
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"enabledState": {
"description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'",
"oneOf": [
{
"enum": [
"Enabled",
"Disabled"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"frontendEndpoints": {
"description": "Frontend endpoints associated with this rule",
"oneOf": [
{
"items": {
"$ref": "#/definitions/SubResource"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"patternsToMatch": {
"description": "The route patterns of the rule.",
"oneOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"routeConfiguration": {
"description": "A reference to the routing configuration.",
"oneOf": [
{
"$ref": "#/definitions/RouteConfiguration"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rulesEngine": {
"description": "A reference to a specific Rules Engine Configuration to apply to this route.",
"oneOf": [
{
"$ref": "#/definitions/SubResource"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"webApplicationFirewallPolicyLink": {
"description": "Defines the Web Application Firewall policy for each routing rule (if applicable)",
"oneOf": [
{
"$ref": "#/definitions/RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink": {
"description": "Defines the Web Application Firewall policy for each routing rule (if applicable)",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
}
},
"type": "object"
},
"RulesEngineAction": {
"description": "One or more actions that will execute, modifying the request and/or response.",
"properties": {
"requestHeaderActions": {
"description": "A list of header actions to apply from the request from AFD to the origin.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/HeaderAction"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"responseHeaderActions": {
"description": "A list of header actions to apply from the response from AFD to the client.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/HeaderAction"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"routeConfigurationOverride": {
"description": "Override the route configuration.",
"oneOf": [
{
"$ref": "#/definitions/RouteConfiguration"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"RulesEngineMatchCondition": {
"description": "Define a match condition",
"properties": {
"negateCondition": {
"description": "Describes if this is negate condition or not",
"oneOf": [
{
"type": "boolean"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rulesEngineMatchValue": {
"description": "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.",
"oneOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rulesEngineMatchVariable": {
"description": "Match Variable",
"oneOf": [
{
"enum": [
"IsMobile",
"RemoteAddr",
"RequestMethod",
"QueryString",
"PostArgs",
"RequestUri",
"RequestPath",
"RequestFilename",
"RequestFilenameExtension",
"RequestHeader",
"RequestBody",
"RequestScheme"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"rulesEngineOperator": {
"description": "Describes operator to apply to the match condition.",
"oneOf": [
{
"enum": [
"Any",
"IPMatch",
"GeoMatch",
"Equal",
"Contains",
"LessThan",
"GreaterThan",
"LessThanOrEqual",
"GreaterThanOrEqual",
"BeginsWith",
"EndsWith"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"selector": {
"description": "Name of selector in RequestHeader or RequestBody to be matched",
"type": "string"
},
"transforms": {
"description": "List of transforms",
"oneOf": [
{
"items": {
"enum": [
"Lowercase",
"Uppercase",
"Trim",
"UrlDecode",
"UrlEncode",
"RemoveNulls"
],
"type": "string"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"rulesEngineMatchVariable",
"rulesEngineOperator",
"rulesEngineMatchValue"
],
"type": "object"
},
"RulesEngineProperties": {
"description": "The JSON object that contains the properties required to create a Rules Engine Configuration.",
"properties": {
"rules": {
"description": "A list of rules that define a particular Rules Engine Configuration.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/RulesEngineRule"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"RulesEngineRule": {
"description": "Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation.",
"properties": {
"action": {
"description": "Actions to perform on the request and response if all of the match conditions are met.",
"oneOf": [
{
"$ref": "#/definitions/RulesEngineAction"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"matchConditions": {
"description": "A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run.",
"oneOf": [
{
"items": {
"$ref": "#/definitions/RulesEngineMatchCondition"
},
"type": "array"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"matchProcessingBehavior": {
"description": "If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue.",
"oneOf": [
{
"enum": [
"Continue",
"Stop"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"name": {
"description": "A name to refer to this specific rule.",
"type": "string"
},
"priority": {
"description": "A priority assigned to this rule. ",
"oneOf": [
{
"type": "integer"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"required": [
"name",
"priority",
"action"
],
"type": "object"
},
"Sku": {
"description": "The pricing tier of the web application firewall policy.",
"properties": {
"name": {
"description": "Name of the pricing tier.",
"oneOf": [
{
"enum": [
"Classic_AzureFrontDoor",
"Standard_AzureFrontDoor",
"Premium_AzureFrontDoor"
],
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"SubResource": {
"description": "Reference to another subresource.",
"properties": {
"id": {
"description": "Resource ID.",
"type": "string"
}
},
"type": "object"
},
"WebApplicationFirewallPolicyProperties": {
"description": "Defines web application firewall policy properties.",
"properties": {
"customRules": {
"description": "Describes custom rules inside the policy.",
"oneOf": [
{
"$ref": "#/definitions/CustomRuleList"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"managedRules": {
"description": "Describes managed rules inside the policy.",
"oneOf": [
{
"$ref": "#/definitions/ManagedRuleSetList"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"policySettings": {
"description": "Describes settings for the policy.",
"oneOf": [
{
"$ref": "#/definitions/PolicySettings"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
}
},
"type": "object"
},
"frontDoors_rulesEngines_childResource": {
"description": "Microsoft.Network/frontDoors/rulesEngines",
"properties": {
"apiVersion": {
"enum": [
"2021-06-01"
],
"type": "string"
},
"name": {
"description": "Name of the Rules Engine which is unique within the Front Door.",
"oneOf": [
{
"maxLength": 90,
"minLength": 1,
"pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
"type": "string"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"properties": {
"description": "Properties of the Rules Engine Configuration.",
"oneOf": [
{
"$ref": "#/definitions/RulesEngineProperties"
},
{
"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
}
]
},
"type": {
"enum": [
"rulesEngines"
],
"type": "string"
}
},
"required": [
"name",
"properties",
"apiVersion",
"type"
],
"type": "object"
}
}
}