{
  "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": "2018-04-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/2018-04-01/azureFirewall.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "network-azureFirewall",
    "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/azureFirewalls": {
      "get": {
        "description": "Gets all the Azure Firewalls in a subscription.",
        "operationId": "AzureFirewalls_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 AzureFirewall resources.",
            "schema": {
              "$ref": "#/definitions/AzureFirewallListResult"
            }
          }
        },
        "tags": [
          "AzureFirewalls"
        ],
        "x-ms-examples": {
          "List all Azure Firewalls for a given subscription": {
            "parameters": {
              "api-version": "2018-04-01",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
                      "location": "West US",
                      "name": "azurefirewall",
                      "properties": {
                        "applicationRuleCollections": [
                          {
                            "name": "apprulecoll",
                            "properties": {
                              "action": {
                                "type": "Deny"
                              },
                              "priority": 110,
                              "rules": [
                                {
                                  "description": "Deny inbound rule",
                                  "name": "rule1",
                                  "protocols": [
                                    {
                                      "port": 443,
                                      "protocolType": "Https"
                                    }
                                  ],
                                  "sourceAddresses": [
                                    "216.58.216.164",
                                    "10.0.0.0/24"
                                  ],
                                  "targetUrls": [
                                    "www.test.com"
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "ipConfigurations": [
                          {
                            "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
                            "name": "azureFirewallIpConfiguration",
                            "properties": {
                              "privateIPAddress": "10.0.0.0",
                              "provisioningState": "Succeeded",
                              "publicIPAddress": {
                                "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                              },
                              "subnet": {
                                "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                              }
                            }
                          }
                        ],
                        "networkRuleCollections": [
                          {
                            "name": "netrulecoll",
                            "properties": {
                              "action": {
                                "type": "Deny"
                              },
                              "priority": 112,
                              "rules": [
                                {
                                  "description": "D-NAT all outbound web traffic for inspection",
                                  "destinationAddresses": [
                                    "*"
                                  ],
                                  "destinationPorts": [
                                    "443-444",
                                    "8443"
                                  ],
                                  "name": "D-NAT-web-traffic",
                                  "protocols": [
                                    "TCP",
                                    "ICMP"
                                  ],
                                  "sourceAddresses": [
                                    "192.168.1.1-192.168.1.12",
                                    "10.1.4.12-10.1.4.255"
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "provisioningState": "Succeeded"
                      },
                      "tags": {
                        "key1": "value1"
                      },
                      "type": "Microsoft.Network/azureFirewalls"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/azureFirewalls": {
      "get": {
        "description": "Lists all Azure Firewalls in a resource group.",
        "operationId": "AzureFirewalls_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 AzureFirewall resources.",
            "schema": {
              "$ref": "#/definitions/AzureFirewallListResult"
            }
          }
        },
        "tags": [
          "AzureFirewalls"
        ],
        "x-ms-examples": {
          "List all Azure Firewalls for a given resource group": {
            "parameters": {
              "api-version": "2018-04-01",
              "resourceGroupName": "rg1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
                      "location": "West US",
                      "name": "azurefirewall",
                      "properties": {
                        "applicationRuleCollections": [
                          {
                            "name": "apprulecoll",
                            "properties": {
                              "action": {
                                "type": "Deny"
                              },
                              "priority": 110,
                              "rules": [
                                {
                                  "description": "Deny inbound rule",
                                  "name": "rule1",
                                  "protocols": [
                                    {
                                      "port": 443,
                                      "protocolType": "Https"
                                    }
                                  ],
                                  "sourceAddresses": [
                                    "216.58.216.164",
                                    "10.0.0.0/24"
                                  ],
                                  "targetUrls": [
                                    "www.test.com"
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "ipConfigurations": [
                          {
                            "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
                            "name": "azureFirewallIpConfiguration",
                            "properties": {
                              "privateIPAddress": "10.0.0.0",
                              "provisioningState": "Succeeded",
                              "publicIPAddress": {
                                "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                              },
                              "subnet": {
                                "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                              }
                            }
                          }
                        ],
                        "networkRuleCollections": [
                          {
                            "name": "netrulecoll",
                            "properties": {
                              "action": {
                                "type": "Deny"
                              },
                              "priority": 112,
                              "rules": [
                                {
                                  "description": "D-NAT all outbound web traffic for inspection",
                                  "destinationAddresses": [
                                    "*"
                                  ],
                                  "destinationPorts": [
                                    "443-444",
                                    "8443"
                                  ],
                                  "name": "D-NAT-web-traffic",
                                  "protocols": [
                                    "TCP",
                                    "ICMP"
                                  ],
                                  "sourceAddresses": [
                                    "192.168.1.1-192.168.1.12",
                                    "10.1.4.12-10.1.4.255"
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "provisioningState": "Succeeded"
                      },
                      "tags": {
                        "key1": "value1"
                      },
                      "type": "Microsoft.Network/azureFirewalls"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/azureFirewalls/{azureFirewallName}": {
      "delete": {
        "description": "Deletes the specified Azure Firewall.",
        "operationId": "AzureFirewalls_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Azure Firewall.",
            "in": "path",
            "name": "azureFirewallName",
            "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": [
          "AzureFirewalls"
        ],
        "x-ms-examples": {
          "Delete Azure Firewall": {
            "parameters": {
              "api-version": "2018-04-01",
              "azureFirewallName": "azurefirewall",
              "resourceGroupName": "rg1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {},
              "202": {},
              "204": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the specified Azure Firewall.",
        "operationId": "AzureFirewalls_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Azure Firewall.",
            "in": "path",
            "name": "azureFirewallName",
            "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 AzureFirewall resource.",
            "schema": {
              "$ref": "#/definitions/AzureFirewall"
            }
          }
        },
        "tags": [
          "AzureFirewalls"
        ],
        "x-ms-examples": {
          "Get Azure Firewall": {
            "parameters": {
              "api-version": "2018-04-01",
              "azureFirewallName": "azurefirewall",
              "resourceGroupName": "rg1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
                  "location": "West US",
                  "name": "azurefirewall",
                  "properties": {
                    "applicationRuleCollections": [
                      {
                        "name": "apprulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 110,
                          "rules": [
                            {
                              "description": "Deny inbound rule",
                              "name": "rule1",
                              "protocols": [
                                {
                                  "port": 443,
                                  "protocolType": "Https"
                                }
                              ],
                              "sourceAddresses": [
                                "216.58.216.164",
                                "10.0.0.0/24"
                              ],
                              "targetUrls": [
                                "www.test.com"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "ipConfigurations": [
                      {
                        "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                        "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
                        "name": "azureFirewallIpConfiguration",
                        "properties": {
                          "privateIPAddress": "10.0.0.0",
                          "provisioningState": "Succeeded",
                          "publicIPAddress": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                          },
                          "subnet": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                          }
                        }
                      }
                    ],
                    "networkRuleCollections": [
                      {
                        "name": "netrulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 112,
                          "rules": [
                            {
                              "description": "D-NAT all outbound web traffic for inspection",
                              "destinationAddresses": [
                                "*"
                              ],
                              "destinationPorts": [
                                "443-444",
                                "8443"
                              ],
                              "name": "D-NAT-web-traffic",
                              "protocols": [
                                "TCP",
                                "ICMP"
                              ],
                              "sourceAddresses": [
                                "192.168.1.1-192.168.1.12",
                                "10.1.4.12-10.1.4.255"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "provisioningState": "Succeeded"
                  },
                  "tags": {
                    "key1": "value1"
                  },
                  "type": "Microsoft.Network/azureFirewalls"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates the specified Azure Firewall.",
        "operationId": "AzureFirewalls_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Azure Firewall.",
            "in": "path",
            "name": "azureFirewallName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update Azure Firewall operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AzureFirewall"
            }
          },
          {
            "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": "Update successful. The operation returns the resulting AzureFirewall resource.",
            "schema": {
              "$ref": "#/definitions/AzureFirewall"
            }
          },
          "201": {
            "description": "Create successful. The operation returns the resulting AzureFirewall resource.",
            "schema": {
              "$ref": "#/definitions/AzureFirewall"
            }
          }
        },
        "tags": [
          "AzureFirewalls"
        ],
        "x-ms-examples": {
          "Create Azure Firewall": {
            "parameters": {
              "api-version": "2018-04-01",
              "azureFirewallName": "azurefirewall",
              "parameters": {
                "properties": {
                  "applicationRuleCollections": [
                    {
                      "name": "apprulecoll",
                      "properties": {
                        "action": {
                          "type": "Deny"
                        },
                        "priority": 110,
                        "rules": [
                          {
                            "description": "Deny inbound rule",
                            "name": "rule1",
                            "protocols": [
                              {
                                "port": 443,
                                "protocolType": "Https"
                              }
                            ],
                            "sourceAddresses": [
                              "216.58.216.164",
                              "10.0.0.0/24"
                            ],
                            "targetUrls": [
                              "www.test.com"
                            ]
                          }
                        ]
                      }
                    }
                  ],
                  "ipConfigurations": [
                    {
                      "name": "azureFirewallIpConfiguration",
                      "properties": {
                        "internalPublicIpAddress": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                        },
                        "subnet": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                        }
                      }
                    }
                  ],
                  "networkRuleCollections": [
                    {
                      "name": "netrulecoll",
                      "properties": {
                        "action": {
                          "type": "Deny"
                        },
                        "priority": 112,
                        "rules": [
                          {
                            "description": "D-NAT all outbound web traffic for inspection",
                            "destinationAddresses": [
                              "*"
                            ],
                            "destinationPorts": [
                              "443-444",
                              "8443"
                            ],
                            "name": "D-NAT-web-traffic",
                            "protocols": [
                              "TCP",
                              "ICMP"
                            ],
                            "sourceAddresses": [
                              "192.168.1.1-192.168.1.12",
                              "10.1.4.12-10.1.4.255"
                            ]
                          }
                        ]
                      }
                    }
                  ]
                },
                "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/azureFirewalls/azurefirewall",
                  "location": "West US",
                  "name": "azurefirewall",
                  "properties": {
                    "applicationRuleCollections": [
                      {
                        "name": "apprulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 110,
                          "rules": [
                            {
                              "description": "Deny inbound rule",
                              "name": "rule1",
                              "protocols": [
                                {
                                  "port": 443,
                                  "protocolType": "Https"
                                }
                              ],
                              "sourceAddresses": [
                                "216.58.216.164",
                                "10.0.0.0/24"
                              ],
                              "targetUrls": [
                                "www.test.com"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "ipConfigurations": [
                      {
                        "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                        "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
                        "name": "azureFirewallIpConfiguration",
                        "properties": {
                          "privateIPAddress": "10.0.0.0",
                          "provisioningState": "Succeeded",
                          "publicIPAddress": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                          },
                          "subnet": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                          }
                        }
                      }
                    ],
                    "networkRuleCollections": [
                      {
                        "name": "netrulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 112,
                          "rules": [
                            {
                              "description": "D-NAT all outbound web traffic for inspection",
                              "destinationAddresses": [
                                "*"
                              ],
                              "destinationPorts": [
                                "443-444",
                                "8443"
                              ],
                              "name": "D-NAT-web-traffic",
                              "protocols": [
                                "TCP",
                                "ICMP"
                              ],
                              "sourceAddresses": [
                                "192.168.1.1-192.168.1.12",
                                "10.1.4.12-10.1.4.255"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "provisioningState": "Succeeded"
                  },
                  "tags": {
                    "key1": "value1"
                  },
                  "type": "Microsoft.Network/azureFirewalls"
                }
              },
              "201": {
                "body": {
                  "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
                  "location": "West US",
                  "name": "azurefirewall",
                  "properties": {
                    "applicationRuleCollections": [
                      {
                        "name": "apprulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 110,
                          "rules": [
                            {
                              "description": "Deny inbound rule",
                              "name": "rule1",
                              "protocols": [
                                {
                                  "port": 443,
                                  "protocolType": "Https"
                                }
                              ],
                              "sourceAddresses": [
                                "216.58.216.164",
                                "10.0.0.0/24"
                              ],
                              "targetUrls": [
                                "www.test.com"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "ipConfigurations": [
                      {
                        "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
                        "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
                        "name": "azureFirewallIpConfiguration",
                        "properties": {
                          "privateIPAddress": "10.0.0.0",
                          "provisioningState": "Succeeded",
                          "publicIPAddress": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
                          },
                          "subnet": {
                            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
                          }
                        }
                      }
                    ],
                    "networkRuleCollections": [
                      {
                        "name": "netrulecoll",
                        "properties": {
                          "action": {
                            "type": "Deny"
                          },
                          "priority": 112,
                          "rules": [
                            {
                              "description": "D-NAT all outbound web traffic for inspection",
                              "destinationAddresses": [
                                "*"
                              ],
                              "destinationPorts": [
                                "443-444",
                                "8443"
                              ],
                              "name": "D-NAT-web-traffic",
                              "protocols": [
                                "TCP",
                                "ICMP"
                              ],
                              "sourceAddresses": [
                                "192.168.1.1-192.168.1.12",
                                "10.1.4.12-10.1.4.255"
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "provisioningState": "Succeeded"
                  },
                  "tags": {
                    "key1": "value1"
                  },
                  "type": "Microsoft.Network/azureFirewalls"
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "AzureFirewall": {
      "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": "Azure Firewall resource",
      "properties": {
        "etag": {
          "description": "Gets a unique read-only string that changes whenever the resource is updated.",
          "readOnly": true,
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/AzureFirewallPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "AzureFirewallApplicationRule": {
      "description": "Properties of an application rule.",
      "properties": {
        "description": {
          "description": "Description of the rule.",
          "type": "string"
        },
        "name": {
          "description": "Name of the application rule.",
          "type": "string"
        },
        "protocols": {
          "description": "Array of ApplicationRuleProtocols.",
          "items": {
            "$ref": "#/definitions/AzureFirewallApplicationRuleProtocol"
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "List of source IP addresses for this rule.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "targetUrls": {
          "description": "List of URLs for this rule.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "AzureFirewallApplicationRuleCollection": {
      "allOf": [
        {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Application rule collection 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/AzureFirewallApplicationRuleCollectionPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "AzureFirewallApplicationRuleCollectionPropertiesFormat": {
      "description": "Properties of the application rule collection.",
      "properties": {
        "action": {
          "$ref": "#/definitions/AzureFirewallRCAction",
          "description": "The action type of a rule collection"
        },
        "priority": {
          "description": "Priority of the application rule collection resource.",
          "exclusiveMaximum": false,
          "exclusiveMinimum": false,
          "format": "int32",
          "maximum": 65000,
          "minimum": 100,
          "type": "integer"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The provisioning state of the resource."
        },
        "rules": {
          "description": "Collection of rules used by a application rule collection.",
          "items": {
            "$ref": "#/definitions/AzureFirewallApplicationRule"
          },
          "type": "array"
        }
      }
    },
    "AzureFirewallApplicationRuleProtocol": {
      "description": "Properties of the application rule protocol.",
      "properties": {
        "port": {
          "description": "Port number for the protocol, cannot be greater than 64000. This field is optional.",
          "exclusiveMaximum": false,
          "exclusiveMinimum": false,
          "format": "int32",
          "maximum": 64000,
          "minimum": 0,
          "type": "integer"
        },
        "protocolType": {
          "$ref": "#/definitions/AzureFirewallApplicationRuleProtocolType",
          "description": "Protocol type"
        }
      }
    },
    "AzureFirewallApplicationRuleProtocolType": {
      "description": "The protocol type of a Application Rule resource",
      "enum": [
        "Http",
        "Https"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "AzureFirewallApplicationRuleProtocolType"
      }
    },
    "AzureFirewallIPConfiguration": {
      "allOf": [
        {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "IP configuration of an Azure Firewall.",
      "properties": {
        "etag": {
          "description": "A unique read-only string that changes whenever the resource is updated.",
          "type": "string"
        },
        "name": {
          "description": "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/AzureFirewallIPConfigurationPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "AzureFirewallIPConfigurationPropertiesFormat": {
      "description": "Properties of IP configuration of an Azure Firewall.",
      "properties": {
        "internalPublicIpAddress": {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        },
        "privateIPAddress": {
          "description": "The Firewall Internal Load Balancer IP to be used as the next hop in User Defined Routes.",
          "type": "string"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The provisioning state of the resource."
        },
        "publicIPAddress": {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        },
        "subnet": {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      }
    },
    "AzureFirewallListResult": {
      "description": "Response for ListAzureFirewalls API service call.",
      "properties": {
        "nextLink": {
          "description": "URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "List of a Azure Firewalls in a resource group.",
          "items": {
            "$ref": "#/definitions/AzureFirewall"
          },
          "type": "array"
        }
      }
    },
    "AzureFirewallNetworkRule": {
      "description": "Properties of the network rule.",
      "properties": {
        "description": {
          "description": "Description of the rule.",
          "type": "string"
        },
        "destinationAddresses": {
          "description": "List of destination IP addresses.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "destinationPorts": {
          "description": "List of destination ports.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Name of the network rule.",
          "type": "string"
        },
        "protocols": {
          "description": "Array of AzureFirewallNetworkRuleProtocols.",
          "items": {
            "$ref": "#/definitions/AzureFirewallNetworkRuleProtocol"
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "List of source IP addresses for this rule.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "AzureFirewallNetworkRuleCollection": {
      "allOf": [
        {
          "description": "Reference to another subresource.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Network rule collection 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/AzureFirewallNetworkRuleCollectionPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "AzureFirewallNetworkRuleCollectionPropertiesFormat": {
      "description": "Properties of the network rule collection.",
      "properties": {
        "action": {
          "$ref": "#/definitions/AzureFirewallRCAction",
          "description": "The action type of a rule collection"
        },
        "priority": {
          "description": "Priority of the network rule collection resource.",
          "exclusiveMaximum": false,
          "exclusiveMinimum": false,
          "format": "int32",
          "maximum": 65000,
          "minimum": 100,
          "type": "integer"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The provisioning state of the resource."
        },
        "rules": {
          "description": "Collection of rules used by a network rule collection.",
          "items": {
            "$ref": "#/definitions/AzureFirewallNetworkRule"
          },
          "type": "array"
        }
      }
    },
    "AzureFirewallNetworkRuleProtocol": {
      "description": "The protocol of a Network Rule resource",
      "enum": [
        "TCP",
        "UDP",
        "Any",
        "ICMP"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "AzureFirewallNetworkRuleProtocol"
      }
    },
    "AzureFirewallPropertiesFormat": {
      "description": "Properties of the Azure Firewall.",
      "properties": {
        "applicationRuleCollections": {
          "description": "Collection of application rule collections used by a Azure Firewall.",
          "items": {
            "$ref": "#/definitions/AzureFirewallApplicationRuleCollection"
          },
          "type": "array"
        },
        "ipConfigurations": {
          "description": "IP configuration of the Azure Firewall resource.",
          "items": {
            "$ref": "#/definitions/AzureFirewallIPConfiguration"
          },
          "type": "array"
        },
        "networkRuleCollections": {
          "description": "Collection of network rule collections used by a Azure Firewall.",
          "items": {
            "$ref": "#/definitions/AzureFirewallNetworkRuleCollection"
          },
          "type": "array"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The provisioning state of the resource."
        }
      }
    },
    "AzureFirewallRCAction": {
      "description": "Properties of the AzureFirewallRCAction.",
      "properties": {
        "type": {
          "$ref": "#/definitions/AzureFirewallRCActionType",
          "description": "The type of action."
        }
      }
    },
    "AzureFirewallRCActionType": {
      "description": "The action type of a rule collection",
      "enum": [
        "Allow",
        "Deny"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "AzureFirewallRCActionType"
      }
    },
    "ProvisioningState": {
      "description": "The current provisioning state.",
      "enum": [
        "Succeeded",
        "Updating",
        "Deleting",
        "Failed"
      ],
      "readOnly": true,
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ProvisioningState"
      }
    }
  }
}