swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.
  title: NetworkManagementClient
  version: 2019-07-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/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/network/resource-manager/Microsoft.Network/stable/2019-07-01/firewallPolicy.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: network-firewallPolicy
  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
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.Network/firewallPolicies":
    get:
      description: Gets all the Firewall Policies in a subscription.
      operationId: FirewallPolicies_ListAll
      parameters:
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Success. The operation returns a list of FirewallPolicy resources.
          schema:
            $ref: "#/definitions/FirewallPolicyListResult"
      tags:
        - FirewallPolicies
      x-ms-examples:
        List all Firewall Policies for a given subscription:
          parameters:
            api-version: 2019-07-01
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: w/\00000000-0000-0000-0000-000000000000\
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                    location: West US
                    name: firewallPolicy
                    properties:
                      firewalls: []
                      provisioningState: Succeeded
                      ruleGroups:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                      threatIntelMode: Alert
                    tags:
                      key1: value1
                    type: Microsoft.Network/firewallPolicies
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies":
    get:
      description: Lists all Firewall Policies in a resource group.
      operationId: FirewallPolicies_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Success. The operation returns a list of FirewallPolicy resources.
          schema:
            $ref: "#/definitions/FirewallPolicyListResult"
      tags:
        - FirewallPolicies
      x-ms-examples:
        List all Firewall Policies for a given resource group:
          parameters:
            api-version: 2019-07-01
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: w/\00000000-0000-0000-0000-000000000000\
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                    location: West US
                    name: firewallPolicy
                    properties:
                      firewalls: []
                      provisioningState: Succeeded
                      ruleGroups:
                        - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                      threatIntelMode: Alert
                    tags:
                      key1: value1
                    type: Microsoft.Network/firewallPolicies
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}":
    delete:
      description: Deletes the specified Firewall Policy.
      operationId: FirewallPolicies_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Delete successful.
        "202":
          description: Accepted and the operation will complete asynchronously.
        "204":
          description: Request successful. Resource with the specified name does not exist.
      tags:
        - FirewallPolicies
      x-ms-examples:
        Delete Firewall Policy:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified Firewall Policy.
      operationId: FirewallPolicies_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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: Expands referenced resources.
          in: query
          name: $expand
          required: false
          type: string
      responses:
        "200":
          description: Request successful. The operation returns a Firewall Policy resource.
          schema:
            $ref: "#/definitions/FirewallPolicy"
      tags:
        - FirewallPolicies
      x-ms-examples:
        Get FirewallPolicy:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                location: West US
                name: firewallPolicy
                properties:
                  firewalls: []
                  provisioningState: Succeeded
                  ruleGroups:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                  threatIntelMode: Alert
                tags:
                  key1: value1
                type: Microsoft.Network/firewallPolicies
    patch:
      description: Updates a Firewall Policy Tags.
      operationId: FirewallPolicies_UpdateTags
      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: The resource group name of the Firewall Policy.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy being updated.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: Parameters supplied to Update Firewall Policy tags.
          in: body
          name: firewallPolicyParameters
          required: true
          schema:
            description: Tags object for patch operations.
            properties:
              tags:
                additionalProperties:
                  type: string
                description: Resource tags.
                type: object
      responses:
        "200":
          description: Request successful. Returns the details of the Firewall Policy updated.
          schema:
            $ref: "#/definitions/FirewallPolicy"
        default:
          description: Error.
          schema:
            description: Common error representation.
            properties:
              code:
                description: Error code.
                type: string
              details:
                description: Error details.
                items:
                  description: Common error details representation.
                  properties:
                    code:
                      description: Error code.
                      type: string
                    message:
                      description: Error message.
                      type: string
                    target:
                      description: Error target.
                      type: string
                type: array
              innerError:
                description: Inner error message.
                type: string
              message:
                description: Error message.
                type: string
              target:
                description: Error target.
                type: string
      tags:
        - FirewallPolicies
      x-ms-examples:
        Update FirewallPolicy:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            firewallPolicyParameters:
              tags:
                key1: value1
                key2: value2
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                location: West US
                name: firewallPolicy
                properties:
                  provisioningState: Succeeded
                  threatIntelMode: Deny
                tags:
                  key1: value1
                  key2: value2
                type: Microsoft.Network/firewallPolicies
    put:
      description: Creates or updates the specified Firewall Policy.
      operationId: FirewallPolicies_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: Parameters supplied to the create or update Firewall Policy operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/FirewallPolicy"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Request successful. The operation returns the resulting FirewallPolicy resource.
          schema:
            $ref: "#/definitions/FirewallPolicy"
        "201":
          description: Request received successfully. The operation returns the resulting FirewallPolicy resource.
          schema:
            $ref: "#/definitions/FirewallPolicy"
      tags:
        - FirewallPolicies
      x-ms-examples:
        Create FirewallPolicy:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            parameters:
              location: West US
              properties:
                threatIntelMode: Alert
              tags:
                key1: value1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                location: West US
                name: firewallPolicy
                properties:
                  firewalls: []
                  provisioningState: Succeeded
                  ruleGroups:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/rulegroup1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/rulegroup2
                  threatIntelMode: Alert
                tags:
                  key1: value1
                type: Microsoft.Network/firewallPolicies
            "201":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                location: West US
                name: firewallPolicy
                properties:
                  firewalls: []
                  provisioningState: Succeeded
                  ruleGroups:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/rulegroup2
                  threatIntelMode: Alert
                tags:
                  key1: value1
                type: Microsoft.Network/firewallPolicies
      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/firewallPolicies/{firewallPolicyName}/ruleGroups":
    get:
      description: Lists all FirewallPolicyRuleGroups in a FirewallPolicy resource.
      operationId: FirewallPolicyRuleGroups_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Success. The operation returns a list of FirewallPolicyRuleGroup resources.
          schema:
            $ref: "#/definitions/FirewallPolicyRuleGroupListResult"
      tags:
        - FirewallPolicyRuleGroups
      x-ms-examples:
        List all FirewallPolicyRuleGroups for a given FirewallPolicy:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: W/"72090554-7e3b-43f2-80ad-99a9020dcb11"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                    name: ruleGroup1
                    properties:
                      priority: 110
                      provisioningState: Succeeded
                      rules:
                        - action:
                            type: Deny
                          name: Example-Filter-Rule
                          priority: 120
                          ruleConditions:
                            - description: Network rule condition
                              destinationAddresses:
                                - "*"
                              destinationPorts:
                                - "*"
                              ipProtocols:
                                - TCP
                              name: network-condition-1
                              ruleConditionType: NetworkRuleCondition
                              sourceAddresses:
                                - 10.1.25.0/24
                          ruleType: FirewallPolicyFilterRule
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleGroups/{ruleGroupName}":
    delete:
      description: Deletes the specified FirewallPolicyRuleGroup.
      operationId: FirewallPolicyRuleGroups_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: The name of the FirewallPolicyRuleGroup.
          in: path
          name: ruleGroupName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Delete successful.
        "202":
          description: Accepted and the operation will complete asynchronously.
        "204":
          description: Request successful. Resource with the specified name does not exist.
      tags:
        - FirewallPolicyRuleGroups
      x-ms-examples:
        Delete FirewallPolicyRuleGroup:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            resourceGroupName: rg1
            ruleGroupName: ruleGroup1
            subscriptionId: subid
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified FirewallPolicyRuleGroup.
      operationId: FirewallPolicyRuleGroups_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: The name of the FirewallPolicyRuleGroup.
          in: path
          name: ruleGroupName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Request successful. The operation returns a FirewallPolicyRuleGroup resource.
          schema:
            $ref: "#/definitions/FirewallPolicyRuleGroup"
      tags:
        - FirewallPolicyRuleGroups
      x-ms-examples:
        Get FirewallPolicyRuleGroup:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            resourceGroupName: rg1
            ruleGroupName: ruleGroup1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: W/"72090554-7e3b-43f2-80ad-99a9020dcb11"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                name: ruleGroup1
                properties:
                  priority: 110
                  provisioningState: Succeeded
                  rules:
                    - action:
                        type: Deny
                      name: Example-Filter-Rule
                      priority: 200
                      ruleConditions:
                        - destinationAddresses:
                            - "*"
                          destinationPorts:
                            - "*"
                          ipProtocols:
                            - TCP
                          name: network-condition1
                          ruleConditionType: NetworkRuleCondition
                          sourceAddresses:
                            - 10.1.25.0/24
                      ruleType: FirewallPolicyFilterRule
    put:
      description: Creates or updates the specified FirewallPolicyRuleGroup.
      operationId: FirewallPolicyRuleGroups_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Firewall Policy.
          in: path
          name: firewallPolicyName
          required: true
          type: string
        - description: The name of the FirewallPolicyRuleGroup.
          in: path
          name: ruleGroupName
          required: true
          type: string
        - description: Parameters supplied to the create or update FirewallPolicyRuleGroup operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/FirewallPolicyRuleGroup"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - 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
      responses:
        "200":
          description: Request successful. The operation returns the resulting FirewallPolicyRuleGroup resource.
          schema:
            $ref: "#/definitions/FirewallPolicyRuleGroup"
        "201":
          description: Request received successfully. The operation returns the resulting FirewallPolicyRuleGroup resource.
          schema:
            $ref: "#/definitions/FirewallPolicyRuleGroup"
      tags:
        - FirewallPolicyRuleGroups
      x-ms-examples:
        Create FirewallPolicyRuleGroup:
          parameters:
            api-version: 2019-07-01
            firewallPolicyName: firewallPolicy
            parameters:
              properties:
                priority: 110
                rules:
                  - action:
                      type: Deny
                    name: Example-Filter-Rule
                    ruleConditions:
                      - destinationAddresses:
                          - "*"
                        destinationPorts:
                          - "*"
                        ipProtocols:
                          - TCP
                        name: network-condition1
                        ruleConditionType: NetworkRuleCondition
                        sourceAddresses:
                          - 10.1.25.0/24
                    ruleType: FirewallPolicyFilterRule
            resourceGroupName: rg1
            ruleGroupName: ruleGroup1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1
                name: ruleGroup1
                properties:
                  priority: 110
                  provisioningState: Succeeded
                  rules:
                    - action:
                        type: Deny
                      name: Example-Filter-Rule
                      ruleConditions:
                        - destinationAddresses:
                            - "*"
                          destinationPorts:
                            - "*"
                          ipProtocols:
                            - TCP
                          name: network-condition1
                          ruleConditionType: NetworkRuleCondition
                          sourceAddresses:
                            - 10.1.25.0/24
                      ruleType: FirewallPolicyFilterRule
            "201":
              body:
                etag: w/\00000000-0000-0000-0000-000000000000\
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy
                name: firewallPolicy
                properties:
                  priority: 110
                  provisioningState: Succeeded
                  rules:
                    - action:
                        type: Deny
                      name: Example-Filter-Rule
                      ruleConditions:
                        - destinationAddresses:
                            - "*"
                          destinationPorts:
                            - "*"
                          ipProtocols:
                            - TCP
                          name: network-condition1
                          ruleConditionType: NetworkRuleCondition
                          sourceAddresses:
                            - 10.1.25.0/24
                      ruleType: FirewallPolicyFilterRule
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
definitions:
  ApplicationRuleCondition:
    allOf:
      - $ref: "#/definitions/FirewallPolicyRuleCondition"
    description: Rule condition of type application.
    properties:
      destinationAddresses:
        description: List of destination IP addresses or Service Tags.
        items:
          type: string
        type: array
      fqdnTags:
        description: List of FQDN Tags for this rule condition.
        items:
          type: string
        type: array
      protocols:
        description: Array of Application Protocols.
        items:
          $ref: "#/definitions/FirewallPolicyRuleConditionApplicationProtocol"
        type: array
      sourceAddresses:
        description: List of source IP addresses for this rule.
        items:
          type: string
        type: array
      targetFqdns:
        description: List of FQDNs for this rule condition.
        items:
          type: string
        type: array
    x-ms-discriminator-value: ApplicationRuleCondition
  FirewallPolicy:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            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: FirewallPolicy Resource.
    properties:
      etag:
        description: A unique read-only string that changes whenever the resource is updated.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/FirewallPolicyPropertiesFormat"
        description: Properties of the firewall policy.
        x-ms-client-flatten: true
  FirewallPolicyFilterRule:
    allOf:
      - $ref: "#/definitions/FirewallPolicyRule"
    description: Firewall Policy Filter Rule.
    properties:
      action:
        $ref: "#/definitions/FirewallPolicyFilterRuleAction"
        description: The action type of a Filter rule.
      ruleConditions:
        description: Collection of rule conditions used by a rule.
        items:
          $ref: "#/definitions/FirewallPolicyRuleCondition"
        type: array
    x-ms-discriminator-value: FirewallPolicyFilterRule
  FirewallPolicyFilterRuleAction:
    description: Properties of the FirewallPolicyFilterRuleAction.
    properties:
      type:
        $ref: "#/definitions/FirewallPolicyFilterRuleActionType"
        description: The type of action.
  FirewallPolicyFilterRuleActionType:
    description: The action type of a rule.
    enum:
      - Allow
      - Deny
      - "Alert "
    type: string
    x-ms-enum:
      modelAsString: true
      name: FirewallPolicyFilterRuleActionType
  FirewallPolicyListResult:
    description: Response for ListFirewallPolicies API service call.
    properties:
      nextLink:
        description: URL to get the next set of results.
        type: string
      value:
        description: List of Firewall Policies in a resource group.
        items:
          $ref: "#/definitions/FirewallPolicy"
        type: array
  FirewallPolicyNatRule:
    allOf:
      - $ref: "#/definitions/FirewallPolicyRule"
    description: Firewall Policy NAT Rule.
    properties:
      action:
        $ref: "#/definitions/FirewallPolicyNatRuleAction"
        description: The action type of a Nat rule.
      ruleCondition:
        $ref: "#/definitions/FirewallPolicyRuleCondition"
        description: The match conditions for incoming traffic.
      translatedAddress:
        description: The translated address for this NAT rule.
        type: string
      translatedPort:
        description: The translated port for this NAT rule.
        type: string
    x-ms-discriminator-value: FirewallPolicyNatRule
  FirewallPolicyNatRuleAction:
    description: Properties of the FirewallPolicyNatRuleAction.
    properties:
      type:
        $ref: "#/definitions/FirewallPolicyNatRuleActionType"
        description: The type of action.
  FirewallPolicyNatRuleActionType:
    description: The action type of a rule.
    enum:
      - DNAT
      - SNAT
    type: string
    x-ms-enum:
      modelAsString: true
      name: FirewallPolicyNatRuleActionType
  FirewallPolicyPropertiesFormat:
    description: Firewall Policy definition.
    properties:
      basePolicy:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      childPolicies:
        description: List of references to Child Firewall Policies.
        items:
          description: Reference to another subresource.
          properties:
            id:
              description: Resource ID.
              type: string
          x-ms-azure-resource: true
        readOnly: true
        type: array
      firewalls:
        description: List of references to Azure Firewalls that this Firewall Policy is associated with.
        items:
          description: Reference to another subresource.
          properties:
            id:
              description: Resource ID.
              type: string
          x-ms-azure-resource: true
        readOnly: true
        type: array
      provisioningState:
        description: The current provisioning state.
        enum:
          - Succeeded
          - Updating
          - Deleting
          - Failed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProvisioningState
      ruleGroups:
        description: List of references to FirewallPolicyRuleGroups.
        items:
          description: Reference to another subresource.
          properties:
            id:
              description: Resource ID.
              type: string
          x-ms-azure-resource: true
        readOnly: true
        type: array
      threatIntelMode:
        description: The operation mode for Threat Intel.
        enum:
          - Alert
          - Deny
          - Off
        type: string
        x-ms-enum:
          modelAsString: true
          name: AzureFirewallThreatIntelMode
  FirewallPolicyRule:
    description: Properties of the rule.
    discriminator: ruleType
    properties:
      name:
        description: The name of the rule.
        type: string
      priority:
        description: Priority of the Firewall Policy Rule resource.
        exclusiveMaximum: false
        exclusiveMinimum: false
        format: int32
        maximum: 65000
        minimum: 100
        type: integer
      ruleType:
        description: The type of the rule.
        enum:
          - FirewallPolicyNatRule
          - FirewallPolicyFilterRule
        type: string
        x-ms-enum:
          modelAsString: true
          name: FirewallPolicyRuleType
    required:
      - ruleType
  FirewallPolicyRuleCondition:
    description: Properties of a rule.
    discriminator: ruleConditionType
    properties:
      description:
        description: Description of the rule condition.
        type: string
      name:
        description: Name of the rule condition.
        type: string
      ruleConditionType:
        description: Rule Condition Type.
        enum:
          - ApplicationRuleCondition
          - NetworkRuleCondition
        type: string
        x-ms-enum:
          modelAsString: true
          name: FirewallPolicyRuleConditionType
    required:
      - ruleConditionType
  FirewallPolicyRuleConditionApplicationProtocol:
    description: Properties of the application rule protocol.
    properties:
      port:
        description: Port number for the protocol, cannot be greater than 64000.
        exclusiveMaximum: false
        exclusiveMinimum: false
        format: int32
        maximum: 64000
        minimum: 0
        type: integer
      protocolType:
        $ref: "#/definitions/FirewallPolicyRuleConditionApplicationProtocolType"
        description: Protocol type.
  FirewallPolicyRuleConditionApplicationProtocolType:
    description: The application protocol type of a Rule condition.
    enum:
      - Http
      - Https
    type: string
    x-ms-enum:
      modelAsString: true
      name: FirewallPolicyRuleConditionApplicationProtocolType
  FirewallPolicyRuleConditionNetworkProtocol:
    description: The Network protocol of a Rule condition.
    enum:
      - TCP
      - UDP
      - Any
      - ICMP
    type: string
    x-ms-enum:
      modelAsString: true
      name: FirewallPolicyRuleConditionNetworkProtocol
  FirewallPolicyRuleGroup:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: Rule Group resource.
    properties:
      etag:
        description: A unique read-only string that changes whenever the resource is updated.
        readOnly: true
        type: string
      name:
        description: The name of the resource that is unique within a resource group. This name can be used to access the resource.
        type: string
      properties:
        $ref: "#/definitions/FirewallPolicyRuleGroupProperties"
        description: The properties of the firewall policy rule group.
        x-ms-client-flatten: true
      type:
        description: Rule Group type.
        readOnly: true
        type: string
  FirewallPolicyRuleGroupListResult:
    description: Response for ListFirewallPolicyRuleGroups API service call.
    properties:
      nextLink:
        description: URL to get the next set of results.
        type: string
      value:
        description: List of FirewallPolicyRuleGroups in a FirewallPolicy.
        items:
          $ref: "#/definitions/FirewallPolicyRuleGroup"
        type: array
  FirewallPolicyRuleGroupProperties:
    description: Properties of the rule group.
    properties:
      priority:
        description: Priority of the Firewall Policy Rule Group resource.
        exclusiveMaximum: false
        exclusiveMinimum: false
        format: int32
        maximum: 65000
        minimum: 100
        type: integer
      provisioningState:
        description: The current provisioning state.
        enum:
          - Succeeded
          - Updating
          - Deleting
          - Failed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProvisioningState
      rules:
        description: Group of Firewall Policy rules.
        items:
          $ref: "#/definitions/FirewallPolicyRule"
        type: array
  NetworkRuleCondition:
    allOf:
      - $ref: "#/definitions/FirewallPolicyRuleCondition"
    description: Rule condition of type network.
    properties:
      destinationAddresses:
        description: List of destination IP addresses or Service Tags.
        items:
          type: string
        type: array
      destinationPorts:
        description: List of destination ports.
        items:
          type: string
        type: array
      ipProtocols:
        description: Array of FirewallPolicyRuleConditionNetworkProtocols.
        items:
          $ref: "#/definitions/FirewallPolicyRuleConditionNetworkProtocol"
        type: array
      sourceAddresses:
        description: List of source IP addresses for this rule.
        items:
          type: string
        type: array
    x-ms-discriminator-value: NetworkRuleCondition
