{
  "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": "2015-06-15",
    "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/2015-06-15/networkSecurityGroup.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "network-networkSecurityGroup",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client API version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "SubscriptionIdParameter": {
      "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"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityGroups": {
      "get": {
        "description": "Gets all network security groups in a subscription.",
        "operationId": "NetworkSecurityGroups_ListAll",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation returns a list of NetworkSecurityGroup resources.",
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroupListResult"
            }
          }
        },
        "tags": [
          "NetworkSecurityGroups"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups": {
      "get": {
        "description": "Gets all network security groups in a resource group.",
        "operationId": "NetworkSecurityGroups_List",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation returns a list of NetworkSecurityGroup resources.",
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroupListResult"
            }
          }
        },
        "tags": [
          "NetworkSecurityGroups"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}": {
      "delete": {
        "description": "Deletes the specified network security group.",
        "operationId": "NetworkSecurityGroups_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Delete successful."
          },
          "202": {
            "description": "Accepted and the operation will complete asynchronously."
          },
          "204": {
            "description": "Request successful. Resource does not exist."
          }
        },
        "tags": [
          "NetworkSecurityGroups"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the specified network security group.",
        "operationId": "NetworkSecurityGroups_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Expands referenced resources.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation returns the resulting NetworkSecurityGroup resource.",
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroup"
            }
          }
        },
        "tags": [
          "NetworkSecurityGroups"
        ]
      },
      "put": {
        "description": "Creates or updates a network security group in the specified resource group.",
        "operationId": "NetworkSecurityGroups_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update network security group operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroup"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Update successful. The operation returns the resulting NetworkSecurityGroup resource.",
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroup"
            }
          },
          "201": {
            "description": "Create successful. The operation returns the resulting NetworkSecurityGroup resource.",
            "schema": {
              "$ref": "#/definitions/NetworkSecurityGroup"
            }
          }
        },
        "tags": [
          "NetworkSecurityGroups"
        ],
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules": {
      "get": {
        "description": "Gets all security rules in a network security group.",
        "operationId": "SecurityRules_List",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation returns a list of SecurityRule resources.",
            "schema": {
              "$ref": "#/definitions/SecurityRuleListResult"
            }
          }
        },
        "tags": [
          "SecurityRules"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}": {
      "delete": {
        "description": "Deletes the specified network security rule.",
        "operationId": "SecurityRules_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the security rule.",
            "in": "path",
            "name": "securityRuleName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Delete successful."
          },
          "202": {
            "description": "Accepted and the operation will complete asynchronously."
          },
          "204": {
            "description": "Request successful. Resource does not exist."
          }
        },
        "tags": [
          "SecurityRules"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Get the specified network security rule.",
        "operationId": "SecurityRules_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the security rule.",
            "in": "path",
            "name": "securityRuleName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation returns the resulting SecurityRule resource.",
            "schema": {
              "$ref": "#/definitions/SecurityRule"
            }
          }
        },
        "tags": [
          "SecurityRules"
        ]
      },
      "put": {
        "description": "Creates or updates a security rule in the specified network security group.",
        "operationId": "SecurityRules_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the network security group.",
            "in": "path",
            "name": "networkSecurityGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the security rule.",
            "in": "path",
            "name": "securityRuleName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update network security rule operation.",
            "in": "body",
            "name": "securityRuleParameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SecurityRule"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Update successful. The operation returns the resulting SecurityRule resource.",
            "schema": {
              "$ref": "#/definitions/SecurityRule"
            }
          },
          "201": {
            "description": "Create successful. The operation returns the resulting SecurityRule resource.",
            "schema": {
              "$ref": "#/definitions/SecurityRule"
            }
          }
        },
        "tags": [
          "SecurityRules"
        ],
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "NetworkSecurityGroup": {
      "allOf": [
        {
          "description": "Azure resource manager resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "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": "NetworkSecurityGroup resource.",
      "properties": {
        "etag": {
          "description": "A unique read-only string that changes whenever the resource is updated.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "NetworkSecurityGroupListResult": {
      "description": "Response for ListNetworkSecurityGroups API service call.",
      "properties": {
        "nextLink": {
          "description": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "A list of NetworkSecurityGroup resources.",
          "items": {
            "$ref": "#/definitions/NetworkSecurityGroup"
          },
          "type": "array"
        }
      }
    },
    "NetworkSecurityGroupPropertiesFormat": {
      "description": "Network Security Group resource.",
      "properties": {
        "defaultSecurityRules": {
          "description": "The default security rules of network security group.",
          "items": {
            "allOf": [
              {
                "description": "Azure resource manager sub resource properties.",
                "properties": {
                  "id": {
                    "description": "Resource Identifier.",
                    "type": "string"
                  }
                },
                "x-ms-azure-resource": true
              }
            ],
            "description": "Network security rule.",
            "properties": {
              "etag": {
                "description": "A unique read-only string that changes whenever the resource is updated.",
                "type": "string"
              },
              "name": {
                "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource.",
                "type": "string"
              },
              "properties": {
                "properties": {
                  "access": {
                    "description": "The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'.",
                    "enum": [
                      "Allow",
                      "Deny"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleAccess"
                    }
                  },
                  "description": {
                    "description": "A description for this rule. Restricted to 140 chars.",
                    "type": "string"
                  },
                  "destinationAddressPrefix": {
                    "description": "The destination address prefix. CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.",
                    "type": "string"
                  },
                  "destinationPortRange": {
                    "description": "The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
                    "type": "string"
                  },
                  "direction": {
                    "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are: 'Inbound' and 'Outbound'.",
                    "enum": [
                      "Inbound",
                      "Outbound"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleDirection"
                    }
                  },
                  "priority": {
                    "description": "The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "protocol": {
                    "description": "Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'.",
                    "enum": [
                      "Tcp",
                      "Udp",
                      "*"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleProtocol"
                    }
                  },
                  "provisioningState": {
                    "description": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
                    "type": "string"
                  },
                  "sourceAddressPrefix": {
                    "description": "The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. ",
                    "type": "string"
                  },
                  "sourcePortRange": {
                    "description": "The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
                    "type": "string"
                  }
                },
                "required": [
                  "protocol",
                  "sourceAddressPrefix",
                  "destinationAddressPrefix",
                  "access",
                  "direction"
                ]
              }
            }
          },
          "type": "array"
        },
        "networkInterfaces": {
          "description": "A collection of references to network interfaces.",
          "items": {
            "$ref": "./networkInterface.json#/definitions/NetworkInterface"
          },
          "type": "array"
        },
        "provisioningState": {
          "description": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
          "type": "string"
        },
        "resourceGuid": {
          "description": "The resource GUID property of the network security group resource.",
          "type": "string"
        },
        "securityRules": {
          "description": "A collection of security rules of the network security group.",
          "items": {
            "allOf": [
              {
                "description": "Azure resource manager sub resource properties.",
                "properties": {
                  "id": {
                    "description": "Resource Identifier.",
                    "type": "string"
                  }
                },
                "x-ms-azure-resource": true
              }
            ],
            "description": "Network security rule.",
            "properties": {
              "etag": {
                "description": "A unique read-only string that changes whenever the resource is updated.",
                "type": "string"
              },
              "name": {
                "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource.",
                "type": "string"
              },
              "properties": {
                "properties": {
                  "access": {
                    "description": "The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'.",
                    "enum": [
                      "Allow",
                      "Deny"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleAccess"
                    }
                  },
                  "description": {
                    "description": "A description for this rule. Restricted to 140 chars.",
                    "type": "string"
                  },
                  "destinationAddressPrefix": {
                    "description": "The destination address prefix. CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.",
                    "type": "string"
                  },
                  "destinationPortRange": {
                    "description": "The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
                    "type": "string"
                  },
                  "direction": {
                    "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are: 'Inbound' and 'Outbound'.",
                    "enum": [
                      "Inbound",
                      "Outbound"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleDirection"
                    }
                  },
                  "priority": {
                    "description": "The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "protocol": {
                    "description": "Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'.",
                    "enum": [
                      "Tcp",
                      "Udp",
                      "*"
                    ],
                    "type": "string",
                    "x-ms-enum": {
                      "modelAsString": true,
                      "name": "SecurityRuleProtocol"
                    }
                  },
                  "provisioningState": {
                    "description": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
                    "type": "string"
                  },
                  "sourceAddressPrefix": {
                    "description": "The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. ",
                    "type": "string"
                  },
                  "sourcePortRange": {
                    "description": "The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
                    "type": "string"
                  }
                },
                "required": [
                  "protocol",
                  "sourceAddressPrefix",
                  "destinationAddressPrefix",
                  "access",
                  "direction"
                ]
              }
            }
          },
          "type": "array"
        },
        "subnets": {
          "description": "A collection of references to subnets.",
          "items": {
            "$ref": "./virtualNetwork.json#/definitions/Subnet"
          },
          "type": "array"
        }
      }
    },
    "SecurityRule": {
      "allOf": [
        {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Network security rule.",
      "properties": {
        "etag": {
          "description": "A unique read-only string that changes whenever the resource is updated.",
          "type": "string"
        },
        "name": {
          "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource.",
          "type": "string"
        },
        "properties": {
          "properties": {
            "access": {
              "description": "The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'.",
              "enum": [
                "Allow",
                "Deny"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "SecurityRuleAccess"
              }
            },
            "description": {
              "description": "A description for this rule. Restricted to 140 chars.",
              "type": "string"
            },
            "destinationAddressPrefix": {
              "description": "The destination address prefix. CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.",
              "type": "string"
            },
            "destinationPortRange": {
              "description": "The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
              "type": "string"
            },
            "direction": {
              "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are: 'Inbound' and 'Outbound'.",
              "enum": [
                "Inbound",
                "Outbound"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "SecurityRuleDirection"
              }
            },
            "priority": {
              "description": "The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.",
              "format": "int32",
              "type": "integer"
            },
            "protocol": {
              "description": "Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'.",
              "enum": [
                "Tcp",
                "Udp",
                "*"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "SecurityRuleProtocol"
              }
            },
            "provisioningState": {
              "description": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
              "type": "string"
            },
            "sourceAddressPrefix": {
              "description": "The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. ",
              "type": "string"
            },
            "sourcePortRange": {
              "description": "The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
              "type": "string"
            }
          },
          "required": [
            "protocol",
            "sourceAddressPrefix",
            "destinationAddressPrefix",
            "access",
            "direction"
          ]
        }
      }
    },
    "SecurityRuleListResult": {
      "description": "Response for ListSecurityRule API service call. Retrieves all security rules that belongs to a network security group.",
      "properties": {
        "nextLink": {
          "description": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The security rules in a network security group.",
          "items": {
            "$ref": "#/definitions/SecurityRule"
          },
          "type": "array"
        }
      }
    },
    "SecurityRulePropertiesFormat": {
      "properties": {
        "access": {
          "description": "The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'.",
          "enum": [
            "Allow",
            "Deny"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SecurityRuleAccess"
          }
        },
        "description": {
          "description": "A description for this rule. Restricted to 140 chars.",
          "type": "string"
        },
        "destinationAddressPrefix": {
          "description": "The destination address prefix. CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.",
          "type": "string"
        },
        "destinationPortRange": {
          "description": "The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
          "type": "string"
        },
        "direction": {
          "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are: 'Inbound' and 'Outbound'.",
          "enum": [
            "Inbound",
            "Outbound"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SecurityRuleDirection"
          }
        },
        "priority": {
          "description": "The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.",
          "format": "int32",
          "type": "integer"
        },
        "protocol": {
          "description": "Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'.",
          "enum": [
            "Tcp",
            "Udp",
            "*"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SecurityRuleProtocol"
          }
        },
        "provisioningState": {
          "description": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
          "type": "string"
        },
        "sourceAddressPrefix": {
          "description": "The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. ",
          "type": "string"
        },
        "sourcePortRange": {
          "description": "The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.",
          "type": "string"
        }
      },
      "required": [
        "protocol",
        "sourceAddressPrefix",
        "destinationAddressPrefix",
        "access",
        "direction"
      ]
    }
  }
}