Microsoft.Network frontDoors/rulesEngines 2020-04-01

Bicep resource definition

The frontDoors/rulesEngines resource type can be deployed to:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Network/frontDoors/rulesEngines resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.Network/frontDoors/rulesEngines@2020-04-01' = {
  name: 'string'
  parent: resourceSymbolicName
  properties: {
    rules: [
      {
        action: {
          requestHeaderActions: [
            {
              headerActionType: 'string'
              headerName: 'string'
              value: 'string'
            }
          ]
          responseHeaderActions: [
            {
              headerActionType: 'string'
              headerName: 'string'
              value: 'string'
            }
          ]
          routeConfigurationOverride: {
            '@odata.type': 'string'
            // For remaining properties, see RouteConfiguration objects
          }
        }
        matchConditions: [
          {
            negateCondition: bool
            rulesEngineMatchValue: [
              'string'
            ]
            rulesEngineMatchVariable: 'string'
            rulesEngineOperator: 'string'
            selector: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        matchProcessingBehavior: 'string'
        name: 'string'
        priority: int
      }
    ]
  }
}

RouteConfiguration objects

Set the @odata.type property to specify the type of object.

For #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration, use:

  '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
  backendPool: {
    id: 'string'
  }
  cacheConfiguration: {
    cacheDuration: 'string'
    dynamicCompression: 'string'
    queryParameters: 'string'
    queryParameterStripDirective: 'string'
  }
  customForwardingPath: 'string'
  forwardingProtocol: 'string'

For #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration, use:

  '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
  customFragment: 'string'
  customHost: 'string'
  customPath: 'string'
  customQueryString: 'string'
  redirectProtocol: 'string'
  redirectType: 'string'

Property values

frontDoors/rulesEngines

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: frontDoors
properties Properties of the Rules Engine Configuration. RulesEngineProperties

RulesEngineProperties

Name Description Value
rules A list of rules that define a particular Rules Engine Configuration. RulesEngineRule[]

RulesEngineRule

Name Description Value
action Actions to perform on the request and response if all of the match conditions are met. RulesEngineAction (required)
matchConditions A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. RulesEngineMatchCondition[]
matchProcessingBehavior If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. 'Continue'
'Stop'
name A name to refer to this specific rule. string (required)
priority A priority assigned to this rule. int (required)

RulesEngineAction

Name Description Value
requestHeaderActions A list of header actions to apply from the request from AFD to the origin. HeaderAction[]
responseHeaderActions A list of header actions to apply from the response from AFD to the client. HeaderAction[]
routeConfigurationOverride Override the route configuration. RouteConfiguration

HeaderAction

Name Description Value
headerActionType Which type of manipulation to apply to the header. 'Append'
'Delete'
'Overwrite' (required)
headerName The name of the header this action will apply to. string (required)
value The value to update the given header name with. This value is not used if the actionType is Delete. string

RouteConfiguration

Name Description Value
@odata.type Set the object type #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (required)

ForwardingConfiguration

Name Description Value
@odata.type '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration' (required)
backendPool A reference to the BackendPool which this rule routes to. SubResource
cacheConfiguration The caching configuration associated with this rule. CacheConfiguration
customForwardingPath A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path. string
forwardingProtocol Protocol this rule will use when forwarding traffic to backends. 'HttpOnly'
'HttpsOnly'
'MatchRequest'

SubResource

Name Description Value
id Resource ID. string

CacheConfiguration

Name Description Value
cacheDuration The duration for which the content needs to be cached. Allowed format is in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations). HTTP requires the value to be no more than a year string
dynamicCompression Whether to use dynamic compression for cached content 'Disabled'
'Enabled'
queryParameters query parameters to include or exclude (comma separated). string
queryParameterStripDirective Treatment of URL query terms when forming the cache key. 'StripAll'
'StripAllExcept'
'StripNone'
'StripOnly'

RedirectConfiguration

Name Description Value
@odata.type '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration' (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHost Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. string
redirectProtocol The protocol of the destination to where the traffic is redirected 'HttpOnly'
'HttpsOnly'
'MatchRequest'
redirectType The redirect type the rule will use when redirecting traffic. 'Found'
'Moved'
'PermanentRedirect'
'TemporaryRedirect'

RulesEngineMatchCondition

Name Description Value
negateCondition Describes if this is negate condition or not bool
rulesEngineMatchValue Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[] (required)
rulesEngineMatchVariable Match Variable 'IsMobile'
'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestFilename'
'RequestFilenameExtension'
'RequestHeader'
'RequestMethod'
'RequestPath'
'RequestScheme'
'RequestUri' (required)
rulesEngineOperator Describes operator to apply to the match condition. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual' (required)
selector Name of selector in RequestHeader or RequestBody to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

ARM template resource definition

The frontDoors/rulesEngines resource type can be deployed to:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Network/frontDoors/rulesEngines resource, add the following JSON to your template.

{
  "type": "Microsoft.Network/frontDoors/rulesEngines",
  "apiVersion": "2020-04-01",
  "name": "string",
  "properties": {
    "rules": [
      {
        "action": {
          "requestHeaderActions": [
            {
              "headerActionType": "string",
              "headerName": "string",
              "value": "string"
            }
          ],
          "responseHeaderActions": [
            {
              "headerActionType": "string",
              "headerName": "string",
              "value": "string"
            }
          ],
          "routeConfigurationOverride": {
            "@odata.type": "string"
            // For remaining properties, see RouteConfiguration objects
          }
        },
        "matchConditions": [
          {
            "negateCondition": "bool",
            "rulesEngineMatchValue": [ "string" ],
            "rulesEngineMatchVariable": "string",
            "rulesEngineOperator": "string",
            "selector": "string",
            "transforms": [ "string" ]
          }
        ],
        "matchProcessingBehavior": "string",
        "name": "string",
        "priority": "int"
      }
    ]
  }
}

RouteConfiguration objects

Set the @odata.type property to specify the type of object.

For #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration, use:

  "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration",
  "backendPool": {
    "id": "string"
  },
  "cacheConfiguration": {
    "cacheDuration": "string",
    "dynamicCompression": "string",
    "queryParameters": "string",
    "queryParameterStripDirective": "string"
  },
  "customForwardingPath": "string",
  "forwardingProtocol": "string"

For #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration, use:

  "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
  "customFragment": "string",
  "customHost": "string",
  "customPath": "string",
  "customQueryString": "string",
  "redirectProtocol": "string",
  "redirectType": "string"

Property values

frontDoors/rulesEngines

Name Description Value
type The resource type 'Microsoft.Network/frontDoors/rulesEngines'
apiVersion The resource api version '2020-04-01'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)
properties Properties of the Rules Engine Configuration. RulesEngineProperties

RulesEngineProperties

Name Description Value
rules A list of rules that define a particular Rules Engine Configuration. RulesEngineRule[]

RulesEngineRule

Name Description Value
action Actions to perform on the request and response if all of the match conditions are met. RulesEngineAction (required)
matchConditions A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. RulesEngineMatchCondition[]
matchProcessingBehavior If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. 'Continue'
'Stop'
name A name to refer to this specific rule. string (required)
priority A priority assigned to this rule. int (required)

RulesEngineAction

Name Description Value
requestHeaderActions A list of header actions to apply from the request from AFD to the origin. HeaderAction[]
responseHeaderActions A list of header actions to apply from the response from AFD to the client. HeaderAction[]
routeConfigurationOverride Override the route configuration. RouteConfiguration

HeaderAction

Name Description Value
headerActionType Which type of manipulation to apply to the header. 'Append'
'Delete'
'Overwrite' (required)
headerName The name of the header this action will apply to. string (required)
value The value to update the given header name with. This value is not used if the actionType is Delete. string

RouteConfiguration

Name Description Value
@odata.type Set the object type #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (required)

ForwardingConfiguration

Name Description Value
@odata.type '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration' (required)
backendPool A reference to the BackendPool which this rule routes to. SubResource
cacheConfiguration The caching configuration associated with this rule. CacheConfiguration
customForwardingPath A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path. string
forwardingProtocol Protocol this rule will use when forwarding traffic to backends. 'HttpOnly'
'HttpsOnly'
'MatchRequest'

SubResource

Name Description Value
id Resource ID. string

CacheConfiguration

Name Description Value
cacheDuration The duration for which the content needs to be cached. Allowed format is in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations). HTTP requires the value to be no more than a year string
dynamicCompression Whether to use dynamic compression for cached content 'Disabled'
'Enabled'
queryParameters query parameters to include or exclude (comma separated). string
queryParameterStripDirective Treatment of URL query terms when forming the cache key. 'StripAll'
'StripAllExcept'
'StripNone'
'StripOnly'

RedirectConfiguration

Name Description Value
@odata.type '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration' (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHost Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. string
redirectProtocol The protocol of the destination to where the traffic is redirected 'HttpOnly'
'HttpsOnly'
'MatchRequest'
redirectType The redirect type the rule will use when redirecting traffic. 'Found'
'Moved'
'PermanentRedirect'
'TemporaryRedirect'

RulesEngineMatchCondition

Name Description Value
negateCondition Describes if this is negate condition or not bool
rulesEngineMatchValue Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[] (required)
rulesEngineMatchVariable Match Variable 'IsMobile'
'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestFilename'
'RequestFilenameExtension'
'RequestHeader'
'RequestMethod'
'RequestPath'
'RequestScheme'
'RequestUri' (required)
rulesEngineOperator Describes operator to apply to the match condition. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual' (required)
selector Name of selector in RequestHeader or RequestBody to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

Terraform (AzAPI provider) resource definition

The frontDoors/rulesEngines resource type can be deployed to:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Network/frontDoors/rulesEngines resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/frontDoors/rulesEngines@2020-04-01"
  name = "string"
  parent_id = "string"
  body = jsonencode({
    properties = {
      rules = [
        {
          action = {
            requestHeaderActions = [
              {
                headerActionType = "string"
                headerName = "string"
                value = "string"
              }
            ]
            responseHeaderActions = [
              {
                headerActionType = "string"
                headerName = "string"
                value = "string"
              }
            ]
            routeConfigurationOverride = {
              @odata.type = "string"
              // For remaining properties, see RouteConfiguration objects
            }
          }
          matchConditions = [
            {
              negateCondition = bool
              rulesEngineMatchValue = [
                "string"
              ]
              rulesEngineMatchVariable = "string"
              rulesEngineOperator = "string"
              selector = "string"
              transforms = [
                "string"
              ]
            }
          ]
          matchProcessingBehavior = "string"
          name = "string"
          priority = int
        }
      ]
    }
  })
}

RouteConfiguration objects

Set the @odata.type property to specify the type of object.

For #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration, use:

  @odata.type = "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration"
  backendPool = {
    id = "string"
  }
  cacheConfiguration = {
    cacheDuration = "string"
    dynamicCompression = "string"
    queryParameters = "string"
    queryParameterStripDirective = "string"
  }
  customForwardingPath = "string"
  forwardingProtocol = "string"

For #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration, use:

  @odata.type = "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration"
  customFragment = "string"
  customHost = "string"
  customPath = "string"
  customQueryString = "string"
  redirectProtocol = "string"
  redirectType = "string"

Property values

frontDoors/rulesEngines

Name Description Value
type The resource type "Microsoft.Network/frontDoors/rulesEngines@2020-04-01"
name The resource name string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: frontDoors
properties Properties of the Rules Engine Configuration. RulesEngineProperties

RulesEngineProperties

Name Description Value
rules A list of rules that define a particular Rules Engine Configuration. RulesEngineRule[]

RulesEngineRule

Name Description Value
action Actions to perform on the request and response if all of the match conditions are met. RulesEngineAction (required)
matchConditions A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. RulesEngineMatchCondition[]
matchProcessingBehavior If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. "Continue"
"Stop"
name A name to refer to this specific rule. string (required)
priority A priority assigned to this rule. int (required)

RulesEngineAction

Name Description Value
requestHeaderActions A list of header actions to apply from the request from AFD to the origin. HeaderAction[]
responseHeaderActions A list of header actions to apply from the response from AFD to the client. HeaderAction[]
routeConfigurationOverride Override the route configuration. RouteConfiguration

HeaderAction

Name Description Value
headerActionType Which type of manipulation to apply to the header. "Append"
"Delete"
"Overwrite" (required)
headerName The name of the header this action will apply to. string (required)
value The value to update the given header name with. This value is not used if the actionType is Delete. string

RouteConfiguration

Name Description Value
@odata.type Set the object type #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (required)

ForwardingConfiguration

Name Description Value
@odata.type "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration" (required)
backendPool A reference to the BackendPool which this rule routes to. SubResource
cacheConfiguration The caching configuration associated with this rule. CacheConfiguration
customForwardingPath A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path. string
forwardingProtocol Protocol this rule will use when forwarding traffic to backends. "HttpOnly"
"HttpsOnly"
"MatchRequest"

SubResource

Name Description Value
id Resource ID. string

CacheConfiguration

Name Description Value
cacheDuration The duration for which the content needs to be cached. Allowed format is in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations). HTTP requires the value to be no more than a year string
dynamicCompression Whether to use dynamic compression for cached content "Disabled"
"Enabled"
queryParameters query parameters to include or exclude (comma separated). string
queryParameterStripDirective Treatment of URL query terms when forming the cache key. "StripAll"
"StripAllExcept"
"StripNone"
"StripOnly"

RedirectConfiguration

Name Description Value
@odata.type "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration" (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHost Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. string
redirectProtocol The protocol of the destination to where the traffic is redirected "HttpOnly"
"HttpsOnly"
"MatchRequest"
redirectType The redirect type the rule will use when redirecting traffic. "Found"
"Moved"
"PermanentRedirect"
"TemporaryRedirect"

RulesEngineMatchCondition

Name Description Value
negateCondition Describes if this is negate condition or not bool
rulesEngineMatchValue Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[] (required)
rulesEngineMatchVariable Match Variable "IsMobile"
"PostArgs"
"QueryString"
"RemoteAddr"
"RequestBody"
"RequestFilename"
"RequestFilenameExtension"
"RequestHeader"
"RequestMethod"
"RequestPath"
"RequestScheme"
"RequestUri" (required)
rulesEngineOperator Describes operator to apply to the match condition. "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GeoMatch"
"GreaterThan"
"GreaterThanOrEqual"
"IPMatch"
"LessThan"
"LessThanOrEqual" (required)
selector Name of selector in RequestHeader or RequestBody to be matched string
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"