swagger: '2.0'
schemes:
  - https
host: management.azure.com
info:
  description: Use these APIs to manage Azure Front Door resources through the Azure Resource Manager. You must make sure that requests made to these resources are secure.
  title: FrontDoorManagementClient
  version: '2020-01-01'
  x-apisguru-categories:
    - cloud
  x-logo:
    url: 'https://assets.onestore.ms/cdnfiles/onestorerolling-1606-01000/shell/v3/images/logo/microsoft.png'
  x-origin:
    - format: swagger
      url: 'https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/frontdoor/resource-manager/Microsoft.Network/stable/2020-01-01/frontdoor.json'
      version: '2.0'
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: frontdoor
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: 'https://login.microsoftonline.com/common/oauth2/authorize'
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  backendPoolNameParameter:
    description: Name of the Backend Pool which is unique within the Front Door.
    in: path
    maxLength: 90
    minLength: 1
    name: backendPoolName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
  frontDoorNameParameter:
    description: Name of the Front Door which is globally unique.
    in: path
    maxLength: 64
    minLength: 5
    name: frontDoorName
    pattern: '^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-new-pattern: '^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$'
  frontendEndpointNameParameter:
    description: Name of the Frontend endpoint which is unique within the Front Door.
    in: path
    maxLength: 255
    minLength: 1
    name: frontendEndpointName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
  healthProbeSettingsNameParameter:
    description: Name of the health probe settings which is unique within the Front Door.
    in: path
    maxLength: 90
    minLength: 1
    name: healthProbeSettingsName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
  loadBalancingSettingsNameParameter:
    description: Name of the load balancing settings which is unique within the Front Door.
    in: path
    maxLength: 90
    minLength: 1
    name: loadBalancingSettingsName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
  resourceGroupNameParameter:
    description: Name of the Resource group within the Azure subscription.
    in: path
    maxLength: 80
    minLength: 1
    name: resourceGroupName
    pattern: '^[a-zA-Z0-9_\-\(\)\.]*[^\.]$'
    required: true
    type: string
    x-ms-parameter-location: method
  routingRuleNameParameter:
    description: Name of the Routing Rule which is unique within the Front Door.
    in: path
    maxLength: 90
    minLength: 1
    name: routingRuleName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
  rulesEngineNameParameter:
    description: Name of the Rules Engine which is unique within the Front Door.
    in: path
    maxLength: 90
    minLength: 1
    name: rulesEngineName
    pattern: '^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$'
    required: true
    type: string
    x-ms-parameter-location: method
    x-previous-pattern: '^[-\w\d\._]+$'
paths:
  /providers/Microsoft.Network/checkFrontDoorNameAvailability:
    post:
      description: Check the availability of a Front Door resource name.
      operationId: CheckFrontDoorNameAvailability
      parameters:
        - description: Input to check.
          in: body
          name: checkFrontDoorNameAvailabilityInput
          required: true
          schema:
            $ref: '#/definitions/CheckNameAvailabilityInput'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/CheckNameAvailabilityOutput'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - CheckFrontDoorNameAvailability
      x-ms-examples:
        CheckNameAvailability:
          parameters:
            api-version: '2020-01-01'
            checkFrontDoorNameAvailabilityInput:
              name: sampleName
              type: Microsoft.Network/frontDoors
          responses:
            '200':
              body:
                message: Name not available
                nameAvailability: Unavailable
                reason: Name is already in use
  '/subscriptions/{subscriptionId}/providers/Microsoft.Network/checkFrontDoorNameAvailability':
    post:
      description: Check the availability of a Front Door subdomain.
      operationId: CheckFrontDoorNameAvailabilityWithSubscription
      parameters:
        - description: Input to check.
          in: body
          name: checkFrontDoorNameAvailabilityInput
          required: true
          schema:
            $ref: '#/definitions/CheckNameAvailabilityInput'
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/CheckNameAvailabilityOutput'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - CheckFrontDoorNameAvailabilityWithSubscription
      x-ms-examples:
        CheckNameAvailabilityWithSubscription:
          parameters:
            api-version: '2020-01-01'
            checkFrontDoorNameAvailabilityInput:
              name: sampleName
              type: Microsoft.Network/frontDoors/frontendEndpoints
            subscriptionId: subid
          responses:
            '200':
              body:
                message: Name not available
                nameAvailability: Unavailable
                reason: Name is already in use
  '/subscriptions/{subscriptionId}/providers/Microsoft.Network/frontDoors':
    get:
      description: Lists all of the Front Doors within an Azure subscription.
      operationId: FrontDoors_List
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontDoorListResult'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        List all Front Doors:
          parameters:
            api-version: '2020-01-01'
            subscriptionId: subid
          responses:
            '200':
              body:
                value:
                  - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                    location: westus
                    name: frontDoor1
                    properties:
                      backendPools:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          name: backendPool1
                          properties:
                            backends:
                              - address: w3.contoso.com
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                location: westus
                                priority: 2
                                weight: 1
                              - address: contoso.com.website-us-west-2.othercloud.net
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                priority: 1
                                weight: 2
                              - address: 10.0.1.5
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                location: westus
                                priority: 1
                                privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                                weight: 1
                            healthProbeSettings:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                            loadBalancingSettings:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                      backendPoolsSettings:
                        enforceCertificateNameCheck: Enabled
                      cname: frontDoor1.azurefd.net
                      enabledState: Enabled
                      frontendEndpoints:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          name: frontendEndpoint1
                          properties:
                            hostName: www.contoso.com
                            sessionAffinityEnabledState: Enabled
                            sessionAffinityTtlSeconds: 60
                            webApplicationFirewallPolicyLink:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                          name: default
                          properties:
                            hostName: frontDoor1.azurefd.net
                      healthProbeSettings:
                        - name: healthProbeSettings1
                          properties:
                            enabledState: Enabled
                            healthProbeMethod: HEAD
                            intervalInSeconds: 120
                            path: /
                            protocol: Http
                      loadBalancingSettings:
                        - name: loadBalancingSettings1
                          properties:
                            sampleSize: 4
                            successfulSamplesRequired: 2
                      provisioningState: Succeeded
                      resourceState: Enabled
                      routingRules:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                          name: routingRule1
                          properties:
                            acceptedProtocols:
                              - Http
                            enabledState: Enabled
                            frontendEndpoints:
                              - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                              - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                            patternsToMatch:
                              - /*
                            routeConfiguration:
                              '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                              backendPool:
                                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                              customForwardingPath: ''
                              forwardingProtocol: MatchRequest
                            rulesEngine:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                      rulesEngines:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/rulesEngine1
                          name: rulesEngine1
                          properties:
                            rules:
                              - action:
                                  routeConfigurationOverride:
                                    '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                                    customFragment: fragment
                                    customHost: www.bing.com
                                    customPath: /api
                                    customQueryString: a=b
                                    redirectProtocol: HttpsOnly
                                    redirectType: Moved
                                matchConditions:
                                  - rulesEngineMatchValue:
                                      - CH
                                    rulesEngineMatchVariable: RemoteAddr
                                    rulesEngineOperator: GeoMatch
                                matchProcessingBehavior: Stop
                                name: Rule1
                                priority: 1
                              - action:
                                  responseHeaderActions:
                                    - headerActionType: Overwrite
                                      headerName: Cache-Control
                                      value: 'public, max-age=31536000'
                                matchConditions:
                                  - rulesEngineMatchValue:
                                      - jpg
                                    rulesEngineMatchVariable: FilenameExtension
                                    rulesEngineOperator: Equal
                                    transforms:
                                      - Lowercase
                                name: Rule2
                                priority: 2
                    tags:
                      tag1: value1
                      tag2: value2
                    type: Microsoft.Network/frontDoor
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors':
    get:
      description: Lists all of the Front Doors within a resource group under a subscription.
      operationId: FrontDoors_ListByResourceGroup
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontDoorListResult'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        List Front Doors in a Resource Group:
          parameters:
            api-version: '2020-01-01'
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                value:
                  - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                    location: westus
                    name: frontDoor1
                    properties:
                      backendPools:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          name: backendPool1
                          properties:
                            backends:
                              - address: w3.contoso.com
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                location: westus
                                priority: 2
                                weight: 1
                              - address: contoso.com.website-us-west-2.othercloud.net
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                priority: 1
                                weight: 2
                              - address: 10.0.1.5
                                enabledState: Enabled
                                httpPort: 80
                                httpsPort: 443
                                location: westus
                                priority: 1
                                privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                                weight: 1
                            healthProbeSettings:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                            loadBalancingSettings:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                      backendPoolsSettings:
                        enforceCertificateNameCheck: Enabled
                        sendRecvTimeoutSeconds: 60
                      cname: frontDoor1.azurefd.net
                      enabledState: Enabled
                      frontendEndpoints:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          name: frontendEndpoint1
                          properties:
                            hostName: www.contoso.com
                            sessionAffinityEnabledState: Enabled
                            sessionAffinityTtlSeconds: 60
                            webApplicationFirewallPolicyLink:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                          name: default
                          properties:
                            hostName: frontDoor1.azurefd.net
                      healthProbeSettings:
                        - name: healthProbeSettings1
                          properties:
                            enabledState: Enabled
                            healthProbeMethod: HEAD
                            intervalInSeconds: 120
                            path: /
                            protocol: Http
                      loadBalancingSettings:
                        - name: loadBalancingSettings1
                          properties:
                            sampleSize: 4
                            successfulSamplesRequired: 2
                      provisioningState: Succeeded
                      resourceState: Enabled
                      routingRules:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                          name: routingRule1
                          properties:
                            acceptedProtocols:
                              - Http
                            enabledState: Enabled
                            frontendEndpoints:
                              - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                              - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                            patternsToMatch:
                              - /*
                            routeConfiguration:
                              '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                              backendPool:
                                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                              customForwardingPath: ''
                              forwardingProtocol: MatchRequest
                            rulesEngine:
                              id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                      rulesEngines:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/rulesEngine1
                          name: rulesEngine1
                          properties:
                            rules:
                              - action:
                                  routeConfigurationOverride:
                                    '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                                    customFragment: fragment
                                    customHost: www.bing.com
                                    customPath: /api
                                    customQueryString: a=b
                                    redirectProtocol: HttpsOnly
                                    redirectType: Moved
                                matchConditions:
                                  - rulesEngineMatchValue:
                                      - CH
                                    rulesEngineMatchVariable: RemoteAddr
                                    rulesEngineOperator: GeoMatch
                                matchProcessingBehavior: Stop
                                name: Rule1
                                priority: 1
                              - action:
                                  responseHeaderActions:
                                    - headerActionType: Overwrite
                                      headerName: Cache-Control
                                      value: 'public, max-age=31536000'
                                matchConditions:
                                  - rulesEngineMatchValue:
                                      - jpg
                                    rulesEngineMatchVariable: FilenameExtension
                                    rulesEngineOperator: Equal
                                    transforms:
                                      - Lowercase
                                name: Rule2
                                priority: 2
                    tags:
                      tag1: value1
                      tag2: value2
                    type: Microsoft.Network/frontDoor
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}':
    delete:
      description: Deletes an existing Front Door with the specified parameters.
      operationId: FrontDoors_Delete
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '202':
          description: Accepted. The request has been accepted for processing and the operation will complete asynchronously.
        '204':
          description: No Content. The request has been accepted but the Front Door was not found.
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Delete Front Door:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '202': {}
            '204': {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
    get:
      description: Gets a Front Door with the specified Front Door name under the specified subscription and resource group.
      operationId: FrontDoors_Get
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontDoor'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Get Front Door:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                location: westus
                name: frontDoor1
                properties:
                  backendPools:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                      name: backendPool1
                      properties:
                        backends:
                          - address: w3.contoso.com
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 2
                            weight: 1
                          - address: contoso.com.website-us-west-2.othercloud.net
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            priority: 1
                            weight: 2
                          - address: 10.0.1.5
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 1
                            privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                            weight: 1
                        healthProbeSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                        loadBalancingSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                  backendPoolsSettings:
                    enforceCertificateNameCheck: Enabled
                    sendRecvTimeoutSeconds: 60
                  cname: frontDoor1.azurefd.net
                  enabledState: Enabled
                  frontendEndpoints:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                      name: frontendEndpoint1
                      properties:
                        hostName: www.contoso.com
                        sessionAffinityEnabledState: Enabled
                        sessionAffinityTtlSeconds: 60
                        webApplicationFirewallPolicyLink:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                      name: default
                      properties:
                        hostName: frontDoor1.azurefd.net
                  healthProbeSettings:
                    - name: healthProbeSettings1
                      properties:
                        enabledState: Enabled
                        healthProbeMethod: HEAD
                        intervalInSeconds: 120
                        path: /
                        protocol: Http
                  loadBalancingSettings:
                    - name: loadBalancingSettings1
                      properties:
                        sampleSize: 4
                        successfulSamplesRequired: 2
                  provisioningState: Succeeded
                  resourceState: Enabled
                  routingRules:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                      name: routingRule1
                      properties:
                        acceptedProtocols:
                          - Http
                        enabledState: Enabled
                        frontendEndpoints:
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                        patternsToMatch:
                          - /*
                        routeConfiguration:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                          backendPool:
                            id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          customForwardingPath: ''
                          forwardingProtocol: MatchRequest
                        rulesEngine:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                  rulesEngines:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/rulesEngine1
                      name: rulesEngine1
                      properties:
                        rules:
                          - action:
                              routeConfigurationOverride:
                                '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                                customFragment: fragment
                                customHost: www.bing.com
                                customPath: /api
                                customQueryString: a=b
                                redirectProtocol: HttpsOnly
                                redirectType: Moved
                            matchConditions:
                              - rulesEngineMatchValue:
                                  - CH
                                rulesEngineMatchVariable: RemoteAddr
                                rulesEngineOperator: GeoMatch
                            matchProcessingBehavior: Stop
                            name: Rule1
                            priority: 1
                          - action:
                              responseHeaderActions:
                                - headerActionType: Overwrite
                                  headerName: Cache-Control
                                  value: 'public, max-age=31536000'
                            matchConditions:
                              - rulesEngineMatchValue:
                                  - jpg
                                rulesEngineMatchVariable: FilenameExtension
                                rulesEngineOperator: Equal
                                transforms:
                                  - Lowercase
                            name: Rule2
                            priority: 2
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/frontDoor
    put:
      description: Creates a new Front Door with a Front Door name under the specified subscription and resource group.
      operationId: FrontDoors_CreateOrUpdate
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Front Door properties needed to create a new Front Door.
          in: body
          name: frontDoorParameters
          required: true
          schema:
            $ref: '#/definitions/FrontDoor'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontDoor'
        '201':
          description: Created. The request has been fulfilled and a new Front Door has been created.
          schema:
            $ref: '#/definitions/FrontDoor'
        '202':
          description: Accepted. The request has been accepted for processing and the operation will complete asynchronously.
          schema:
            $ref: '#/definitions/FrontDoor'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Create or update specific Front Door:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            frontDoorParameters:
              location: westus
              properties:
                backendPools:
                  - name: backendPool1
                    properties:
                      backends:
                        - address: w3.contoso.com
                          httpPort: 80
                          httpsPort: 443
                          location: westus
                          priority: 2
                          weight: 1
                        - address: contoso.com.website-us-west-2.othercloud.net
                          httpPort: 80
                          httpsPort: 443
                          priority: 1
                          weight: 2
                        - address: 10.0.1.5
                          httpPort: 80
                          httpsPort: 443
                          location: westus
                          priority: 1
                          privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                          weight: 1
                      healthProbeSettings:
                        id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                      loadBalancingSettings:
                        id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                backendPoolsSettings:
                  enforceCertificateNameCheck: Enabled
                  sendRecvTimeoutSeconds: 60
                enabledState: Enabled
                frontendEndpoints:
                  - name: frontendEndpoint1
                    properties:
                      hostName: www.contoso.com
                      sessionAffinityEnabledState: Enabled
                      sessionAffinityTtlSeconds: 60
                      webApplicationFirewallPolicyLink:
                        id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                  - name: default
                    properties:
                      hostName: frontDoor1.azurefd.net
                healthProbeSettings:
                  - name: healthProbeSettings1
                    properties:
                      enabledState: Enabled
                      healthProbeMethod: HEAD
                      intervalInSeconds: 120
                      path: /
                      protocol: Http
                loadBalancingSettings:
                  - name: loadBalancingSettings1
                    properties:
                      sampleSize: 4
                      successfulSamplesRequired: 2
                routingRules:
                  - name: routingRule1
                    properties:
                      acceptedProtocols:
                        - Http
                      enabledState: Enabled
                      frontendEndpoints:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                      patternsToMatch:
                        - /*
                      routeConfiguration:
                        '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                        backendPool:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                      rulesEngine:
                        id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
              tags:
                tag1: value1
                tag2: value2
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                location: westus
                name: frontDoor1
                properties:
                  backendPools:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                      name: backendPool1
                      properties:
                        backends:
                          - address: w3.contoso.com
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 2
                            weight: 1
                          - address: contoso.com.website-us-west-2.othercloud.net
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            priority: 1
                            weight: 2
                          - address: 10.0.1.5
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 1
                            privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                            weight: 1
                        healthProbeSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                        loadBalancingSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                  backendPoolsSettings:
                    enforceCertificateNameCheck: Enabled
                    sendRecvTimeoutSeconds: 60
                  cname: frontDoor1.azurefd.net
                  enabledState: Enabled
                  frontendEndpoints:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                      name: frontendEndpoint1
                      properties:
                        hostName: www.contoso.com
                        sessionAffinityEnabledState: Enabled
                        sessionAffinityTtlSeconds: 60
                        webApplicationFirewallPolicyLink:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                      name: default
                      properties:
                        hostName: frontDoor1.azurefd.net
                  healthProbeSettings:
                    - name: healthProbeSettings1
                      properties:
                        enabledState: Enabled
                        healthProbeMethod: HEAD
                        intervalInSeconds: 120
                        path: /
                        protocol: Http
                  loadBalancingSettings:
                    - name: loadBalancingSettings1
                      properties:
                        sampleSize: 4
                        successfulSamplesRequired: 2
                  provisioningState: Succeeded
                  resourceState: Creating
                  routingRules:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                      name: routingRule1
                      properties:
                        acceptedProtocols:
                          - Http
                        enabledState: Enabled
                        frontendEndpoints:
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                        patternsToMatch:
                          - /*
                        routeConfiguration:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                          backendPool:
                            id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          customForwardingPath: ''
                          forwardingProtocol: MatchRequest
                        rulesEngine: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/frontDoor
            '201':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                location: westus
                name: frontDoor1
                properties:
                  backendPools:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                      name: backendPool1
                      properties:
                        backends:
                          - address: w3.contoso.com
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 2
                            weight: 1
                          - address: contoso.com.website-us-west-2.othercloud.net
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            priority: 1
                            weight: 2
                          - address: 10.0.1.5
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 1
                            privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                            weight: 1
                        healthProbeSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                        loadBalancingSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                  backendPoolsSettings:
                    enforceCertificateNameCheck: Enabled
                    sendRecvTimeoutSeconds: 60
                  cname: frontDoor1.azurefd.net
                  enabledState: Enabled
                  frontendEndpoints:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                      name: frontendEndpoint1
                      properties:
                        hostName: www.contoso.com
                        sessionAffinityEnabledState: Enabled
                        sessionAffinityTtlSeconds: 60
                        webApplicationFirewallPolicyLink:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                      name: default
                      properties:
                        hostName: frontDoor1.azurefd.net
                  healthProbeSettings:
                    - name: healthProbeSettings1
                      properties:
                        enabledState: Enabled
                        healthProbeMethod: HEAD
                        intervalInSeconds: 120
                        path: /
                        protocol: Http
                  loadBalancingSettings:
                    - name: loadBalancingSettings1
                      properties:
                        sampleSize: 4
                        successfulSamplesRequired: 2
                  provisioningState: Provisioning
                  resourceState: Creating
                  routingRules:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                      name: routingRule1
                      properties:
                        acceptedProtocols:
                          - Http
                        enabledState: Enabled
                        frontendEndpoints:
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                        patternsToMatch:
                          - /*
                        routeConfiguration:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                          backendPool:
                            id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          customForwardingPath: ''
                          forwardingProtocol: MatchRequest
                        rulesEngine: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/frontDoor
            '202':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1
                location: westus
                name: frontDoor1
                properties:
                  backendPools:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                      name: backendPool1
                      properties:
                        backends:
                          - address: w3.contoso.com
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 2
                            weight: 1
                          - address: contoso.com.website-us-west-2.othercloud.net
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            priority: 1
                            weight: 2
                          - address: 10.0.1.5
                            enabledState: Enabled
                            httpPort: 80
                            httpsPort: 443
                            location: westus
                            priority: 1
                            privateLinkId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/pls1
                            weight: 1
                        healthProbeSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1
                        loadBalancingSettings:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1
                  backendPoolsSettings:
                    enforceCertificateNameCheck: Enabled
                    sendRecvTimeoutSeconds: 60
                  cname: frontDoor1.azurefd.net
                  enabledState: Enabled
                  frontendEndpoints:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                      name: frontendEndpoint1
                      properties:
                        hostName: www.contoso.com
                        sessionAffinityEnabledState: Enabled
                        sessionAffinityTtlSeconds: 60
                        webApplicationFirewallPolicyLink:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                      name: default
                      properties:
                        hostName: frontDoor1.azurefd.net
                  healthProbeSettings:
                    - name: healthProbeSettings1
                      properties:
                        enabledState: Enabled
                        healthProbeMethod: HEAD
                        intervalInSeconds: 120
                        path: /
                        protocol: Http
                  loadBalancingSettings:
                    - name: loadBalancingSettings1
                      properties:
                        sampleSize: 4
                        successfulSamplesRequired: 2
                  provisioningState: Provisioning
                  resourceState: Creating
                  routingRules:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1
                      name: routingRule1
                      properties:
                        acceptedProtocols:
                          - Http
                        enabledState: Enabled
                        frontendEndpoints:
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                          - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default
                        patternsToMatch:
                          - /*
                        routeConfiguration:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
                          backendPool:
                            id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1
                          customForwardingPath: ''
                          forwardingProtocol: MatchRequest
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/frontDoor
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints':
    get:
      description: Lists all of the frontend endpoints within a Front Door.
      operationId: FrontendEndpoints_ListByFrontDoor
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontendEndpointsListResult'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        List Frontend endpoints in a Front Door:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                value:
                  - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                    name: frontendEndpoint1
                    properties:
                      hostName: www.contoso.com
                      sessionAffinityEnabledState: Enabled
                      sessionAffinityTtlSeconds: 60
                      webApplicationFirewallPolicyLink:
                        id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}':
    get:
      description: Gets a Frontend endpoint with the specified name within the specified Front Door.
      operationId: FrontendEndpoints_Get
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/frontendEndpointNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/FrontendEndpoint'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Get Frontend Endpoint:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            frontendEndpointName: frontendEndpoint1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1
                name: frontendEndpoint1
                properties:
                  hostName: www.contoso.com
                  sessionAffinityEnabledState: Enabled
                  sessionAffinityTtlSeconds: 60
                  webApplicationFirewallPolicyLink:
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/disableHttps':
    post:
      description: Disables a frontendEndpoint for HTTPS traffic
      operationId: FrontendEndpoints_DisableHttps
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/frontendEndpointNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
        '202':
          description: Accepted and the operation will complete asynchronously.
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        FrontendEndpoints_DisableHttps:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            frontendEndpointName: frontendEndpoint1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200': {}
            '202': {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/enableHttps':
    post:
      description: Enables a frontendEndpoint for HTTPS traffic
      operationId: FrontendEndpoints_EnableHttps
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/frontendEndpointNameParameter'
        - description: The configuration specifying how to enable HTTPS
          in: body
          name: customHttpsConfiguration
          required: true
          schema:
            $ref: '#/definitions/CustomHttpsConfiguration'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
        '202':
          description: Accepted and the operation will complete asynchronously.
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        FrontendEndpoints_EnableHttps:
          parameters:
            api-version: '2020-01-01'
            customHttpsConfiguration:
              certificateSource: AzureKeyVault
              keyVaultCertificateSourceParameters:
                secretName: secret1
                secretVersion: 00000000-0000-0000-0000-000000000000
                vault:
                  id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.KeyVault/vaults/vault1
              minimumTlsVersion: '1.0'
              protocolType: ServerNameIndication
            frontDoorName: frontDoor1
            frontendEndpointName: frontendEndpoint1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200': {}
            '202': {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/purge':
    post:
      description: Removes a content from Front Door.
      operationId: Endpoints_PurgeContent
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: 'The path to the content to be purged. Path can be a full URL, e.g. ''/pictures/city.png'' which removes a single file, or a directory with a wildcard, e.g. ''/pictures/*'' which removes all folders and files in the directory.'
          in: body
          name: contentFilePaths
          required: true
          schema:
            $ref: '#/definitions/PurgeParameters'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
        '202':
          description: Accepted and the operation will complete asynchronously.
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Purge content from Front Door:
          parameters:
            api-version: '2020-01-01'
            contentFilePaths:
              contentPaths:
                - /pictures.aspx
                - /pictures/*
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200': {}
            '202': {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/rulesEngines':
    get:
      description: Lists all of the Rules Engine Configurations within a Front Door.
      operationId: RulesEngines_ListByFrontDoor
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/RulesEngineListResult'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        List Rules Engine Configurations in a Front Door:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                value:
                  - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                    name: rulesEngine1
                    properties:
                      rules:
                        - action:
                            routeConfigurationOverride:
                              '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                              customFragment: fragment
                              customHost: www.bing.com
                              customPath: /api
                              customQueryString: a=b
                              redirectProtocol: HttpsOnly
                              redirectType: Moved
                          matchConditions:
                            - rulesEngineMatchValue:
                                - CH
                              rulesEngineMatchVariable: RemoteAddr
                              rulesEngineOperator: GeoMatch
                          matchProcessingBehavior: Stop
                          name: Rule1
                          priority: 1
                        - action:
                            responseHeaderActions:
                              - headerActionType: Overwrite
                                headerName: Cache-Control
                                value: 'public, max-age=31536000'
                          matchConditions:
                            - rulesEngineMatchValue:
                                - jpg
                              rulesEngineMatchVariable: RequestFilenameExtension
                              rulesEngineOperator: Equal
                              transforms:
                                - Lowercase
                          name: Rule2
                          priority: 2
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/rulesEngines/{rulesEngineName}':
    delete:
      description: Deletes an existing Rules Engine Configuration with the specified parameters.
      operationId: RulesEngines_Delete
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/rulesEngineNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '202':
          description: Accepted. The request has been accepted for processing and the operation will complete asynchronously.
        '204':
          description: No Content. The request has been accepted but the Rules Engine Configuration was not found.
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Delete Rules Engine Configuration:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            rulesEngineName: rulesEngine1
            subscriptionId: subid
          responses:
            '202': {}
            '204': {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
    get:
      description: Gets a Rules Engine Configuration with the specified name within the specified Front Door.
      operationId: RulesEngines_Get
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/rulesEngineNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/RulesEngine'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Get Rules Engine Configuration:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            rulesEngineName: rulesEngine1
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                name: rulesEngine1
                properties:
                  rules:
                    - action:
                        routeConfigurationOverride:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                          customFragment: fragment
                          customHost: www.bing.com
                          customPath: /api
                          customQueryString: a=b
                          redirectProtocol: HttpsOnly
                          redirectType: Moved
                      matchConditions:
                        - rulesEngineMatchValue:
                            - CH
                          rulesEngineMatchVariable: RemoteAddr
                          rulesEngineOperator: GeoMatch
                      matchProcessingBehavior: Stop
                      name: Rule1
                      priority: 1
                    - action:
                        responseHeaderActions:
                          - headerActionType: Overwrite
                            headerName: Cache-Control
                            value: 'public, max-age=31536000'
                      matchConditions:
                        - rulesEngineMatchValue:
                            - jpg
                          rulesEngineMatchVariable: RequestFilenameExtension
                          rulesEngineOperator: Equal
                          transforms:
                            - Lowercase
                      name: Rule2
                      priority: 2
    put:
      description: Creates a new Rules Engine Configuration with the specified name within the specified Front Door.
      operationId: RulesEngines_CreateOrUpdate
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - $ref: '#/parameters/rulesEngineNameParameter'
        - description: Rules Engine Configuration properties needed to create a new Rules Engine Configuration.
          in: body
          name: rulesEngineParameters
          required: true
          schema:
            $ref: '#/definitions/RulesEngine'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/RulesEngine'
        '201':
          description: Created. The request has been fulfilled and a new RulesEngine has been created.
          schema:
            $ref: '#/definitions/RulesEngine'
        '202':
          description: Accepted. The request has been accepted for processing and the operation will complete asynchronously.
          schema:
            $ref: '#/definitions/RulesEngine'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        Create or update a specific Rules Engine Configuration:
          parameters:
            api-version: '2020-01-01'
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            rulesEngineName: rulesEngine1
            rulesEngineParameters:
              properties:
                rules:
                  - action:
                      routeConfigurationOverride:
                        '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                        customFragment: fragment
                        customHost: www.bing.com
                        customPath: /api
                        customQueryString: a=b
                        redirectProtocol: HttpsOnly
                        redirectType: Moved
                    matchConditions:
                      - rulesEngineMatchValue:
                          - CH
                        rulesEngineMatchVariable: RemoteAddr
                        rulesEngineOperator: GeoMatch
                    matchProcessingBehavior: Stop
                    name: Rule1
                    priority: 1
                  - action:
                      responseHeaderActions:
                        - headerActionType: Overwrite
                          headerName: Cache-Control
                          value: 'public, max-age=31536000'
                    matchConditions:
                      - rulesEngineMatchValue:
                          - jpg
                        rulesEngineMatchVariable: RequestFilenameExtension
                        rulesEngineOperator: Equal
                        transforms:
                          - Lowercase
                    name: Rule2
                    priority: 2
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                name: rulesEngine1
                properties:
                  rules:
                    - action:
                        routeConfigurationOverride:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                          customFragment: fragment
                          customHost: www.bing.com
                          customPath: /api
                          customQueryString: a=b
                          redirectProtocol: HttpsOnly
                          redirectType: Moved
                      matchConditions:
                        - rulesEngineMatchValue:
                            - CH
                          rulesEngineMatchVariable: RemoteAddr
                          rulesEngineOperator: GeoMatch
                      matchProcessingBehavior: Stop
                      name: Rule1
                      priority: 1
                    - action:
                        responseHeaderActions:
                          - headerActionType: Overwrite
                            headerName: Cache-Control
                            value: 'public, max-age=31536000'
                      matchConditions:
                        - rulesEngineMatchValue:
                            - jpg
                          rulesEngineMatchVariable: RequestFilenameExtension
                          rulesEngineOperator: Equal
                          transforms:
                            - Lowercase
                      name: Rule2
                      priority: 2
            '201':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                name: rulesEngine1
                properties:
                  rules:
                    - action:
                        routeConfigurationOverride:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                          customFragment: fragment
                          customHost: www.bing.com
                          customPath: /api
                          customQueryString: a=b
                          redirectProtocol: HttpsOnly
                          redirectType: Moved
                      matchConditions:
                        - rulesEngineMatchValue:
                            - CH
                          rulesEngineMatchVariable: RemoteAddr
                          rulesEngineOperator: GeoMatch
                      matchProcessingBehavior: Stop
                      name: Rule1
                      priority: 1
                    - action:
                        responseHeaderActions:
                          - headerActionType: Overwrite
                            headerName: Cache-Control
                            value: 'public, max-age=31536000'
                      matchConditions:
                        - rulesEngineMatchValue:
                            - jpg
                          rulesEngineMatchVariable: RequestFilenameExtension
                          rulesEngineOperator: Equal
                          transforms:
                            - Lowercase
                      name: Rule2
                      priority: 2
            '202':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1
                name: rulesEngine1
                properties:
                  rules:
                    - action:
                        routeConfigurationOverride:
                          '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
                          customFragment: fragment
                          customHost: www.bing.com
                          customPath: /api
                          customQueryString: a=b
                          redirectProtocol: HttpsOnly
                          redirectType: Moved
                      matchConditions:
                        - rulesEngineMatchValue:
                            - CH
                          rulesEngineMatchVariable: RemoteAddr
                          rulesEngineOperator: GeoMatch
                      matchProcessingBehavior: Stop
                      name: Rule1
                      priority: 1
                    - action:
                        responseHeaderActions:
                          - headerActionType: Overwrite
                            headerName: Cache-Control
                            value: 'public, max-age=31536000'
                      matchConditions:
                        - rulesEngineMatchValue:
                            - jpg
                          rulesEngineMatchVariable: FilenameExtension
                          rulesEngineOperator: Equal
                          transforms:
                            - Lowercase
                      name: Rule2
                      priority: 2
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/validateCustomDomain':
    post:
      description: Validates the custom domain mapping to ensure it maps to the correct Front Door endpoint in DNS.
      operationId: FrontDoors_ValidateCustomDomain
      parameters:
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
        - $ref: '#/parameters/resourceGroupNameParameter'
        - $ref: '#/parameters/frontDoorNameParameter'
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: Custom domain to be validated.
          in: body
          name: customDomainProperties
          required: true
          schema:
            $ref: '#/definitions/ValidateCustomDomainInput'
      responses:
        '200':
          description: OK. The request has succeeded.
          schema:
            $ref: '#/definitions/ValidateCustomDomainOutput'
        default:
          description: Front Door error response describing why the operation failed.
          schema:
            $ref: '#/definitions/ErrorResponse'
      tags:
        - FrontDoors
      x-ms-examples:
        FrontDoor_ValidateCustomDomain:
          parameters:
            api-version: '2020-01-01'
            customDomainProperties:
              hostName: www.someDomain.com
            frontDoorName: frontDoor1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                customDomainValidated: true
                message: null
                reason: null
definitions:
  Backend:
    description: Backend address of a frontDoor load balancer.
    properties:
      address:
        description: Location of the backend (IP address or FQDN)
        type: string
      backendHostHeader:
        description: 'The value to use as the host header sent to the backend. If blank or unspecified, this defaults to the incoming host.'
        type: string
      enabledState:
        description: Whether to enable use of this backend. Permitted values are 'Enabled' or 'Disabled'
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: backendEnabledState
      httpPort:
        description: The HTTP TCP port number. Must be between 1 and 65535.
        exclusiveMaximum: false
        exclusiveMinimum: false
        maximum: 65535
        minimum: 1
        type: integer
      httpsPort:
        description: The HTTPS TCP port number. Must be between 1 and 65535.
        exclusiveMaximum: false
        exclusiveMinimum: false
        maximum: 65535
        minimum: 1
        type: integer
      location:
        description: Region of the backend if it is in Azure. Mandatory field if backend is 'Private'
        type: string
      priority:
        description: Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy.
        maximum: 5
        minimum: 1
        type: integer
      privateLinkId:
        description: 'If this backend is private, provide the private link resource Id. Populating this optional field indicates that this backend is ''Private'''
        type: string
      weight:
        description: Weight of this endpoint for load balancing purposes.
        maximum: 1000
        minimum: 1
        type: integer
    type: object
  BackendPool:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: A backend pool is a collection of backends that can be routed to.
    properties:
      name:
        description: Resource name.
        type: string
      properties:
        $ref: '#/definitions/BackendPoolProperties'
        description: Properties of the Front Door Backend Pool
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
  BackendPoolListResult:
    description: Result of the request to list Backend Pools. It contains a list of Backend Pools objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of BackendPool objects if there are any.
        type: string
      value:
        description: List of Backend Pools within a Front Door.
        items:
          $ref: '#/definitions/BackendPool'
        readOnly: true
        type: array
  BackendPoolProperties:
    allOf:
      - $ref: '#/definitions/BackendPoolUpdateParameters'
    description: The JSON object that contains the properties required to create a Backend Pool.
    properties:
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  BackendPoolUpdateParameters:
    description: A collection of backends that can be routed to.
    properties:
      backends:
        description: The set of backends for this pool
        items:
          $ref: '#/definitions/Backend'
        type: array
      healthProbeSettings:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      loadBalancingSettings:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    type: object
  BackendPoolsSettings:
    description: Settings that apply to all backend pools.
    properties:
      enforceCertificateNameCheck:
        default: Enabled
        description: Whether to enforce certificate name check on HTTPS requests to all backend pools. No effect on non-HTTPS requests.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: enforceCertificateNameCheckEnabledState
      sendRecvTimeoutSeconds:
        description: 'Send and receive timeout on forwarding request to the backend. When timeout is reached, the request fails and returns.'
        exclusiveMinimum: false
        minimum: 16
        type: integer
    type: object
  CacheConfiguration:
    description: 'Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object.'
    properties:
      dynamicCompression:
        description: Whether to use dynamic compression for cached content
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: DynamicCompressionEnabled
      queryParameterStripDirective:
        description: Treatment of URL query terms when forming the cache key.
        enum:
          - StripNone
          - StripAll
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorQuery
    type: object
  CheckNameAvailabilityInput:
    description: Input of CheckNameAvailability API.
    properties:
      name:
        description: The resource name to validate.
        type: string
      type:
        $ref: '#/definitions/ResourceType'
        description: The type of the resource whose name is to be validated.
    required:
      - name
      - type
    type: object
  CheckNameAvailabilityOutput:
    description: Output of check name availability API.
    properties:
      message:
        description: The detailed error message describing why the name is not available.
        readOnly: true
        type: string
      nameAvailability:
        description: Indicates whether the name is available.
        enum:
          - Available
          - Unavailable
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: Availability
      reason:
        description: The reason why the name is not available.
        readOnly: true
        type: string
    type: object
  CustomHttpsConfiguration:
    description: Https settings for a domain
    properties:
      certificateSource:
        description: Defines the source of the SSL certificate
        enum:
          - AzureKeyVault
          - FrontDoor
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorCertificateSource
      frontDoorCertificateSourceParameters:
        $ref: '#/definitions/FrontDoorCertificateSourceParameters'
        description: Parameters required for enabling SSL with Front Door-managed certificates (if certificateSource=FrontDoor)
        x-ms-client-flatten: true
      keyVaultCertificateSourceParameters:
        $ref: '#/definitions/KeyVaultCertificateSourceParameters'
        description: KeyVault certificate source parameters (if certificateSource=AzureKeyVault)
        x-ms-client-flatten: true
      minimumTlsVersion:
        description: The minimum TLS version required from the clients to establish an SSL handshake with Front Door.
        enum:
          - '1.0'
          - '1.2'
        type: string
        x-ms-enum:
          modelAsString: true
          name: MinimumTLSVersion
      protocolType:
        description: Defines the TLS extension protocol that is used for secure delivery
        enum:
          - ServerNameIndication
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorTlsProtocolType
    required:
      - minimumTlsVersion
      - certificateSource
      - protocolType
    type: object
  ErrorResponse:
    description: Error response indicates Front Door service is not able to process the incoming request. The reason is provided in the error message.
    properties:
      code:
        description: Error code.
        readOnly: true
        type: string
      message:
        description: Error message indicating why the operation failed.
        readOnly: true
        type: string
    type: object
  ForwardingConfiguration:
    allOf:
      - $ref: '#/definitions/RouteConfiguration'
    description: Describes Forwarding Route.
    properties:
      backendPool:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      cacheConfiguration:
        $ref: '#/definitions/CacheConfiguration'
        description: The caching configuration associated with this rule.
      customForwardingPath:
        description: A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path.
        type: string
      forwardingProtocol:
        description: Protocol this rule will use when forwarding traffic to backends.
        enum:
          - HttpOnly
          - HttpsOnly
          - MatchRequest
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorForwardingProtocol
    x-ms-discriminator-value: '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
  FrontDoor:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            readOnly: true
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: Front Door represents a collection of backend endpoints to route traffic to along with rules that specify how traffic is sent there.
    properties:
      properties:
        $ref: '#/definitions/FrontDoorProperties'
        description: Properties of the Front Door Load Balancer
        x-ms-client-flatten: true
  FrontDoorCertificateSourceParameters:
    description: Parameters required for enabling SSL with Front Door-managed certificates
    properties:
      certificateType:
        description: Defines the type of the certificate used for secure connections to a frontendEndpoint
        enum:
          - Dedicated
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorCertificateType
    type: object
  FrontDoorListResult:
    description: Result of the request to list Front Doors. It contains a list of Front Door objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of Front Door objects if there are any.
        type: string
      value:
        description: List of Front Doors within a resource group.
        items:
          $ref: '#/definitions/FrontDoor'
        readOnly: true
        type: array
  FrontDoorProperties:
    allOf:
      - $ref: '#/definitions/FrontDoorUpdateParameters'
    description: The JSON object that contains the properties required to create an endpoint.
    properties:
      cname:
        description: The host that each frontendEndpoint must CNAME to.
        readOnly: true
        type: string
      frontdoorId:
        description: The Id of the frontdoor.
        readOnly: true
        type: string
      provisioningState:
        description: Provisioning state of the Front Door.
        readOnly: true
        type: string
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status of the Front Door.
      rulesEngines:
        description: Rules Engine Configurations available to routing rules.
        items:
          $ref: '#/definitions/RulesEngine'
          description: A rules engine configuration.
        readOnly: true
        type: array
  FrontDoorUpdateParameters:
    description: The properties needed to update a Front Door
    properties:
      backendPools:
        description: Backend pools available to routing rules.
        items:
          $ref: '#/definitions/BackendPool'
          description: A backend pool
        type: array
      backendPoolsSettings:
        $ref: '#/definitions/BackendPoolsSettings'
        description: Settings for all backendPools
      enabledState:
        description: Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorEnabledState
      friendlyName:
        description: A friendly name for the frontDoor
        type: string
      frontendEndpoints:
        description: Frontend endpoints available to routing rules.
        items:
          $ref: '#/definitions/FrontendEndpoint'
          description: A frontend endpoint
        type: array
      healthProbeSettings:
        description: Health probe settings associated with this Front Door instance.
        items:
          $ref: '#/definitions/HealthProbeSettingsModel'
          description: A health probe settings
        type: array
      loadBalancingSettings:
        description: Load balancing settings associated with this Front Door instance.
        items:
          $ref: '#/definitions/LoadBalancingSettingsModel'
          description: A load balancing settings
        type: array
      routingRules:
        description: Routing rules associated with this Front Door.
        items:
          $ref: '#/definitions/RoutingRule'
          description: A routing rule
        type: array
  FrontendEndpoint:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: A frontend endpoint used for routing.
    properties:
      name:
        description: Resource name.
        type: string
      properties:
        $ref: '#/definitions/FrontendEndpointProperties'
        description: Properties of the Frontend endpoint
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
  FrontendEndpointProperties:
    allOf:
      - $ref: '#/definitions/FrontendEndpointUpdateParameters'
    description: The JSON object that contains the properties required to create a frontend endpoint.
    properties:
      customHttpsConfiguration:
        $ref: '#/definitions/CustomHttpsConfiguration'
        description: The configuration specifying how to enable HTTPS
        readOnly: true
      customHttpsProvisioningState:
        description: Provisioning status of Custom Https of the frontendEndpoint.
        enum:
          - Enabling
          - Enabled
          - Disabling
          - Disabled
          - Failed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: CustomHttpsProvisioningState
      customHttpsProvisioningSubstate:
        description: Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step.
        enum:
          - SubmittingDomainControlValidationRequest
          - PendingDomainControlValidationREquestApproval
          - DomainControlValidationRequestApproved
          - DomainControlValidationRequestRejected
          - DomainControlValidationRequestTimedOut
          - IssuingCertificate
          - DeployingCertificate
          - CertificateDeployed
          - DeletingCertificate
          - CertificateDeleted
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: CustomHttpsProvisioningSubstate
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  FrontendEndpointUpdateParameters:
    description: Frontend endpoint used in routing rule
    properties:
      hostName:
        description: The host name of the frontendEndpoint. Must be a domain name.
        type: string
      sessionAffinityEnabledState:
        description: Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: SessionAffinityEnabledState
      sessionAffinityTtlSeconds:
        description: 'UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable.'
        type: integer
      webApplicationFirewallPolicyLink:
        description: Defines the Web Application Firewall policy for each host (if applicable)
        properties:
          id:
            description: Resource ID.
            type: string
        type: object
    type: object
  FrontendEndpointsListResult:
    description: Result of the request to list frontend endpoints. It contains a list of Frontend endpoint objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of frontend endpoints if there are any.
        type: string
      value:
        description: List of Frontend endpoints within a Front Door.
        items:
          $ref: '#/definitions/FrontendEndpoint'
        readOnly: true
        type: array
  HeaderAction:
    description: An action that can manipulate an http header.
    properties:
      headerActionType:
        description: Which type of manipulation to apply to the header.
        enum:
          - Append
          - Delete
          - Overwrite
        type: string
        x-ms-enum:
          modelAsString: true
          name: headerActionType
      headerName:
        description: The name of the header this action will apply to.
        type: string
      value:
        description: The value to update the given header name with. This value is not used if the actionType is Delete.
        type: string
    required:
      - headerActionType
      - headerName
  HealthProbeSettingsListResult:
    description: Result of the request to list HealthProbeSettings. It contains a list of HealthProbeSettings objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of HealthProbeSettings objects if there are any.
        type: string
      value:
        description: List of HealthProbeSettings within a Front Door.
        items:
          $ref: '#/definitions/HealthProbeSettingsModel'
        readOnly: true
        type: array
  HealthProbeSettingsModel:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: Load balancing settings for a backend pool
    properties:
      name:
        description: Resource name.
        type: string
      properties:
        $ref: '#/definitions/HealthProbeSettingsProperties'
        description: Properties of the health probe settings
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
  HealthProbeSettingsProperties:
    allOf:
      - $ref: '#/definitions/HealthProbeSettingsUpdateParameters'
    description: The JSON object that contains the properties required to create a health probe settings.
    properties:
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  HealthProbeSettingsUpdateParameters:
    description: L7 health probe settings for a backend pool
    properties:
      enabledState:
        description: Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: HealthProbeEnabled
      healthProbeMethod:
        default: HEAD
        description: Configures which HTTP method to use to probe the backends defined under backendPools.
        enum:
          - GET
          - HEAD
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorHealthProbeMethod
      intervalInSeconds:
        description: The number of seconds between health probes.
        type: integer
      path:
        description: The path to use for the health probe. Default is /
        type: string
      protocol:
        description: Protocol scheme to use for this probe
        enum:
          - Http
          - Https
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorProtocol
    type: object
  KeyVaultCertificateSourceParameters:
    description: Parameters required for bring-your-own-certification via Key Vault
    properties:
      secretName:
        description: The name of the Key Vault secret representing the full certificate PFX
        type: string
      secretVersion:
        description: The version of the Key Vault secret representing the full certificate PFX
        type: string
      vault:
        description: The Key Vault containing the SSL certificate
        properties:
          id:
            description: Resource ID.
            type: string
        type: object
    type: object
  LoadBalancingSettingsListResult:
    description: Result of the request to list load balancing settings. It contains a list of load balancing settings objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of LoadBalancingSettings objects if there are any.
        type: string
      value:
        description: List of Backend Pools within a Front Door.
        items:
          $ref: '#/definitions/LoadBalancingSettingsModel'
        readOnly: true
        type: array
  LoadBalancingSettingsModel:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: Load balancing settings for a backend pool
    properties:
      name:
        description: Resource name.
        type: string
      properties:
        $ref: '#/definitions/LoadBalancingSettingsProperties'
        description: Properties of the load balancing settings
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
  LoadBalancingSettingsProperties:
    allOf:
      - $ref: '#/definitions/LoadBalancingSettingsUpdateParameters'
    description: The JSON object that contains the properties required to create load balancing settings
    properties:
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  LoadBalancingSettingsUpdateParameters:
    description: Round-Robin load balancing settings for a backend pool
    properties:
      additionalLatencyMilliseconds:
        description: The additional latency in milliseconds for probes to fall into the lowest latency bucket
        type: integer
      sampleSize:
        description: The number of samples to consider for load balancing decisions
        type: integer
      successfulSamplesRequired:
        description: The number of samples within the sample period that must succeed
        type: integer
    type: object
  PurgeParameters:
    description: Parameters required for content purge.
    properties:
      contentPaths:
        description: The path to the content to be purged. Can describe a file path or a wild card directory.
        items:
          type: string
        type: array
    required:
      - contentPaths
    type: object
  RedirectConfiguration:
    allOf:
      - $ref: '#/definitions/RouteConfiguration'
    description: Describes Redirect Route.
    properties:
      customFragment:
        description: 'Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #.'
        type: string
      customHost:
        description: Host to redirect. Leave empty to use the incoming host as the destination host.
        type: string
      customPath:
        description: The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path.
        type: string
      customQueryString:
        description: 'The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in <key>=<value> format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &.'
        type: string
      redirectProtocol:
        description: The protocol of the destination to where the traffic is redirected
        enum:
          - HttpOnly
          - HttpsOnly
          - MatchRequest
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorRedirectProtocol
      redirectType:
        description: The redirect type the rule will use when redirecting traffic.
        enum:
          - Moved
          - Found
          - TemporaryRedirect
          - PermanentRedirect
        type: string
        x-ms-enum:
          modelAsString: true
          name: FrontDoorRedirectType
    x-ms-discriminator-value: '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
  ResourceState:
    enum:
      - Creating
      - Enabling
      - Enabled
      - Disabling
      - Disabled
      - Deleting
    readOnly: true
    title: Resource status of the Front Door or Front Door SubResource.
    type: string
    x-ms-enum:
      modelAsString: true
      name: FrontDoorResourceState
  ResourceType:
    description: Type of Front Door resource used in CheckNameAvailability.
    enum:
      - Microsoft.Network/frontDoors
      - Microsoft.Network/frontDoors/frontendEndpoints
    type: string
    x-ms-enum:
      modelAsString: false
      name: ResourceType
  RouteConfiguration:
    description: Base class for all types of Route.
    discriminator: '@odata.type'
    properties:
      '@odata.type':
        type: string
    required:
      - '@odata.type'
  RoutingRule:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: 'A routing rule represents a specification for traffic to treat and where to send it, along with health probe information.'
    properties:
      name:
        description: Resource name.
        type: string
      properties:
        $ref: '#/definitions/RoutingRuleProperties'
        description: Properties of the Front Door Routing Rule
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
  RoutingRuleListResult:
    description: Result of the request to list Routing Rules. It contains a list of Routing Rule objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of RoutingRule objects if there are any.
        type: string
      value:
        description: List of Routing Rules within a Front Door.
        items:
          $ref: '#/definitions/RoutingRule'
        readOnly: true
        type: array
  RoutingRuleProperties:
    allOf:
      - $ref: '#/definitions/RoutingRuleUpdateParameters'
    description: The JSON object that contains the properties required to create a routing rule.
    properties:
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  RoutingRuleUpdateParameters:
    description: Routing rules to apply to an endpoint
    properties:
      acceptedProtocols:
        description: Protocol schemes to match for this rule
        items:
          description: Accepted protocol schemes.
          enum:
            - Http
            - Https
          type: string
          x-ms-enum:
            modelAsString: true
            name: FrontDoorProtocol
        type: array
      enabledState:
        description: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: routingRuleEnabledState
      frontendEndpoints:
        description: Frontend endpoints associated with this rule
        items:
          description: Reference to another subresource.
          properties:
            id:
              description: Resource ID.
              type: string
          x-ms-azure-resource: true
        type: array
      patternsToMatch:
        description: The route patterns of the rule.
        items:
          description: A route pattern of the rule. Must not have any * except possibly after the final / at the end of the path.
          type: string
        type: array
      routeConfiguration:
        $ref: '#/definitions/RouteConfiguration'
        description: A reference to the routing configuration.
      rulesEngine:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    type: object
  RulesEngine:
    description: A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response.
    properties:
      id:
        description: Resource ID.
        readOnly: true
        type: string
      name:
        description: Resource name.
        readOnly: true
        type: string
      properties:
        $ref: '#/definitions/RulesEngineProperties'
        description: Properties of the Rules Engine Configuration.
        x-ms-client-flatten: true
      type:
        description: Resource type.
        readOnly: true
        type: string
    x-ms-azure-resource: true
  RulesEngineAction:
    description: 'One or more actions that will execute, modifying the request and/or response.'
    properties:
      requestHeaderActions:
        description: A list of header actions to apply from the request from AFD to the origin.
        items:
          $ref: '#/definitions/HeaderAction'
        type: array
      responseHeaderActions:
        description: A list of header actions to apply from the response from AFD to the client.
        items:
          $ref: '#/definitions/HeaderAction'
        type: array
      routeConfigurationOverride:
        $ref: '#/definitions/RouteConfiguration'
        description: Override the route configuration.
  RulesEngineListResult:
    description: Result of the request to list Rules Engine Configurations. It contains a list of RulesEngine objects and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of RulesEngine objects if there are any.
        type: string
      value:
        description: List of rulesEngines within a Front Door.
        items:
          $ref: '#/definitions/RulesEngine'
        readOnly: true
        type: array
  RulesEngineMatchCondition:
    description: Define a match condition
    properties:
      negateCondition:
        description: Describes if this is negate condition or not
        type: boolean
      rulesEngineMatchValue:
        description: Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match.
        items:
          type: string
        type: array
      rulesEngineMatchVariable:
        description: Match Variable
        enum:
          - IsMobile
          - RemoteAddr
          - RequestMethod
          - QueryString
          - PostArgs
          - RequestUri
          - RequestPath
          - RequestFilename
          - RequestFilenameExtension
          - RequestHeader
          - RequestBody
          - RequestScheme
        type: string
        x-ms-enum:
          modelAsString: true
          name: RulesEngineMatchVariable
      rulesEngineOperator:
        description: Describes operator to apply to the match condition.
        enum:
          - Any
          - IPMatch
          - GeoMatch
          - Equal
          - Contains
          - LessThan
          - GreaterThan
          - LessThanOrEqual
          - GreaterThanOrEqual
          - BeginsWith
          - EndsWith
        type: string
        x-ms-enum:
          modelAsString: true
          name: RulesEngineOperator
      selector:
        description: Name of selector in RequestHeader or RequestBody to be matched
        type: string
      transforms:
        description: List of transforms
        items:
          $ref: '#/definitions/transform'
        type: array
    required:
      - rulesEngineMatchVariable
      - rulesEngineOperator
      - rulesEngineMatchValue
  RulesEngineProperties:
    allOf:
      - $ref: '#/definitions/RulesEngineUpdateParameters'
    description: The JSON object that contains the properties required to create a Rules Engine Configuration.
    properties:
      resourceState:
        $ref: '#/definitions/ResourceState'
        description: Resource status.
  RulesEngineRule:
    description: 'Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation.'
    properties:
      action:
        $ref: '#/definitions/RulesEngineAction'
        description: Actions to perform on the request and response if all of the match conditions are met.
      matchConditions:
        description: A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run.
        items:
          $ref: '#/definitions/RulesEngineMatchCondition'
        type: array
      matchProcessingBehavior:
        description: 'If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue.'
        enum:
          - Continue
          - Stop
        type: string
        x-ms-enum:
          modelAsString: true
          name: MatchProcessingBehavior
      name:
        description: A name to refer to this specific rule.
        type: string
      priority:
        description: 'A priority assigned to this rule. '
        type: integer
    required:
      - action
      - name
      - priority
  RulesEngineUpdateParameters:
    description: Rules Engine Configuration to apply to a Routing Rule.
    properties:
      rules:
        description: A list of rules that define a particular Rules Engine Configuration.
        items:
          $ref: '#/definitions/RulesEngineRule'
        type: array
    type: object
  ValidateCustomDomainInput:
    description: Input of the custom domain to be validated for DNS mapping.
    properties:
      hostName:
        description: The host name of the custom domain. Must be a domain name.
        type: string
    required:
      - hostName
    type: object
  ValidateCustomDomainOutput:
    description: Output of custom domain validation.
    properties:
      customDomainValidated:
        description: Indicates whether the custom domain is valid or not.
        readOnly: true
        type: boolean
      message:
        description: Error message describing why the custom domain is not valid.
        readOnly: true
        type: string
      reason:
        description: The reason why the custom domain is not valid.
        readOnly: true
        type: string
    type: object
  transform:
    description: Describes what transforms are applied before matching
    enum:
      - Lowercase
      - Uppercase
      - Trim
      - UrlDecode
      - UrlEncode
      - RemoveNulls
    type: string
    x-ms-enum:
      modelAsString: true
      name: transform
