diff --git a/schemas/2018-02-01/Microsoft.Network.FrontDoor.json b/schemas/2018-02-01/Microsoft.Network.FrontDoor.json new file mode 100644 index 0000000000..a5067b0316 --- /dev/null +++ b/schemas/2018-02-01/Microsoft.Network.FrontDoor.json @@ -0,0 +1,1955 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-02-01/Microsoft.Network.FrontDoor.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Network", + "description": "Microsoft Network Resource Types", + "resourceDefinitions": { + "frontDoors": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-02-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$", + "minLength": 5, + "maxLength": 64 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Name of the Front Door which is globally unique." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontDoorProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create an endpoint." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/frontDoors" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/frontDoors" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-02-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the Web Application Firewall Policy." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + }, + "NetworkExperimentProfiles": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-02-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Profile identifier associated with the Tenant and Partner" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProfileProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkExperimentProfiles_Experiments_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles" + }, + "NetworkExperimentProfiles_Experiments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-02-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles/Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" + } + }, + "definitions": { + "Backend": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Location of the backend (IP address or FQDN)" + }, + "backendHostHeader": { + "type": "string", + "description": "The value to use as the host header sent to the backend. If blank or unspecified, this defaults to the incoming host." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to enable use of this backend. Permitted values are 'Enabled' or 'Disabled'." + }, + "httpPort": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The HTTP TCP port number. Must be between 1 and 65535." + }, + "httpsPort": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The HTTPS TCP port number. Must be between 1 and 65535." + }, + "priority": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy." + }, + "weight": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 1000 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weight of this endpoint for load balancing purposes." + } + }, + "description": "Backend address of a frontDoor load balancer." + }, + "BackendPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackendPoolProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a routing rule." + } + }, + "description": "A backend pool is a collection of backends that can be routed to." + }, + "BackendPoolProperties": { + "type": "object", + "properties": { + "backends": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Backend" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The set of backends for this pool" + }, + "healthProbeSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "loadBalancingSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a routing rule." + }, + "BackendPoolsSettings": { + "type": "object", + "properties": { + "enforceCertificateNameCheck": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to enforce certificate name check on HTTPS requests to all backend pools. No effect on non-HTTPS requests." + }, + "sendRecvTimeoutSeconds": { + "oneOf": [ + { + "type": "integer", + "minimum": 16 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Send and receive timeout on forwarding request to the backend. When timeout is reached, the request fails and returns." + } + }, + "description": "Settings that apply to all backend pools." + }, + "CacheConfiguration": { + "type": "object", + "properties": { + "dynamicCompression": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to use dynamic compression for cached content." + }, + "queryParameterStripDirective": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StripNone", + "StripAll" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Treatment of URL query terms when forming the cache key." + } + }, + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "CustomRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes what action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "matchConditions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of match conditions." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "Describes the name of the rule." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value." + }, + "rateLimitDurationInMinutes": { + "oneOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 5 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Time window for resetting the rate limit count. Default is 1 minute." + }, + "rateLimitThreshold": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of allowed requests per client within the time window." + }, + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MatchRule", + "RateLimitRule" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes type of rule." + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRuleList": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, + "Endpoint": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint URL" + }, + "name": { + "type": "string", + "description": "The name of the endpoint" + } + }, + "description": "Defines the endpoint properties" + }, + "ExperimentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the details or intents of the Experiment" + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "endpointA": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "endpointB": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, + "ForwardingConfiguration": { + "type": "object", + "properties": { + "@odata.type": { + "type": "string", + "enum": [ + "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" + ] + }, + "backendPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "cacheConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/CacheConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "customForwardingPath": { + "type": "string", + "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + }, + "forwardingProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "HttpOnly", + "HttpsOnly", + "MatchRequest" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol this rule will use when forwarding traffic to backends." + } + }, + "required": [ + "@odata.type" + ], + "description": "Describes Forwarding Route." + }, + "FrontDoorProperties": { + "type": "object", + "properties": { + "backendPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendPool" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backend pools available to routing rules." + }, + "backendPoolsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/BackendPoolsSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings that apply to all backend pools." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." + }, + "friendlyName": { + "type": "string", + "description": "A friendly name for the frontDoor" + }, + "frontendEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendEndpoint" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frontend endpoints available to routing rules." + }, + "healthProbeSettings": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/HealthProbeSettingsModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health probe settings associated with this Front Door instance." + }, + "loadBalancingSettings": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingSettingsModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Load balancing settings associated with this Front Door instance." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status of the Front Door." + }, + "routingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/RoutingRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Routing rules associated with this Front Door." + } + }, + "description": "The JSON object that contains the properties required to create an endpoint." + }, + "FrontendEndpoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a frontend endpoint." + } + }, + "description": "A frontend endpoint used for routing." + }, + "FrontendEndpointProperties": { + "type": "object", + "properties": { + "hostName": { + "type": "string", + "description": "The host name of the frontendEndpoint. Must be a domain name." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sessionAffinityEnabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + }, + "sessionAffinityTtlSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + }, + "webApplicationFirewallPolicyLink": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + } + }, + "description": "The JSON object that contains the properties required to create a frontend endpoint." + }, + "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + }, + "HealthProbeSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/HealthProbeSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a health probe settings." + } + }, + "description": "Load balancing settings for a backend pool" + }, + "HealthProbeSettingsProperties": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "healthProbeMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GET", + "HEAD" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configures which HTTP method to use to probe the backends defined under backendPools." + }, + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of seconds between health probes." + }, + "path": { + "type": "string", + "description": "The path to use for the health probe. Default is /" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol scheme to use for this probe." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a health probe settings." + }, + "LoadBalancingSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create load balancing settings" + } + }, + "description": "Load balancing settings for a backend pool" + }, + "LoadBalancingSettingsProperties": { + "type": "object", + "properties": { + "additionalLatencyMilliseconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sampleSize": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples to consider for load balancing decisions" + }, + "successfulSamplesRequired": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples within the sample period that must succeed" + } + }, + "description": "The JSON object that contains the properties required to create load balancing settings" + }, + "ManagedRuleExclusion": { + "type": "object", + "properties": { + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RequestHeaderNames", + "RequestCookieNames", + "QueryStringArgNames", + "RequestBodyPostArgNames" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The variable type to be excluded." + }, + "selector": { + "type": "string", + "description": "Selector value for which elements in the collection this exclusion applies to." + }, + "selectorMatchOperator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Equals", + "Contains", + "StartsWith", + "EndsWith", + "EqualsAny" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to." + } + }, + "required": [ + "matchVariable", + "selector", + "selectorMatchOperator" + ], + "description": "Exclude variables from managed rule evaluation." + }, + "ManagedRuleGroupOverride": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the group." + }, + "ruleGroupName": { + "type": "string", + "description": "Describes the managed rule group to override." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled." + } + }, + "required": [ + "ruleGroupName" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleOverride": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the override action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified." + }, + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to this specific rule." + }, + "ruleId": { + "type": "string", + "description": "Identifier for the managed rule." + } + }, + "required": [ + "ruleId" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleSet": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the set." + }, + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleGroupOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the rule group overrides to apply to the rule set." + }, + "ruleSetType": { + "type": "string", + "description": "Defines the rule set type to use." + }, + "ruleSetVersion": { + "type": "string", + "description": "Defines the version of the rule set to use." + } + }, + "required": [ + "ruleSetType", + "ruleSetVersion" + ], + "description": "Defines a managed rule set." + }, + "ManagedRuleSetList": { + "type": "object", + "properties": { + "managedRuleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rule sets." + } + }, + "description": "Defines the list of managed rule sets for the policy." + }, + "MatchCondition": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible match values." + }, + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody", + "Cookies", + "SocketAddr" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Request variable to compare with." + }, + "negateCondition": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the result of this condition should be negated." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "RegEx" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison type to use for matching with the variable value." + }, + "selector": { + "type": "string", + "description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null." + }, + "transforms": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of transforms." + } + }, + "required": [ + "matchValue", + "matchVariable", + "operator" + ], + "description": "Define a match condition." + }, + "NetworkExperimentProfiles_Experiments_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-02-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" + }, + "PolicySettings": { + "type": "object", + "properties": { + "customBlockResponseBody": { + "oneOf": [ + { + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding." + }, + "customBlockResponseStatusCode": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response status code." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if it is in detection mode or prevention mode at policy level." + }, + "redirectUrl": { + "type": "string", + "description": "If action type is redirect, this field represents redirect URL for the client." + } + }, + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + }, + "ProfileProperties": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, + "RedirectConfiguration": { + "type": "object", + "properties": { + "@odata.type": { + "type": "string", + "enum": [ + "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration" + ] + }, + "customFragment": { + "type": "string", + "description": "Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #." + }, + "customHost": { + "type": "string", + "description": "Host to redirect. Leave empty to use the incoming host as the destination host." + }, + "customPath": { + "type": "string", + "description": "The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path." + }, + "customQueryString": { + "type": "string", + "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 = format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &." + }, + "redirectProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "HttpOnly", + "HttpsOnly", + "MatchRequest" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The protocol of the destination to where the traffic is redirected." + }, + "redirectType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Moved", + "Found", + "TemporaryRedirect", + "PermanentRedirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The redirect type the rule will use when redirecting traffic." + } + }, + "required": [ + "@odata.type" + ], + "description": "Describes Redirect Route." + }, + "RouteConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/ForwardingConfiguration" + }, + { + "$ref": "#/definitions/RedirectConfiguration" + } + ], + "properties": {}, + "description": "Base class for all types of Route." + }, + "RoutingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutingRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a routing rule." + } + }, + "description": "A routing rule represents a specification for traffic to treat and where to send it, along with health probe information." + }, + "RoutingRuleProperties": { + "type": "object", + "properties": { + "acceptedProtocols": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Http", + "Https" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol schemes to match for this rule" + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'." + }, + "frontendEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frontend endpoints associated with this rule" + }, + "patternsToMatch": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The route patterns of the rule." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "routeConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/RouteConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Base class for all types of Route." + } + }, + "description": "The JSON object that contains the properties required to create a routing rule." + }, + "SubResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyProperties": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRuleList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSetList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the list of managed rule sets for the policy." + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + } + }, + "description": "Defines web application firewall policy properties." + } + } +} \ No newline at end of file diff --git a/schemas/2018-08-01/Microsoft.Network.FrontDoor.json b/schemas/2018-08-01/Microsoft.Network.FrontDoor.json new file mode 100644 index 0000000000..b3e04e25f6 --- /dev/null +++ b/schemas/2018-08-01/Microsoft.Network.FrontDoor.json @@ -0,0 +1,1305 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-08-01/Microsoft.Network.FrontDoor.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Network", + "description": "Microsoft Network Resource Types", + "resourceDefinitions": { + "frontDoors": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$", + "minLength": 5, + "maxLength": 64 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Name of the Front Door which is globally unique." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontDoorProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create an endpoint." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/frontDoors" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/frontDoors" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the resource group." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyPropertiesFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + } + }, + "definitions": { + "AzureManagedOverrideRuleGroup": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of Actions." + }, + "ruleGroupOverride": { + "oneOf": [ + { + "type": "string", + "enum": [ + "SqlInjection", + "XSS" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes override rule group." + } + }, + "required": [ + "action", + "ruleGroupOverride" + ], + "description": "Defines contents of a web application rule" + }, + "AzureManagedRuleSet": { + "type": "object", + "properties": { + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AzureManagedOverrideRuleGroup" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of azure managed provider override configuration (optional)" + }, + "ruleSetType": { + "type": "string", + "enum": [ + "AzureManagedRuleSet" + ] + } + }, + "required": [ + "ruleSetType" + ], + "description": "Describes azure managed provider." + }, + "Backend": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Location of the backend (IP address or FQDN)" + }, + "backendHostHeader": { + "type": "string", + "description": "The value to use as the host header sent to the backend. If blank or unspecified, this defaults to the incoming host." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to enable use of this backend. Permitted values are 'Enabled' or 'Disabled'." + }, + "httpPort": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The HTTP TCP port number. Must be between 1 and 65535." + }, + "httpsPort": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The HTTPS TCP port number. Must be between 1 and 65535." + }, + "priority": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy." + }, + "weight": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 1000 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weight of this endpoint for load balancing purposes." + } + }, + "description": "Backend address of a frontDoor load balancer." + }, + "BackendPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackendPoolProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a routing rule." + } + }, + "description": "A backend pool is a collection of backends that can be routed to." + }, + "BackendPoolProperties": { + "type": "object", + "properties": { + "backends": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Backend" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The set of backends for this pool" + }, + "healthProbeSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "loadBalancingSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a routing rule." + }, + "CacheConfiguration": { + "type": "object", + "properties": { + "dynamicCompression": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to use dynamic compression for cached content." + }, + "queryParameterStripDirective": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StripNone", + "StripAll" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Treatment of URL query terms when forming the cache key." + } + }, + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "CustomRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of Actions." + }, + "matchConditions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition1" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of match conditions" + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "Gets name of the resource that is unique within a policy. This name can be used to access the resource." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value" + }, + "rateLimitDurationInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines rate limit duration. Default - 1 minute" + }, + "rateLimitThreshold": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines rate limit threshold" + }, + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MatchRule", + "RateLimitRule" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes type of rule." + }, + "transforms": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls", + "HtmlEntityDecode" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of transforms" + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRules": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, + "FrontDoorProperties": { + "type": "object", + "properties": { + "backendPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendPool" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backend pools available to routing rules." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." + }, + "friendlyName": { + "type": "string", + "description": "A friendly name for the frontDoor" + }, + "frontendEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendEndpoint" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frontend endpoints available to routing rules." + }, + "healthProbeSettings": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/HealthProbeSettingsModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Health probe settings associated with this Front Door instance." + }, + "loadBalancingSettings": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingSettingsModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Load balancing settings associated with this Front Door instance." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status of the Front Door." + }, + "routingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/RoutingRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Routing rules associated with this Front Door." + } + }, + "description": "The JSON object that contains the properties required to create an endpoint." + }, + "FrontendEndpoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a frontend endpoint." + } + }, + "description": "A frontend endpoint used for routing." + }, + "FrontendEndpointProperties": { + "type": "object", + "properties": { + "hostName": { + "type": "string", + "description": "The host name of the frontendEndpoint. Must be a domain name." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sessionAffinityEnabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + }, + "sessionAffinityTtlSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + }, + "webApplicationFirewallPolicyLink": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + } + }, + "description": "The JSON object that contains the properties required to create a frontend endpoint." + }, + "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + }, + "HealthProbeSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/HealthProbeSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a health probe settings." + } + }, + "description": "Load balancing settings for a backend pool" + }, + "HealthProbeSettingsProperties": { + "type": "object", + "properties": { + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of seconds between health probes." + }, + "path": { + "type": "string", + "description": "The path to use for the health probe. Default is /" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol scheme to use for this probe." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a health probe settings." + }, + "LoadBalancingSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create load balancing settings" + } + }, + "description": "Load balancing settings for a backend pool" + }, + "LoadBalancingSettingsProperties": { + "type": "object", + "properties": { + "additionalLatencyMilliseconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sampleSize": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples to consider for load balancing decisions" + }, + "successfulSamplesRequired": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples within the sample period that must succeed" + } + }, + "description": "The JSON object that contains the properties required to create load balancing settings" + }, + "ManagedRuleSet": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/AzureManagedRuleSet" + } + ], + "properties": { + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes priority of the rule" + }, + "version": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "defines version of the rule set" + } + }, + "description": "Base class for all types of ManagedRuleSet." + }, + "ManagedRuleSets": { + "type": "object", + "properties": { + "ruleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines ManagedRuleSets - array of managedRuleSet" + }, + "MatchCondition1": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Match value" + }, + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Match Variable." + }, + "negateCondition": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if this is negate condition or not" + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes operator to be matched." + }, + "selector": { + "type": "string", + "description": "Name of selector in RequestHeader or RequestBody to be matched" + } + }, + "required": [ + "matchValue", + "matchVariable", + "operator" + ], + "description": "Define match conditions" + }, + "PolicySettings": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "describes if the policy is in enabled state or disabled state." + }, + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if it is in detection mode or prevention mode at policy level." + } + }, + "description": "Defines contents of a web application firewall global configuration" + }, + "RoutingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutingRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a routing rule." + } + }, + "description": "A routing rule represents a specification for traffic to treat and where to send it, along with health probe information." + }, + "RoutingRuleProperties": { + "type": "object", + "properties": { + "acceptedProtocols": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Http", + "Https" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol schemes to match for this rule" + }, + "backendPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "cacheConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/CacheConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "customForwardingPath": { + "type": "string", + "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'." + }, + "forwardingProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "HttpOnly", + "HttpsOnly", + "MatchRequest" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol this rule will use when forwarding traffic to backends." + }, + "frontendEndpoints": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Frontend endpoints associated with this rule" + }, + "patternsToMatch": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The route patterns of the rule." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a routing rule." + }, + "SubResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyPropertiesFormat": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRules" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSets" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines ManagedRuleSets - array of managedRuleSet" + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of a web application firewall global configuration" + } + }, + "description": "Defines web application firewall policy properties" + } + } +} \ No newline at end of file diff --git a/schemas/2019-04-01/Microsoft.Network.FrontDoor.json b/schemas/2019-04-01/Microsoft.Network.FrontDoor.json index d6050c4e9c..8b84dc1dc4 100644 --- a/schemas/2019-04-01/Microsoft.Network.FrontDoor.json +++ b/schemas/2019-04-01/Microsoft.Network.FrontDoor.json @@ -71,6 +71,69 @@ "type" ], "description": "Microsoft.Network/frontDoors" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-04-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the Web Application Firewall Policy." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" } }, "definitions": { @@ -298,6 +361,140 @@ }, "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." }, + "CustomRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes what action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "matchConditions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of match conditions." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "Describes the name of the rule." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value." + }, + "rateLimitDurationInMinutes": { + "oneOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 5 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Time window for resetting the rate limit count. Default is 1 minute." + }, + "rateLimitThreshold": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of allowed requests per client within the time window." + }, + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MatchRule", + "RateLimitRule" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes type of rule." + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRuleList": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, "ForwardingConfiguration": { "type": "object", "properties": { @@ -744,6 +941,302 @@ }, "description": "The JSON object that contains the properties required to create load balancing settings" }, + "ManagedRuleGroupOverride": { + "type": "object", + "properties": { + "ruleGroupName": { + "type": "string", + "description": "Describes the managed rule group to override." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled." + } + }, + "required": [ + "ruleGroupName" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleOverride": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the override action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified." + }, + "ruleId": { + "type": "string", + "description": "Identifier for the managed rule." + } + }, + "required": [ + "ruleId" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleSet": { + "type": "object", + "properties": { + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleGroupOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the rule group overrides to apply to the rule set." + }, + "ruleSetType": { + "type": "string", + "description": "Defines the rule set type to use." + }, + "ruleSetVersion": { + "type": "string", + "description": "Defines the version of the rule set to use." + } + }, + "required": [ + "ruleSetType", + "ruleSetVersion" + ], + "description": "Defines a managed rule set." + }, + "ManagedRuleSetList": { + "type": "object", + "properties": { + "managedRuleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rule sets." + } + }, + "description": "Defines the list of managed rule sets for the policy." + }, + "MatchCondition": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible match values." + }, + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody", + "Cookies", + "SocketAddr" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Request variable to compare with." + }, + "negateCondition": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the result of this condition should be negated." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "RegEx" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison type to use for matching with the variable value." + }, + "selector": { + "type": "string", + "description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null." + }, + "transforms": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of transforms." + } + }, + "required": [ + "matchValue", + "matchVariable", + "operator" + ], + "description": "Define a match condition." + }, + "PolicySettings": { + "type": "object", + "properties": { + "customBlockResponseBody": { + "oneOf": [ + { + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding." + }, + "customBlockResponseStatusCode": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response status code." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if it is in detection mode or prevention mode at policy level." + }, + "redirectUrl": { + "type": "string", + "description": "If action type is redirect, this field represents redirect URL for the client." + } + }, + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + }, "RedirectConfiguration": { "type": "object", "properties": { @@ -952,6 +1445,45 @@ } }, "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyProperties": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRuleList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSetList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the list of managed rule sets for the policy." + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + } + }, + "description": "Defines web application firewall policy properties." } } } \ No newline at end of file diff --git a/schemas/2019-05-01/Microsoft.Network.FrontDoor.json b/schemas/2019-05-01/Microsoft.Network.FrontDoor.json index a8cc636db4..2dbe775d91 100644 --- a/schemas/2019-05-01/Microsoft.Network.FrontDoor.json +++ b/schemas/2019-05-01/Microsoft.Network.FrontDoor.json @@ -71,6 +71,69 @@ "type" ], "description": "Microsoft.Network/frontDoors" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-05-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the Web Application Firewall Policy." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" } }, "definitions": { @@ -310,6 +373,140 @@ }, "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." }, + "CustomRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes what action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "matchConditions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of match conditions." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "Describes the name of the rule." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value." + }, + "rateLimitDurationInMinutes": { + "oneOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 5 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Time window for resetting the rate limit count. Default is 1 minute." + }, + "rateLimitThreshold": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of allowed requests per client within the time window." + }, + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MatchRule", + "RateLimitRule" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes type of rule." + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRuleList": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, "ForwardingConfiguration": { "type": "object", "properties": { @@ -786,6 +983,302 @@ }, "description": "The JSON object that contains the properties required to create load balancing settings" }, + "ManagedRuleGroupOverride": { + "type": "object", + "properties": { + "ruleGroupName": { + "type": "string", + "description": "Describes the managed rule group to override." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled." + } + }, + "required": [ + "ruleGroupName" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleOverride": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the override action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified." + }, + "ruleId": { + "type": "string", + "description": "Identifier for the managed rule." + } + }, + "required": [ + "ruleId" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleSet": { + "type": "object", + "properties": { + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleGroupOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the rule group overrides to apply to the rule set." + }, + "ruleSetType": { + "type": "string", + "description": "Defines the rule set type to use." + }, + "ruleSetVersion": { + "type": "string", + "description": "Defines the version of the rule set to use." + } + }, + "required": [ + "ruleSetType", + "ruleSetVersion" + ], + "description": "Defines a managed rule set." + }, + "ManagedRuleSetList": { + "type": "object", + "properties": { + "managedRuleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rule sets." + } + }, + "description": "Defines the list of managed rule sets for the policy." + }, + "MatchCondition": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible match values." + }, + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody", + "Cookies", + "SocketAddr" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Request variable to compare with." + }, + "negateCondition": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the result of this condition should be negated." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "RegEx" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison type to use for matching with the variable value." + }, + "selector": { + "type": "string", + "description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null." + }, + "transforms": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of transforms." + } + }, + "required": [ + "matchValue", + "matchVariable", + "operator" + ], + "description": "Define a match condition." + }, + "PolicySettings": { + "type": "object", + "properties": { + "customBlockResponseBody": { + "oneOf": [ + { + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding." + }, + "customBlockResponseStatusCode": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If the action type is block, customer can override the response status code." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified." + }, + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if it is in detection mode or prevention mode at policy level." + }, + "redirectUrl": { + "type": "string", + "description": "If action type is redirect, this field represents redirect URL for the client." + } + }, + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + }, "RedirectConfiguration": { "type": "object", "properties": { @@ -994,6 +1487,45 @@ } }, "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyProperties": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRuleList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSetList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the list of managed rule sets for the policy." + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + } + }, + "description": "Defines web application firewall policy properties." } } } \ No newline at end of file diff --git a/schemas/2020-01-01/Microsoft.Network.FrontDoor.json b/schemas/2020-01-01/Microsoft.Network.FrontDoor.json index 443048efb7..a3500fbe87 100644 --- a/schemas/2020-01-01/Microsoft.Network.FrontDoor.json +++ b/schemas/2020-01-01/Microsoft.Network.FrontDoor.json @@ -130,6 +130,215 @@ "type" ], "description": "Microsoft.Network/frontDoors/rulesEngines" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the Web Application Firewall Policy." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + }, + "NetworkExperimentProfiles": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Profile identifier associated with the Tenant and Partner" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProfileProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkExperimentProfiles_Experiments_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles" + }, + "NetworkExperimentProfiles_Experiments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles/Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" } }, "definitions": { @@ -388,106 +597,320 @@ }, "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." }, - "ForwardingConfiguration": { + "CustomRule": { "type": "object", "properties": { - "@odata.type": { - "type": "string", - "enum": [ - "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" - ] + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes what action to be applied when rule matches." }, - "backendPool": { + "enabledState": { "oneOf": [ { - "$ref": "#/definitions/SubResource" + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Reference to another subresource." + "description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified." }, - "cacheConfiguration": { + "matchConditions": { "oneOf": [ { - "$ref": "#/definitions/CacheConfiguration" + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + "description": "List of match conditions." }, - "customForwardingPath": { + "name": { "type": "string", - "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + "maxLength": 128, + "description": "Describes the name of the rule." }, - "forwardingProtocol": { + "priority": { "oneOf": [ { - "type": "string", - "enum": [ - "HttpOnly", - "HttpsOnly", - "MatchRequest" - ] + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Protocol this rule will use when forwarding traffic to backends." - } - }, - "required": [ - "@odata.type" - ], - "description": "Describes Forwarding Route." - }, - "FrontDoorProperties": { - "type": "object", - "properties": { - "backendPools": { + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value." + }, + "rateLimitDurationInMinutes": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/BackendPool" - } + "type": "integer", + "minimum": 0, + "maximum": 5 }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Backend pools available to routing rules." + "description": "Time window for resetting the rate limit count. Default is 1 minute." }, - "backendPoolsSettings": { + "rateLimitThreshold": { "oneOf": [ { - "$ref": "#/definitions/BackendPoolsSettings" + "type": "integer", + "minimum": 0 }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Settings that apply to all backend pools." + "description": "Number of allowed requests per client within the time window." }, - "enabledState": { + "ruleType": { "oneOf": [ { "type": "string", "enum": [ - "Enabled", - "Disabled" + "MatchRule", + "RateLimitRule" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." - }, + "description": "Describes type of rule." + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRuleList": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, + "Endpoint": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint URL" + }, + "name": { + "type": "string", + "description": "The name of the endpoint" + } + }, + "description": "Defines the endpoint properties" + }, + "ExperimentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the details or intents of the Experiment" + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "endpointA": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "endpointB": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, + "ForwardingConfiguration": { + "type": "object", + "properties": { + "@odata.type": { + "type": "string", + "enum": [ + "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" + ] + }, + "backendPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "cacheConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/CacheConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "customForwardingPath": { + "type": "string", + "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + }, + "forwardingProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "HttpOnly", + "HttpsOnly", + "MatchRequest" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol this rule will use when forwarding traffic to backends." + } + }, + "required": [ + "@odata.type" + ], + "description": "Describes Forwarding Route." + }, + "FrontDoorProperties": { + "type": "object", + "properties": { + "backendPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendPool" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backend pools available to routing rules." + }, + "backendPoolsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/BackendPoolsSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings that apply to all backend pools." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." + }, "friendlyName": { "type": "string", "description": "A friendly name for the frontDoor" @@ -668,240 +1091,756 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource status." + "description": "Resource status." + }, + "sessionAffinityEnabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + }, + "sessionAffinityTtlSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + }, + "webApplicationFirewallPolicyLink": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + } + }, + "description": "The JSON object that contains the properties required to create a frontend endpoint." + }, + "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + }, + "HeaderAction": { + "type": "object", + "properties": { + "headerActionType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Append", + "Delete", + "Overwrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Which type of manipulation to apply to the header." + }, + "headerName": { + "type": "string", + "description": "The name of the header this action will apply to." + }, + "value": { + "type": "string", + "description": "The value to update the given header name with. This value is not used if the actionType is Delete." + } + }, + "required": [ + "headerActionType", + "headerName" + ], + "description": "An action that can manipulate an http header." + }, + "HealthProbeSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/HealthProbeSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a health probe settings." + } + }, + "description": "Load balancing settings for a backend pool" + }, + "HealthProbeSettingsProperties": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "healthProbeMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GET", + "HEAD" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configures which HTTP method to use to probe the backends defined under backendPools." + }, + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of seconds between health probes." + }, + "path": { + "type": "string", + "description": "The path to use for the health probe. Default is /" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol scheme to use for this probe." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a health probe settings." + }, + "LoadBalancingSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create load balancing settings" + } + }, + "description": "Load balancing settings for a backend pool" + }, + "LoadBalancingSettingsProperties": { + "type": "object", + "properties": { + "additionalLatencyMilliseconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sampleSize": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples to consider for load balancing decisions" + }, + "successfulSamplesRequired": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples within the sample period that must succeed" + } + }, + "description": "The JSON object that contains the properties required to create load balancing settings" + }, + "ManagedRuleExclusion": { + "type": "object", + "properties": { + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RequestHeaderNames", + "RequestCookieNames", + "QueryStringArgNames", + "RequestBodyPostArgNames" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The variable type to be excluded." + }, + "selector": { + "type": "string", + "description": "Selector value for which elements in the collection this exclusion applies to." + }, + "selectorMatchOperator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Equals", + "Contains", + "StartsWith", + "EndsWith", + "EqualsAny" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to." + } + }, + "required": [ + "matchVariable", + "selector", + "selectorMatchOperator" + ], + "description": "Exclude variables from managed rule evaluation." + }, + "ManagedRuleGroupOverride": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the group." + }, + "ruleGroupName": { + "type": "string", + "description": "Describes the managed rule group to override." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled." + } + }, + "required": [ + "ruleGroupName" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleOverride": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the override action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified." + }, + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to this specific rule." + }, + "ruleId": { + "type": "string", + "description": "Identifier for the managed rule." + } + }, + "required": [ + "ruleId" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleSet": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the set." + }, + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleGroupOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the rule group overrides to apply to the rule set." + }, + "ruleSetType": { + "type": "string", + "description": "Defines the rule set type to use." + }, + "ruleSetVersion": { + "type": "string", + "description": "Defines the version of the rule set to use." + } + }, + "required": [ + "ruleSetType", + "ruleSetVersion" + ], + "description": "Defines a managed rule set." + }, + "ManagedRuleSetList": { + "type": "object", + "properties": { + "managedRuleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rule sets." + } + }, + "description": "Defines the list of managed rule sets for the policy." + }, + "MatchCondition": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible match values." }, - "sessionAffinityEnabledState": { + "matchVariable": { "oneOf": [ { "type": "string", "enum": [ - "Enabled", - "Disabled" + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody", + "Cookies", + "SocketAddr" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + "description": "Request variable to compare with." }, - "sessionAffinityTtlSeconds": { + "negateCondition": { "oneOf": [ { - "type": "integer" + "type": "boolean" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + "description": "Describes if the result of this condition should be negated." }, - "webApplicationFirewallPolicyLink": { + "operator": { "oneOf": [ { - "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "RegEx" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Defines the Web Application Firewall policy for each host (if applicable)" - } - }, - "description": "The JSON object that contains the properties required to create a frontend endpoint." - }, - "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { - "type": "object", - "properties": { - "id": { + "description": "Comparison type to use for matching with the variable value." + }, + "selector": { "type": "string", - "description": "Resource ID." - } - }, - "description": "Defines the Web Application Firewall policy for each host (if applicable)" - }, - "HeaderAction": { - "type": "object", - "properties": { - "headerActionType": { + "description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null." + }, + "transforms": { "oneOf": [ { - "type": "string", - "enum": [ - "Append", - "Delete", - "Overwrite" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls" + ] + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Which type of manipulation to apply to the header." - }, - "headerName": { - "type": "string", - "description": "The name of the header this action will apply to." - }, - "value": { - "type": "string", - "description": "The value to update the given header name with. This value is not used if the actionType is Delete." + "description": "List of transforms." } }, "required": [ - "headerActionType", - "headerName" + "matchValue", + "matchVariable", + "operator" ], - "description": "An action that can manipulate an http header." + "description": "Define a match condition." }, - "HealthProbeSettingsModel": { + "NetworkExperimentProfiles_Experiments_childResource": { "type": "object", "properties": { - "id": { + "apiVersion": { "type": "string", - "description": "Resource ID." + "enum": [ + "2020-01-01" + ] }, - "name": { + "location": { "type": "string", - "description": "Resource name." + "description": "Resource location." }, - "properties": { + "name": { "oneOf": [ { - "$ref": "#/definitions/HealthProbeSettingsProperties" + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The JSON object that contains the properties required to create a health probe settings." - } - }, - "description": "Load balancing settings for a backend pool" - }, - "HealthProbeSettingsProperties": { - "type": "object", - "properties": { - "enabledState": { + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { "oneOf": [ { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ] + "$ref": "#/definitions/ExperimentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." + "description": "Defines the properties of an experiment" }, - "healthProbeMethod": { + "tags": { "oneOf": [ { - "type": "string", - "enum": [ - "GET", - "HEAD" - ] + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Configures which HTTP method to use to probe the backends defined under backendPools." + "description": "Resource tags." }, - "intervalInSeconds": { + "type": { + "type": "string", + "enum": [ + "Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" + }, + "PolicySettings": { + "type": "object", + "properties": { + "customBlockResponseBody": { "oneOf": [ { - "type": "integer" + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The number of seconds between health probes." + "description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding." }, - "path": { - "type": "string", - "description": "The path to use for the health probe. Default is /" - }, - "protocol": { + "customBlockResponseStatusCode": { "oneOf": [ { - "type": "string", - "enum": [ - "Http", - "Https" - ] + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Protocol scheme to use for this probe." + "description": "If the action type is block, customer can override the response status code." }, - "resourceState": { + "enabledState": { "oneOf": [ { "type": "string", "enum": [ - "Creating", - "Enabling", - "Enabled", - "Disabling", "Disabled", - "Deleting" + "Enabled" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource status." - } - }, - "description": "The JSON object that contains the properties required to create a health probe settings." - }, - "LoadBalancingSettingsModel": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Resource ID." - }, - "name": { - "type": "string", - "description": "Resource name." + "description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified." }, - "properties": { + "mode": { "oneOf": [ { - "$ref": "#/definitions/LoadBalancingSettingsProperties" + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The JSON object that contains the properties required to create load balancing settings" + "description": "Describes if it is in detection mode or prevention mode at policy level." + }, + "redirectUrl": { + "type": "string", + "description": "If action type is redirect, this field represents redirect URL for the client." } }, - "description": "Load balancing settings for a backend pool" + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." }, - "LoadBalancingSettingsProperties": { + "ProfileProperties": { "type": "object", "properties": { - "additionalLatencyMilliseconds": { + "enabledState": { "oneOf": [ { - "type": "integer" + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + "description": "The state of the Experiment." }, "resourceState": { "oneOf": [ @@ -921,31 +1860,9 @@ } ], "description": "Resource status." - }, - "sampleSize": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of samples to consider for load balancing decisions" - }, - "successfulSamplesRequired": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of samples within the sample period that must succeed" } }, - "description": "The JSON object that contains the properties required to create load balancing settings" + "description": "Defines the properties of an experiment" }, "RedirectConfiguration": { "type": "object", @@ -1427,6 +2344,45 @@ } }, "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyProperties": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRuleList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSetList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the list of managed rule sets for the policy." + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + } + }, + "description": "Defines web application firewall policy properties." } } } \ No newline at end of file diff --git a/schemas/2020-04-01/Microsoft.Network.FrontDoor.json b/schemas/2020-04-01/Microsoft.Network.FrontDoor.json index 551b35cad4..47aafaa706 100644 --- a/schemas/2020-04-01/Microsoft.Network.FrontDoor.json +++ b/schemas/2020-04-01/Microsoft.Network.FrontDoor.json @@ -193,6 +193,152 @@ "type" ], "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + }, + "NetworkExperimentProfiles": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-04-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Profile identifier associated with the Tenant and Partner" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProfileProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkExperimentProfiles_Experiments_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles" + }, + "NetworkExperimentProfiles_Experiments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-04-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles/Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" } }, "definitions": { @@ -585,6 +731,86 @@ }, "description": "Defines contents of custom rules" }, + "Endpoint": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint URL" + }, + "name": { + "type": "string", + "description": "The name of the endpoint" + } + }, + "description": "Defines the endpoint properties" + }, + "ExperimentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the details or intents of the Experiment" + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "endpointA": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "endpointB": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, "ForwardingConfiguration": { "type": "object", "properties": { @@ -1469,6 +1695,72 @@ ], "description": "Define a match condition." }, + "NetworkExperimentProfiles_Experiments_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-04-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" + }, "PolicySettings": { "type": "object", "properties": { @@ -1532,6 +1824,46 @@ }, "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." }, + "ProfileProperties": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, "RedirectConfiguration": { "type": "object", "properties": { diff --git a/schemas/2020-05-01/Microsoft.Network.FrontDoor.json b/schemas/2020-05-01/Microsoft.Network.FrontDoor.json index 636cfd8501..de82acf39d 100644 --- a/schemas/2020-05-01/Microsoft.Network.FrontDoor.json +++ b/schemas/2020-05-01/Microsoft.Network.FrontDoor.json @@ -130,6 +130,215 @@ "type" ], "description": "Microsoft.Network/frontDoors/rulesEngines" + }, + "FrontDoorWebApplicationFirewallPolicies": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-05-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "type": "string", + "maxLength": 128, + "description": "The name of the Web Application Firewall Policy." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/WebApplicationFirewallPolicyProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines web application firewall policy properties." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies" + }, + "NetworkExperimentProfiles": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-05-01" + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Profile identifier associated with the Tenant and Partner" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProfileProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkExperimentProfiles_Experiments_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles" + }, + "NetworkExperimentProfiles_Experiments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-05-01" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExperimentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the properties of an experiment" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/NetworkExperimentProfiles/Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" } }, "definitions": { @@ -396,106 +605,320 @@ }, "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." }, - "ForwardingConfiguration": { + "CustomRule": { "type": "object", "properties": { - "@odata.type": { - "type": "string", - "enum": [ - "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" - ] + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes what action to be applied when rule matches." }, - "backendPool": { + "enabledState": { "oneOf": [ { - "$ref": "#/definitions/SubResource" + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Reference to another subresource." + "description": "Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified." }, - "cacheConfiguration": { + "matchConditions": { "oneOf": [ { - "$ref": "#/definitions/CacheConfiguration" + "type": "array", + "items": { + "$ref": "#/definitions/MatchCondition" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + "description": "List of match conditions." }, - "customForwardingPath": { + "name": { "type": "string", - "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + "maxLength": 128, + "description": "Describes the name of the rule." }, - "forwardingProtocol": { + "priority": { "oneOf": [ { - "type": "string", - "enum": [ - "HttpOnly", - "HttpsOnly", - "MatchRequest" - ] + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Protocol this rule will use when forwarding traffic to backends." - } - }, - "required": [ - "@odata.type" - ], - "description": "Describes Forwarding Route." - }, - "FrontDoorProperties": { - "type": "object", - "properties": { - "backendPools": { + "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value." + }, + "rateLimitDurationInMinutes": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/BackendPool" - } + "type": "integer", + "minimum": 0, + "maximum": 5 }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Backend pools available to routing rules." + "description": "Time window for resetting the rate limit count. Default is 1 minute." }, - "backendPoolsSettings": { + "rateLimitThreshold": { "oneOf": [ { - "$ref": "#/definitions/BackendPoolsSettings" + "type": "integer", + "minimum": 0 }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Settings that apply to all backend pools." + "description": "Number of allowed requests per client within the time window." }, - "enabledState": { + "ruleType": { "oneOf": [ { "type": "string", "enum": [ - "Enabled", - "Disabled" + "MatchRule", + "RateLimitRule" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." - }, + "description": "Describes type of rule." + } + }, + "required": [ + "action", + "matchConditions", + "priority", + "ruleType" + ], + "description": "Defines contents of a web application rule" + }, + "CustomRuleList": { + "type": "object", + "properties": { + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CustomRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules" + } + }, + "description": "Defines contents of custom rules" + }, + "Endpoint": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint URL" + }, + "name": { + "type": "string", + "description": "The name of the endpoint" + } + }, + "description": "Defines the endpoint properties" + }, + "ExperimentProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the details or intents of the Experiment" + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The state of the Experiment." + }, + "endpointA": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "endpointB": { + "oneOf": [ + { + "$ref": "#/definitions/Endpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the endpoint properties" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "Defines the properties of an experiment" + }, + "ForwardingConfiguration": { + "type": "object", + "properties": { + "@odata.type": { + "type": "string", + "enum": [ + "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" + ] + }, + "backendPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Reference to another subresource." + }, + "cacheConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/CacheConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object." + }, + "customForwardingPath": { + "type": "string", + "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path." + }, + "forwardingProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "HttpOnly", + "HttpsOnly", + "MatchRequest" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol this rule will use when forwarding traffic to backends." + } + }, + "required": [ + "@odata.type" + ], + "description": "Describes Forwarding Route." + }, + "FrontDoorProperties": { + "type": "object", + "properties": { + "backendPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendPool" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Backend pools available to routing rules." + }, + "backendPoolsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/BackendPoolsSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings that apply to all backend pools." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'." + }, "friendlyName": { "type": "string", "description": "A friendly name for the frontDoor" @@ -676,240 +1099,756 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource status." + "description": "Resource status." + }, + "sessionAffinityEnabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + }, + "sessionAffinityTtlSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + }, + "webApplicationFirewallPolicyLink": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + } + }, + "description": "The JSON object that contains the properties required to create a frontend endpoint." + }, + "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + } + }, + "description": "Defines the Web Application Firewall policy for each host (if applicable)" + }, + "HeaderAction": { + "type": "object", + "properties": { + "headerActionType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Append", + "Delete", + "Overwrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Which type of manipulation to apply to the header." + }, + "headerName": { + "type": "string", + "description": "The name of the header this action will apply to." + }, + "value": { + "type": "string", + "description": "The value to update the given header name with. This value is not used if the actionType is Delete." + } + }, + "required": [ + "headerActionType", + "headerName" + ], + "description": "An action that can manipulate an http header." + }, + "HealthProbeSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/HealthProbeSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create a health probe settings." + } + }, + "description": "Load balancing settings for a backend pool" + }, + "HealthProbeSettingsProperties": { + "type": "object", + "properties": { + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "healthProbeMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GET", + "HEAD" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configures which HTTP method to use to probe the backends defined under backendPools." + }, + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of seconds between health probes." + }, + "path": { + "type": "string", + "description": "The path to use for the health probe. Default is /" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Protocol scheme to use for this probe." + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + } + }, + "description": "The JSON object that contains the properties required to create a health probe settings." + }, + "LoadBalancingSettingsModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID." + }, + "name": { + "type": "string", + "description": "Resource name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingSettingsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The JSON object that contains the properties required to create load balancing settings" + } + }, + "description": "Load balancing settings for a backend pool" + }, + "LoadBalancingSettingsProperties": { + "type": "object", + "properties": { + "additionalLatencyMilliseconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + }, + "resourceState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Creating", + "Enabling", + "Enabled", + "Disabling", + "Disabled", + "Deleting" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource status." + }, + "sampleSize": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples to consider for load balancing decisions" + }, + "successfulSamplesRequired": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of samples within the sample period that must succeed" + } + }, + "description": "The JSON object that contains the properties required to create load balancing settings" + }, + "ManagedRuleExclusion": { + "type": "object", + "properties": { + "matchVariable": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RequestHeaderNames", + "RequestCookieNames", + "QueryStringArgNames", + "RequestBodyPostArgNames" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The variable type to be excluded." + }, + "selector": { + "type": "string", + "description": "Selector value for which elements in the collection this exclusion applies to." + }, + "selectorMatchOperator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Equals", + "Contains", + "StartsWith", + "EndsWith", + "EqualsAny" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to." + } + }, + "required": [ + "matchVariable", + "selector", + "selectorMatchOperator" + ], + "description": "Exclude variables from managed rule evaluation." + }, + "ManagedRuleGroupOverride": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the group." + }, + "ruleGroupName": { + "type": "string", + "description": "Describes the managed rule group to override." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled." + } + }, + "required": [ + "ruleGroupName" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleOverride": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Block", + "Log", + "Redirect" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the override action to be applied when rule matches." + }, + "enabledState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified." + }, + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to this specific rule." + }, + "ruleId": { + "type": "string", + "description": "Identifier for the managed rule." + } + }, + "required": [ + "ruleId" + ], + "description": "Defines a managed rule group override setting." + }, + "ManagedRuleSet": { + "type": "object", + "properties": { + "exclusions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleExclusion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes the exclusions that are applied to all rules in the set." + }, + "ruleGroupOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleGroupOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the rule group overrides to apply to the rule set." + }, + "ruleSetType": { + "type": "string", + "description": "Defines the rule set type to use." + }, + "ruleSetVersion": { + "type": "string", + "description": "Defines the version of the rule set to use." + } + }, + "required": [ + "ruleSetType", + "ruleSetVersion" + ], + "description": "Defines a managed rule set." + }, + "ManagedRuleSetList": { + "type": "object", + "properties": { + "managedRuleSets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedRuleSet" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of rule sets." + } + }, + "description": "Defines the list of managed rule sets for the policy." + }, + "MatchCondition": { + "type": "object", + "properties": { + "matchValue": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible match values." }, - "sessionAffinityEnabledState": { + "matchVariable": { "oneOf": [ { "type": "string", "enum": [ - "Enabled", - "Disabled" + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeader", + "RequestBody", + "Cookies", + "SocketAddr" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'." + "description": "Request variable to compare with." }, - "sessionAffinityTtlSeconds": { + "negateCondition": { "oneOf": [ { - "type": "integer" + "type": "boolean" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable." + "description": "Describes if the result of this condition should be negated." }, - "webApplicationFirewallPolicyLink": { + "operator": { "oneOf": [ { - "$ref": "#/definitions/FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink" + "type": "string", + "enum": [ + "Any", + "IPMatch", + "GeoMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "RegEx" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Defines the Web Application Firewall policy for each host (if applicable)" - } - }, - "description": "The JSON object that contains the properties required to create a frontend endpoint." - }, - "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink": { - "type": "object", - "properties": { - "id": { + "description": "Comparison type to use for matching with the variable value." + }, + "selector": { "type": "string", - "description": "Resource ID." - } - }, - "description": "Defines the Web Application Firewall policy for each host (if applicable)" - }, - "HeaderAction": { - "type": "object", - "properties": { - "headerActionType": { + "description": "Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is null." + }, + "transforms": { "oneOf": [ { - "type": "string", - "enum": [ - "Append", - "Delete", - "Overwrite" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "Lowercase", + "Uppercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls" + ] + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Which type of manipulation to apply to the header." - }, - "headerName": { - "type": "string", - "description": "The name of the header this action will apply to." - }, - "value": { - "type": "string", - "description": "The value to update the given header name with. This value is not used if the actionType is Delete." + "description": "List of transforms." } }, "required": [ - "headerActionType", - "headerName" + "matchValue", + "matchVariable", + "operator" ], - "description": "An action that can manipulate an http header." + "description": "Define a match condition." }, - "HealthProbeSettingsModel": { + "NetworkExperimentProfiles_Experiments_childResource": { "type": "object", "properties": { - "id": { + "apiVersion": { "type": "string", - "description": "Resource ID." + "enum": [ + "2020-05-01" + ] }, - "name": { + "location": { "type": "string", - "description": "Resource name." + "description": "Resource location." }, - "properties": { + "name": { "oneOf": [ { - "$ref": "#/definitions/HealthProbeSettingsProperties" + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The JSON object that contains the properties required to create a health probe settings." - } - }, - "description": "Load balancing settings for a backend pool" - }, - "HealthProbeSettingsProperties": { - "type": "object", - "properties": { - "enabledState": { + "description": "The Experiment identifier associated with the Experiment" + }, + "properties": { "oneOf": [ { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ] + "$ref": "#/definitions/ExperimentProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." + "description": "Defines the properties of an experiment" }, - "healthProbeMethod": { + "tags": { "oneOf": [ { - "type": "string", - "enum": [ - "GET", - "HEAD" - ] + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Configures which HTTP method to use to probe the backends defined under backendPools." + "description": "Resource tags." }, - "intervalInSeconds": { + "type": { + "type": "string", + "enum": [ + "Experiments" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Network/NetworkExperimentProfiles/Experiments" + }, + "PolicySettings": { + "type": "object", + "properties": { + "customBlockResponseBody": { "oneOf": [ { - "type": "integer" + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The number of seconds between health probes." + "description": "If the action type is block, customer can override the response body. The body must be specified in base64 encoding." }, - "path": { - "type": "string", - "description": "The path to use for the health probe. Default is /" - }, - "protocol": { + "customBlockResponseStatusCode": { "oneOf": [ { - "type": "string", - "enum": [ - "Http", - "Https" - ] + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Protocol scheme to use for this probe." + "description": "If the action type is block, customer can override the response status code." }, - "resourceState": { + "enabledState": { "oneOf": [ { "type": "string", "enum": [ - "Creating", - "Enabling", - "Enabled", - "Disabling", "Disabled", - "Deleting" + "Enabled" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Resource status." - } - }, - "description": "The JSON object that contains the properties required to create a health probe settings." - }, - "LoadBalancingSettingsModel": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Resource ID." - }, - "name": { - "type": "string", - "description": "Resource name." + "description": "Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified." }, - "properties": { + "mode": { "oneOf": [ { - "$ref": "#/definitions/LoadBalancingSettingsProperties" + "type": "string", + "enum": [ + "Prevention", + "Detection" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The JSON object that contains the properties required to create load balancing settings" + "description": "Describes if it is in detection mode or prevention mode at policy level." + }, + "redirectUrl": { + "type": "string", + "description": "If action type is redirect, this field represents redirect URL for the client." } }, - "description": "Load balancing settings for a backend pool" + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." }, - "LoadBalancingSettingsProperties": { + "ProfileProperties": { "type": "object", "properties": { - "additionalLatencyMilliseconds": { + "enabledState": { "oneOf": [ { - "type": "integer" + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket" + "description": "The state of the Experiment." }, "resourceState": { "oneOf": [ @@ -929,31 +1868,9 @@ } ], "description": "Resource status." - }, - "sampleSize": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of samples to consider for load balancing decisions" - }, - "successfulSamplesRequired": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of samples within the sample period that must succeed" } }, - "description": "The JSON object that contains the properties required to create load balancing settings" + "description": "Defines the properties of an experiment" }, "RedirectConfiguration": { "type": "object", @@ -1456,6 +2373,45 @@ } }, "description": "Reference to another subresource." + }, + "WebApplicationFirewallPolicyProperties": { + "type": "object", + "properties": { + "customRules": { + "oneOf": [ + { + "$ref": "#/definitions/CustomRuleList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines contents of custom rules" + }, + "managedRules": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedRuleSetList" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the list of managed rule sets for the policy." + }, + "policySettings": { + "oneOf": [ + { + "$ref": "#/definitions/PolicySettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines top-level WebApplicationFirewallPolicy configuration settings." + } + }, + "description": "Defines web application firewall policy properties." } } } \ No newline at end of file diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index a18ff59272..1abfbcd627 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -3535,15 +3535,39 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-02-01/Microsoft.NetApp.json#/resourceDefinitions/netAppAccounts_capacityPools_volumes_snapshots" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-02-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-02-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-02-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-02-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles_Experiments" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-08-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-08-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-03-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" }, { "$ref": "https://schema.management.azure.com/schemas/2019-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" }, @@ -3559,6 +3583,15 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors_rulesEngines" }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles_Experiments" + }, { "$ref": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" }, @@ -3568,12 +3601,27 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles_Experiments" + }, { "$ref": "https://schema.management.azure.com/schemas/2020-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors" }, { "$ref": "https://schema.management.azure.com/schemas/2020-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/frontDoors_rulesEngines" }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/FrontDoorWebApplicationFirewallPolicies" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-05-01/Microsoft.Network.FrontDoor.json#/resourceDefinitions/NetworkExperimentProfiles_Experiments" + }, { "$ref": "https://schema.management.azure.com/schemas/2014-09-01/Microsoft.NotificationHubs.json#/resourceDefinitions/namespaces" },