{
  "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-06-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-06-01/firewallPolicy.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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": "Gets 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, SNAT or DNAT"
        },
        "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": "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": "Gets a unique read-only string that changes whenever the resource is updated.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Gets 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"
    }
  }
}