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/applicationGateway.json
      version: "2.0"
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2015-06-15/applicationGateway.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: network-applicationGateway
  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/applicationGateways":
    get:
      description: Gets all the application gateways in a subscription.
      operationId: ApplicationGateways_ListAll
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Success. The operation returns a list of ApplicationGateway resources.
          schema:
            $ref: "#/definitions/ApplicationGatewayListResult"
      tags:
        - ApplicationGateways
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways":
    get:
      description: Lists all application gateways in a resource group.
      operationId: ApplicationGateways_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: Success. The operation returns a list of ApplicationGateway resources.
          schema:
            $ref: "#/definitions/ApplicationGatewayListResult"
      tags:
        - ApplicationGateways
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}":
    delete:
      description: Deletes the specified application gateway.
      operationId: ApplicationGateways_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the application gateway.
          in: path
          name: applicationGatewayName
          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 with the specified name does not exist
      tags:
        - ApplicationGateways
      x-ms-long-running-operation: true
    get:
      description: Gets the specified application gateway.
      operationId: ApplicationGateways_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the application gateway.
          in: path
          name: applicationGatewayName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Request successful. The operation returns an ApplicationGateway resource.
          schema:
            $ref: "#/definitions/ApplicationGateway"
      tags:
        - ApplicationGateways
    put:
      description: Creates or updates the specified application gateway.
      operationId: ApplicationGateways_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the application gateway.
          in: path
          name: applicationGatewayName
          required: true
          type: string
        - description: Parameters supplied to the create or update application gateway operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ApplicationGateway"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Update successful. The operation returns the resulting ApplicationGateway resource.
          schema:
            $ref: "#/definitions/ApplicationGateway"
        "201":
          description: Create successful. The operation returns the resulting ApplicationGateway resource.
          schema:
            $ref: "#/definitions/ApplicationGateway"
      tags:
        - ApplicationGateways
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/start":
    post:
      description: Starts the specified application gateway.
      operationId: ApplicationGateways_Start
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the application gateway.
          in: path
          name: applicationGatewayName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Request successful. The operation starts the ApplicationGateway resource.
        "202":
          description: Accepted and the operation will complete asynchronously.
      tags:
        - ApplicationGateways
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/stop":
    post:
      description: Stops the specified application gateway in a resource group.
      operationId: ApplicationGateways_Stop
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the application gateway.
          in: path
          name: applicationGatewayName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Request successful. The operation stops the ApplicationGateway resource.
        "202":
          description: Accepted and the operation will complete asynchronously.
      tags:
        - ApplicationGateways
      x-ms-long-running-operation: true
definitions:
  ApplicationGateway:
    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: Application gateway resource
    properties:
      etag:
        description: A unique read-only string that changes whenever the resource is updated.
        type: string
      properties:
        $ref: "#/definitions/ApplicationGatewayPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayBackendAddress:
    description: Backend address of an application gateway.
    properties:
      fqdn:
        description: Fully qualified domain name (FQDN).
        type: string
      ipAddress:
        description: IP address
        type: string
  ApplicationGatewayBackendAddressPool:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Backend Address Pool of an application gateway.
    properties:
      etag:
        description: A unique read-only string that changes whenever the resource is updated.
        type: string
      name:
        description: Resource that is unique within a resource group. This name can be used to access the resource.
        type: string
      properties:
        $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayBackendAddressPoolPropertiesFormat:
    description: Properties of Backend Address Pool of an application gateway.
    properties:
      backendAddresses:
        description: Backend addresses
        items:
          $ref: "#/definitions/ApplicationGatewayBackendAddress"
        type: array
      backendIPConfigurations:
        description: Collection of references to IPs defined in network interfaces.
        items:
          allOf:
            - description: Azure resource manager sub resource properties.
              properties:
                id:
                  description: Resource Identifier.
                  type: string
              x-ms-azure-resource: true
          description: IPConfiguration in a network interface.
          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:
              description: Properties of IP configuration.
              properties:
                loadBalancerBackendAddressPools:
                  description: The reference of LoadBalancerBackendAddressPool resource.
                  items:
                    allOf:
                      - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                    description: Pool of backend IP addresses.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        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:
                        description: Properties of the backend address pool.
                        properties:
                          backendIPConfigurations:
                            description: Gets collection of references to IP addresses defined in network interfaces.
                            items:
                              allOf:
                                - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                              description: IPConfiguration in a network interface.
                              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:
                                  description: Properties of IP configuration.
                                  properties:
                                    loadBalancerBackendAddressPools:
                                      description: The reference of LoadBalancerBackendAddressPool resource.
                                      items:
                                        $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/loadBalancerBackendAddressPools/items"
                                      type: array
                                    loadBalancerInboundNatRules:
                                      description: A list of references of LoadBalancerInboundNatRules.
                                      items:
                                        $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/loadBalancerInboundNatRules/items"
                                      type: array
                                    primary:
                                      description: Gets whether this is a primary customer address on the network interface.
                                      type: boolean
                                    privateIPAddress:
                                      type: string
                                    privateIPAllocationMethod:
                                      description: "Defines how a private IP address is assigned. Possible values are: 'Static' and 'Dynamic'."
                                      enum:
                                        - Static
                                        - Dynamic
                                      type: string
                                      x-ms-enum:
                                        modelAsString: true
                                        name: IPAllocationMethod
                                    provisioningState:
                                      type: string
                                    publicIPAddress:
                                      $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress"
                                    subnet:
                                      $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet"
                            type: array
                          loadBalancingRules:
                            description: Gets load balancing rules that use this backend address pool.
                            items:
                              $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                            readOnly: true
                            type: array
                          outboundNatRule:
                            $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                            description: Gets outbound rules that use this backend address pool.
                          provisioningState:
                            description: "Get provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                            type: string
                  type: array
                loadBalancerInboundNatRules:
                  description: A list of references of LoadBalancerInboundNatRules.
                  items:
                    allOf:
                      - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                    description: Inbound NAT rule of the load balancer.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        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:
                        description: Properties of the inbound NAT rule.
                        properties:
                          backendIPConfiguration:
                            $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/loadBalancerBackendAddressPools/items/properties/properties/properties/backendIPConfigurations/items"
                          backendPort:
                            description: The port used for the internal endpoint. Acceptable values range from 1 to 65535.
                            format: int32
                            type: integer
                          enableFloatingIP:
                            description: Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint.
                            type: boolean
                          frontendIPConfiguration:
                            $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                            description: A reference to frontend IP addresses.
                          frontendPort:
                            description: The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
                            format: int32
                            type: integer
                          idleTimeoutInMinutes:
                            description: The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
                            format: int32
                            type: integer
                          protocol:
                            description: "The transport protocol for the endpoint. Possible values are: 'Udp' or 'Tcp'"
                            enum:
                              - Udp
                              - Tcp
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: TransportProtocol
                          provisioningState:
                            description: "Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                            type: string
                  type: array
                primary:
                  description: Gets whether this is a primary customer address on the network interface.
                  type: boolean
                privateIPAddress:
                  type: string
                privateIPAllocationMethod:
                  description: "Defines how a private IP address is assigned. Possible values are: 'Static' and 'Dynamic'."
                  enum:
                    - Static
                    - Dynamic
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: IPAllocationMethod
                provisioningState:
                  type: string
                publicIPAddress:
                  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: Public IP address resource.
                  properties:
                    etag:
                      description: A unique read-only string that changes whenever the resource is updated.
                      type: string
                    properties:
                      description: Public IP address properties.
                      properties:
                        dnsSettings:
                          description: Contains FQDN of the DNS record associated with the public IP address
                          properties:
                            domainNameLabel:
                              description: Gets or sets the Domain name label.The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
                              type: string
                            fqdn:
                              description: Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone.
                              type: string
                            reverseFqdn:
                              description: "Gets or Sets the Reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. "
                              type: string
                        idleTimeoutInMinutes:
                          description: The idle timeout of the public IP address.
                          format: int32
                          type: integer
                        ipAddress:
                          type: string
                        ipConfiguration:
                          $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet/properties/properties/properties/ipConfigurations/items"
                        provisioningState:
                          description: "The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                          type: string
                        publicIPAllocationMethod:
                          description: "The public IP allocation method. Possible values are: 'Static' and 'Dynamic'."
                          enum:
                            - Static
                            - Dynamic
                          type: string
                          x-ms-enum:
                            modelAsString: true
                            name: IPAllocationMethod
                        resourceGuid:
                          description: The resource GUID property of the public IP resource.
                          type: string
                subnet:
                  allOf:
                    - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                  description: Subnet in a virtual network resource.
                  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:
                        addressPrefix:
                          description: The address prefix for the subnet.
                          type: string
                        ipConfigurations:
                          description: Gets an array of references to the network interface IP configurations using subnet.
                          items:
                            allOf:
                              - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                            description: IPConfiguration
                            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:
                                description: Properties of IP configuration.
                                properties:
                                  privateIPAddress:
                                    description: The private IP address of the IP configuration.
                                    type: string
                                  privateIPAllocationMethod:
                                    description: The private IP allocation method. Possible values are 'Static' and 'Dynamic'.
                                    enum:
                                      - Static
                                      - Dynamic
                                    type: string
                                    x-ms-enum:
                                      modelAsString: true
                                      name: IPAllocationMethod
                                  provisioningState:
                                    description: "Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                                    type: string
                                  publicIPAddress:
                                    $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress"
                                    description: The reference of the public IP resource.
                                  subnet:
                                    $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet"
                                    description: The reference of the subnet resource.
                          type: array
                        networkSecurityGroup:
                          allOf:
                            - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress/allOf/0"
                          description: NetworkSecurityGroup resource.
                          properties:
                            etag:
                              description: A unique read-only string that changes whenever the resource is updated.
                              type: string
                            properties:
                              description: Network Security Group resource.
                              properties:
                                defaultSecurityRules:
                                  description: The default security rules of network security group.
                                  items:
                                    $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet/properties/properties/properties/networkSecurityGroup/properties/properties/properties/securityRules/items"
                                  type: array
                                networkInterfaces:
                                  description: A collection of references to network interfaces.
                                  items:
                                    allOf:
                                      - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress/allOf/0"
                                    description: A network interface in a resource group.
                                    properties:
                                      etag:
                                        description: A unique read-only string that changes whenever the resource is updated.
                                        type: string
                                      properties:
                                        description: "NetworkInterface properties. "
                                        properties:
                                          dnsSettings:
                                            description: DNS settings of a network interface.
                                            properties:
                                              appliedDnsServers:
                                                description: If the VM that uses this NIC is part of an Availability Set, then this list will have the union of all DNS servers from all NICs that are part of the Availability Set. This property is what is configured on each of those VMs.
                                                items:
                                                  type: string
                                                type: array
                                              dnsServers:
                                                description: List of DNS servers IP addresses. Use 'AzureProvidedDNS' to switch to azure provided DNS resolution. 'AzureProvidedDNS' value cannot be combined with other IPs, it must be the only value in dnsServers collection.
                                                items:
                                                  type: string
                                                type: array
                                              internalDnsNameLabel:
                                                description: Relative DNS name for this NIC used for internal communications between VMs in the same virtual network.
                                                type: string
                                              internalFqdn:
                                                description: Fully qualified DNS name supporting internal communications between VMs in the same virtual network.
                                                type: string
                                          enableIPForwarding:
                                            description: Indicates whether IP forwarding is enabled on this network interface.
                                            type: boolean
                                          ipConfigurations:
                                            description: A list of IPConfigurations of the network interface.
                                            items:
                                              allOf:
                                                - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                                              description: IPConfiguration in a network interface.
                                              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:
                                                  description: Properties of IP configuration.
                                                  properties:
                                                    loadBalancerBackendAddressPools:
                                                      description: The reference of LoadBalancerBackendAddressPool resource.
                                                      items:
                                                        $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/loadBalancerBackendAddressPools/items"
                                                      type: array
                                                    loadBalancerInboundNatRules:
                                                      description: A list of references of LoadBalancerInboundNatRules.
                                                      items:
                                                        $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/loadBalancerInboundNatRules/items"
                                                      type: array
                                                    primary:
                                                      description: Gets whether this is a primary customer address on the network interface.
                                                      type: boolean
                                                    privateIPAddress:
                                                      type: string
                                                    privateIPAllocationMethod:
                                                      description: "Defines how a private IP address is assigned. Possible values are: 'Static' and 'Dynamic'."
                                                      enum:
                                                        - Static
                                                        - Dynamic
                                                      type: string
                                                      x-ms-enum:
                                                        modelAsString: true
                                                        name: IPAllocationMethod
                                                    provisioningState:
                                                      type: string
                                                    publicIPAddress:
                                                      $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress"
                                                    subnet:
                                                      $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet"
                                            type: array
                                          macAddress:
                                            description: The MAC address of the network interface.
                                            type: string
                                          networkSecurityGroup:
                                            $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet/properties/properties/properties/networkSecurityGroup"
                                            description: The reference of the NetworkSecurityGroup resource.
                                          primary:
                                            description: Gets whether this is a primary network interface on a virtual machine.
                                            type: boolean
                                          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 interface resource.
                                            type: string
                                          virtualMachine:
                                            $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                                            description: The reference of a virtual machine.
                                  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:
                                      - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                                    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: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet"
                                  type: array
                        provisioningState:
                          description: The provisioning state of the resource.
                          type: string
                        routeTable:
                          allOf:
                            - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/publicIPAddress/allOf/0"
                          description: Route table resource.
                          properties:
                            etag:
                              description: Gets a unique read-only string that changes whenever the resource is updated.
                              type: string
                            properties:
                              description: Route Table resource
                              properties:
                                provisioningState:
                                  description: "The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                                  type: string
                                routes:
                                  description: Collection of routes contained within a route table.
                                  items:
                                    allOf:
                                      - $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/allOf/0"
                                    description: Route resource
                                    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:
                                        description: Route resource
                                        properties:
                                          addressPrefix:
                                            description: The destination CIDR to which the route applies.
                                            type: string
                                          nextHopIpAddress:
                                            description: The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance.
                                            type: string
                                          nextHopType:
                                            description: "The type of Azure hop the packet should be sent to. Possible values are: 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', and 'None'"
                                            enum:
                                              - VirtualNetworkGateway
                                              - VnetLocal
                                              - Internet
                                              - VirtualAppliance
                                              - None
                                            type: string
                                            x-ms-enum:
                                              modelAsString: true
                                              name: RouteNextHopType
                                          provisioningState:
                                            description: "The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
                                            type: string
                                        required:
                                          - nextHopType
                                  type: array
                                subnets:
                                  description: A collection of references to subnets.
                                  items:
                                    $ref: "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat/properties/backendIPConfigurations/items/properties/properties/properties/subnet"
                                  type: array
        type: array
      provisioningState:
        description: "Provisioning state of the backend address pool resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
  ApplicationGatewayBackendHttpSettings:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Backend address pool settings of an application gateway.
    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/ApplicationGatewayBackendHttpSettingsPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayBackendHttpSettingsPropertiesFormat:
    description: Properties of Backend address pool settings of an application gateway.
    properties:
      cookieBasedAffinity:
        description: "Cookie based affinity. Possible values are: 'Enabled' and 'Disabled'."
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayCookieBasedAffinity
      port:
        description: Port
        format: int32
        type: integer
      probe:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      protocol:
        description: "Protocol. Possible values are: 'Http' and 'Https'."
        enum:
          - Http
          - Https
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayProtocol
      provisioningState:
        description: Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed
        type: string
      requestTimeout:
        description: Request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds.
        format: int32
        type: integer
  ApplicationGatewayFrontendIPConfiguration:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Frontend IP configuration of an application gateway.
    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/ApplicationGatewayFrontendIPConfigurationPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayFrontendIPConfigurationPropertiesFormat:
    description: Properties of Frontend IP configuration of an application gateway.
    properties:
      privateIPAddress:
        description: PrivateIPAddress of the network interface IP Configuration.
        type: string
      privateIPAllocationMethod:
        description: "PrivateIP allocation method. Possible values are: 'Static' and 'Dynamic'."
        enum:
          - Static
          - Dynamic
        type: string
        x-ms-enum:
          modelAsString: true
          name: IPAllocationMethod
      provisioningState:
        description: "Provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      publicIPAddress:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      subnet:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
  ApplicationGatewayFrontendPort:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Frontend port of an application gateway.
    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/ApplicationGatewayFrontendPortPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayFrontendPortPropertiesFormat:
    description: Properties of Frontend port of an application gateway.
    properties:
      port:
        description: Frontend port
        format: int32
        type: integer
      provisioningState:
        description: "Provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
  ApplicationGatewayHttpListener:
    allOf:
      - description: Azure resource manager sub resource properties.
        properties:
          id:
            description: Resource Identifier.
            type: string
        x-ms-azure-resource: true
    description: Http listener of an application gateway.
    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/ApplicationGatewayHttpListenerPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayHttpListenerPropertiesFormat:
    description: Properties of HTTP listener of an application gateway.
    properties:
      frontendIPConfiguration:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      frontendPort:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      hostName:
        description: Host name of HTTP listener.
        type: string
      protocol:
        description: "Protocol. Possible values are: 'Http' and 'Https'."
        enum:
          - Http
          - Https
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayProtocol
      provisioningState:
        description: "Provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      requireServerNameIndication:
        description: Applicable only if protocol is https. Enables SNI for multi-hosting.
        type: boolean
      sslCertificate:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
  ApplicationGatewayIPConfiguration:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: IP configuration of an application gateway. Currently 1 public and 1 private IP configuration is allowed.
    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/ApplicationGatewayIPConfigurationPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayIPConfigurationPropertiesFormat:
    description: Properties of IP configuration of an application gateway.
    properties:
      provisioningState:
        description: "Provisioning state of the application gateway subnet resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      subnet:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
  ApplicationGatewayListResult:
    description: Response for ListApplicationGateways API service call.
    properties:
      nextLink:
        description: URL to get the next set of results.
        type: string
      value:
        description: List of an application gateways in a resource group.
        items:
          $ref: "#/definitions/ApplicationGateway"
        type: array
  ApplicationGatewayPathRule:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Path rule of URL path map of an application gateway.
    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/ApplicationGatewayPathRulePropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayPathRulePropertiesFormat:
    description: Properties of probe of an application gateway.
    properties:
      backendAddressPool:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      backendHttpSettings:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      paths:
        description: Path rules of URL path map.
        items:
          type: string
        type: array
      provisioningState:
        description: "Path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
  ApplicationGatewayProbe:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Probe of the application gateway.
    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/ApplicationGatewayProbePropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayProbePropertiesFormat:
    description: Properties of probe of an application gateway.
    properties:
      host:
        description: Host name to send the probe to.
        type: string
      interval:
        description: The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds.
        format: int32
        type: integer
      path:
        description: Relative path of probe. Valid path starts from '/'. Probe is sent to <Protocol>://<host>:<port><path>
        type: string
      protocol:
        description: "Protocol. Possible values are: 'Http' and 'Https'."
        enum:
          - Http
          - Https
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayProtocol
      provisioningState:
        description: "Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      timeout:
        description: the probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds.
        format: int32
        type: integer
      unhealthyThreshold:
        description: The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20.
        format: int32
        type: integer
  ApplicationGatewayPropertiesFormat:
    description: Properties of the application gateway.
    properties:
      backendAddressPools:
        description: Backend address pool of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayBackendAddressPool"
        type: array
      backendHttpSettingsCollection:
        description: Backend http settings of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayBackendHttpSettings"
        type: array
      frontendIPConfigurations:
        description: Frontend IP addresses of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayFrontendIPConfiguration"
        type: array
      frontendPorts:
        description: Frontend ports of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayFrontendPort"
        type: array
      gatewayIPConfigurations:
        description: Gets or sets subnets of application gateway resource
        items:
          $ref: "#/definitions/ApplicationGatewayIPConfiguration"
        type: array
      httpListeners:
        description: Http listeners of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayHttpListener"
        type: array
      operationalState:
        description: "Operational state of the application gateway resource. Possible values are: 'Stopped', 'Started', 'Running', and 'Stopping'."
        enum:
          - Stopped
          - Starting
          - Running
          - Stopping
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayOperationalState
      probes:
        description: Probes of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayProbe"
        type: array
      provisioningState:
        description: "Provisioning state of the application gateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      requestRoutingRules:
        description: Request routing rules of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayRequestRoutingRule"
        type: array
      resourceGuid:
        description: Resource GUID property of the application gateway resource.
        type: string
      sku:
        $ref: "#/definitions/ApplicationGatewaySku"
        description: SKU of the application gateway resource.
      sslCertificates:
        description: SSL certificates of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewaySslCertificate"
        type: array
      urlPathMaps:
        description: URL path map of the application gateway resource.
        items:
          $ref: "#/definitions/ApplicationGatewayUrlPathMap"
        type: array
  ApplicationGatewayRequestRoutingRule:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: Request routing rule of an application gateway.
    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/ApplicationGatewayRequestRoutingRulePropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayRequestRoutingRulePropertiesFormat:
    description: Properties of request routing rule of the application gateway.
    properties:
      backendAddressPool:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      backendHttpSettings:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      httpListener:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      provisioningState:
        description: "Provisioning state of the request routing rule resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      ruleType:
        description: "Rule type. Possible values are: 'Basic' and 'PathBasedRouting'."
        enum:
          - Basic
          - PathBasedRouting
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayRequestRoutingRuleType
      urlPathMap:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
  ApplicationGatewaySku:
    description: SKU of application gateway
    properties:
      capacity:
        description: Capacity (instance count) of an application gateway.
        format: int32
        type: integer
      name:
        description: "Name of an application gateway SKU. Possible values are: 'Standard_Small', 'Standard_Medium', 'Standard_Large', 'WAF_Medium', and 'WAF_Large'."
        enum:
          - Standard_Small
          - Standard_Medium
          - Standard_Large
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewaySkuName
      tier:
        description: Tier of an application gateway.
        enum:
          - Standard
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationGatewayTier
  ApplicationGatewaySslCertificate:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: SSL certificates of an application gateway.
    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/ApplicationGatewaySslCertificatePropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewaySslCertificatePropertiesFormat:
    description: Properties of SSL certificates of an application gateway.
    properties:
      data:
        description: Base-64 encoded pfx certificate. Only applicable in PUT Request.
        type: string
      password:
        description: Password for the pfx file specified in data. Only applicable in PUT request.
        type: string
      provisioningState:
        description: "Provisioning state of the SSL certificate resource Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
      publicCertData:
        description: Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request.
        type: string
  ApplicationGatewayUrlPathMap:
    allOf:
      - $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
    description: UrlPathMaps give a url path to the backend mapping information for PathBasedRouting.
    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/ApplicationGatewayUrlPathMapPropertiesFormat"
        x-ms-client-flatten: true
  ApplicationGatewayUrlPathMapPropertiesFormat:
    description: Properties of UrlPathMap of the application gateway.
    properties:
      defaultBackendAddressPool:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      defaultBackendHttpSettings:
        $ref: "#/definitions/ApplicationGatewayHttpListener/allOf/0"
      pathRules:
        description: Path rule of URL path map resource.
        items:
          $ref: "#/definitions/ApplicationGatewayPathRule"
        type: array
      provisioningState:
        description: "Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
        type: string
