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: '2017-10-01'
  x-apisguru-categories:
    - cloud
  x-logo:
    url: '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/2017-10-01/virtualNetworkGateway.json'
      version: '2.0'
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: network-virtualNetworkGateway
  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}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections':
    get:
      description: The List VirtualNetworkGatewayConnections operation retrieves all the virtual network gateways connections created.
      operationId: VirtualNetworkGatewayConnections_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 resets the virtual network gateway connection shared key.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnectionListResult'
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}':
    delete:
      description: Deletes the specified virtual network Gateway connection.
      operationId: VirtualNetworkGatewayConnections_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway connection.
          in: path
          name: virtualNetworkGatewayConnectionName
          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: Delete successful.
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified virtual network gateway connection by resource group.
      operationId: VirtualNetworkGatewayConnections_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway connection.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns the resulting VirtualNetworkPeering resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnection'
      tags:
        - VirtualNetworkGatewayConnections
    patch:
      description: Updates a virtual network gateway connection tags.
      operationId: VirtualNetworkGatewayConnections_UpdateTags
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway connection.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - description: Parameters supplied to update virtual network gateway connection tags.
          in: body
          name: parameters
          required: true
          schema:
            description: Tags object for patch operations.
            properties:
              tags:
                additionalProperties:
                  type: string
                description: Resource tags.
                type: object
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnectionListEntity'
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-examples:
        Update Virtual Network Gateway Connection Tags:
          parameters:
            api-version: '2017-10-01'
            parameters:
              tags:
                tag1: value1
                tag2: value2
            resourceGroupName: rg1
            subscriptionId: subid
            virtualNetworkGatewayConnectionName: test
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/test
                location: westus
                name: test
                properties:
                  connectionStatus: Unknown
                  connectionType: IPsec
                  egressBytesTransferred: 0
                  enableBgp: false
                  ingressBytesTransferred: 0
                  ipsecPolicies: []
                  localNetworkGateway2:
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/lgw
                  provisioningState: Succeeded
                  resourceGuid: 00000000-0000-0000-0000-000000000000
                  routingWeight: 0
                  sharedKey: temp1234
                  usePolicyBasedTrafficSelectors: false
                  virtualNetworkGateway1:
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/connections
      x-ms-long-running-operation: true
    put:
      description: Creates or updates a virtual network gateway connection in the specified resource group.
      operationId: VirtualNetworkGatewayConnections_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway connection.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - description: Parameters supplied to the create or update virtual network gateway connection operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnection'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnection'
        '201':
          description: Create successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayConnection'
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-long-running-operation: true
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey':
    get:
      description: The Get VirtualNetworkGatewayConnectionSharedKey operation retrieves information about the specified virtual network gateway connection shared key through Network resource provider.
      operationId: VirtualNetworkGatewayConnections_GetSharedKey
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The virtual network gateway connection shared key name.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns a list of VirtualNetworkGatewayConnection resources.
          schema:
            $ref: '#/definitions/ConnectionSharedKey'
      tags:
        - VirtualNetworkGatewayConnections
    put:
      description: The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.
      operationId: VirtualNetworkGatewayConnections_SetSharedKey
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The virtual network gateway connection name.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - description: Parameters supplied to the Begin Set Virtual Network Gateway connection Shared key operation throughNetwork resource provider.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/ConnectionSharedKey'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns the resulting ConnectionSharedKey resource.
          schema:
            $ref: '#/definitions/ConnectionSharedKey'
        '201':
          description: ''
          schema:
            $ref: '#/definitions/ConnectionSharedKey'
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-long-running-operation: true
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey/reset':
    post:
      description: The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.
      operationId: VirtualNetworkGatewayConnections_ResetSharedKey
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The virtual network gateway connection reset shared key Name.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - description: Parameters supplied to the begin reset virtual network gateway connection shared key operation through network resource provider.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/ConnectionResetSharedKey'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation sets the virtual network gateway connection shared key.
          schema:
            $ref: '#/definitions/ConnectionResetSharedKey'
        '202':
          description: ''
      tags:
        - VirtualNetworkGatewayConnections
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/vpndeviceconfigurationscript':
    post:
      description: Gets a xml format representation for vpn device configuration script.
      operationId: VirtualNetworkGateways_VpnDeviceConfigurationScript
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway connection for which the configuration script is generated.
          in: path
          name: virtualNetworkGatewayConnectionName
          required: true
          type: string
        - description: Parameters supplied to the generate vpn device script operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/VpnDeviceScriptParameters'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Xml format representation for vpn device configuration script.
          schema:
            type: string
      tags:
        - VirtualNetworkGateways
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways':
    get:
      description: Gets all the local network gateways in a resource group.
      operationId: LocalNetworkGateways_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 LocalNetworkGateway resources.
          schema:
            $ref: '#/definitions/LocalNetworkGatewayListResult'
      tags:
        - LocalNetworkGateways
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways/{localNetworkGatewayName}':
    delete:
      description: Deletes the specified local network gateway.
      operationId: LocalNetworkGateways_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the local network gateway.
          in: path
          minLength: 1
          name: localNetworkGatewayName
          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: Delete successful.
      tags:
        - LocalNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified local network gateway in a resource group.
      operationId: LocalNetworkGateways_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the local network gateway.
          in: path
          minLength: 1
          name: localNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns the resulting LocalNetworkGateway resource.
          schema:
            $ref: '#/definitions/LocalNetworkGateway'
      tags:
        - LocalNetworkGateways
    patch:
      description: Updates a local network gateway tags.
      operationId: LocalNetworkGateways_UpdateTags
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the local network gateway.
          in: path
          minLength: 1
          name: localNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to update local network gateway tags.
          in: body
          name: parameters
          required: true
          schema:
            description: Tags object for patch operations.
            properties:
              tags:
                additionalProperties:
                  type: string
                description: Resource tags.
                type: object
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting LocalNetworkGateway resource.
          schema:
            $ref: '#/definitions/LocalNetworkGateway'
      tags:
        - LocalNetworkGateways
      x-ms-examples:
        Update Local Network Gateway Tags:
          parameters:
            api-version: '2017-10-01'
            localNetworkGatewayName: lgw
            parameters:
              tags:
                tag1: value1
                tag2: value2
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/lgw
                location: westus
                name: lgw
                properties:
                  gatewayIpAddress: 12.0.0.1
                  localNetworkAddressSpace:
                    addressPrefixes:
                      - 12.0.0.0/8
                  provisioningState: Succeeded
                  resourceGuid: 00000000-0000-0000-0000-000000000000
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/localNetworkGateways
      x-ms-long-running-operation: true
    put:
      description: Creates or updates a local network gateway in the specified resource group.
      operationId: LocalNetworkGateways_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the local network gateway.
          in: path
          minLength: 1
          name: localNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to the create or update local network gateway operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/LocalNetworkGateway'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting LocalNetworkGateway resource.
          schema:
            $ref: '#/definitions/LocalNetworkGateway'
        '201':
          description: Create successful. The operation returns the resulting LocalNetworkGateway resource.
          schema:
            $ref: '#/definitions/LocalNetworkGateway'
      tags:
        - LocalNetworkGateways
      x-ms-long-running-operation: true
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways':
    get:
      description: Gets all virtual network gateways by resource group.
      operationId: VirtualNetworkGateways_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 VirtualNetworkGateway resources.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayListResult'
      tags:
        - VirtualNetworkGateways
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}':
    delete:
      description: Deletes the specified virtual network gateway.
      operationId: VirtualNetworkGateways_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          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: Delete successful.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified virtual network gateway by resource group.
      operationId: VirtualNetworkGateways_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns a VirtualNetworkGateway resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
      tags:
        - VirtualNetworkGateways
    patch:
      description: Updates a virtual network gateway tags.
      operationId: VirtualNetworkGateways_UpdateTags
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to update virtual network gateway tags.
          in: body
          name: parameters
          required: true
          schema:
            description: Tags object for patch operations.
            properties:
              tags:
                additionalProperties:
                  type: string
                description: Resource tags.
                type: object
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting VirtualNetworkGateway resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
      tags:
        - VirtualNetworkGateways
      x-ms-examples:
        Update Virtual Network Gateway Tags:
          parameters:
            api-version: '2017-10-01'
            parameters:
              tags:
                tag1: value1
                tag2: value2
            resourceGroupName: rg1
            subscriptionId: subid
            virtualNetworkGatewayName: vpngw
          responses:
            '200':
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw
                location: westus
                name: vpngw
                properties:
                  activeActive: false
                  bgpSettings:
                    asn: 65515
                    bgpPeeringAddress: 10.0.0.254
                    peerWeight: 0
                  enableBgp: false
                  gatewayType: Vpn
                  ipConfigurations:
                    - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/default
                      name: default
                      properties:
                        privateIPAllocationMethod: Dynamic
                        provisioningState: Succeeded
                        publicIPAddress:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/testpub1
                        subnet:
                          id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/GatewaySubnet
                  provisioningState: Succeeded
                  resourceGuid: 00000000-0000-0000-0000-000000000000
                  sku:
                    capacity: 2
                    name: VpnGw1
                    tier: VpnGw1
                  vpnType: RouteBased
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/virtualNetworkGateways
      x-ms-long-running-operation: true
    put:
      description: Creates or updates a virtual network gateway in the specified resource group.
      operationId: VirtualNetworkGateways_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to create or update virtual network gateway operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Update successful. The operation returns the resulting VirtualNetworkGateway resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
        '201':
          description: Create successful. The operation returns the resulting VirtualNetworkGateway resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/connections':
    get:
      description: Gets all the connections in a virtual network gateway.
      operationId: VirtualNetworkGateways_ListConnections
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation returns a list of VirtualNetworkGatewayConnection resource.
          schema:
            $ref: '#/definitions/VirtualNetworkGatewayListConnectionsResult'
      tags:
        - VirtualNetworkGateways
      x-ms-examples:
        VirtualNetworkGatewaysListConnections:
          parameters:
            api-version: '2017-10-01'
            resourceGroupName: testrg
            subscriptionId: subid
            virtualNetworkGatewayName: test-vpn-gateway-1
          responses:
            '200':
              body:
                value:
                  - etag: W/\"00000000-0000-0000-0000-000000000000\"
                    id: /subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/connections/test-vpn-connection
                    location: eastus
                    name: test-vpn-connection
                    properties:
                      connectionType: Vnet2Vnet
                      egressBytesTransferred: 0
                      enableBgp: true
                      ingressBytesTransferred: 0
                      ipsecPolicies: []
                      provisioningState: Succeeded
                      resourceGuid: 00000000-0000-0000-0000-000000000000
                      routingWeight: 22
                      usePolicyBasedTrafficSelectors: false
                      virtualNetworkGateway1:
                        id: /subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkGateways/test-vpn-gateway-1
                      virtualNetworkGateway2:
                        id: /subscriptions/subid/resourceGroups/testrg-2/providers/Microsoft.Network/virtualNetworkGateways/test-vpn-gateway-2
                    type: Microsoft.Network/connections
      x-ms-pageable:
        nextLinkName: nextLink
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnclientpackage':
    post:
      description: Generates VPN client package for P2S client of the virtual network gateway in the specified resource group.
      operationId: VirtualNetworkGateways_Generatevpnclientpackage
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to the generate virtual network gateway VPN client package operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/VpnClientParameters'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: VPN client package URL.
          schema:
            type: string
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnprofile':
    post:
      description: Generates VPN profile for P2S client of the virtual network gateway in the specified resource group. Used for IKEV2 and radius based authentication.
      operationId: VirtualNetworkGateways_GenerateVpnProfile
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: Parameters supplied to the generate virtual network gateway VPN client package operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: '#/definitions/VpnClientParameters'
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: VPN profile package URL.
          schema:
            type: string
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getAdvertisedRoutes':
    post:
      description: This operation retrieves a list of routes the virtual network gateway is advertising to the specified peer.
      operationId: VirtualNetworkGateways_GetAdvertisedRoutes
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: The IP address of the peer
          in: query
          name: peer
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: List of learned BGP routes
          schema:
            $ref: '#/definitions/GatewayRouteListResult'
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getBgpPeerStatus':
    post:
      description: The GetBgpPeerStatus operation retrieves the status of all BGP peers.
      operationId: VirtualNetworkGateways_GetBgpPeerStatus
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: The IP address of the peer to retrieve the status of.
          in: query
          name: peer
          required: false
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: List of BGP peer statuses
          schema:
            $ref: '#/definitions/BgpPeerStatusListResult'
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getLearnedRoutes':
    post:
      description: 'This operation retrieves a list of routes the virtual network gateway has learned, including routes learned from BGP peers.'
      operationId: VirtualNetworkGateways_GetLearnedRoutes
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: List of advertised BGP routes
          schema:
            $ref: '#/definitions/GatewayRouteListResult'
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getvpnprofilepackageurl':
    post:
      description: Gets pre-generated VPN profile for P2S client of the virtual network gateway in the specified resource group. The profile needs to be generated first using generateVpnProfile.
      operationId: VirtualNetworkGateways_GetVpnProfilePackageUrl
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: VPN profile package URL.
          schema:
            type: string
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/reset':
    post:
      description: Resets the primary of the virtual network gateway in the specified resource group.
      operationId: VirtualNetworkGateways_Reset
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - description: Virtual network gateway vip address supplied to the begin reset of the active-active feature enabled gateway.
          in: query
          name: gatewayVip
          required: false
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Request successful. The operation reset the primary of the virtual network gateway.
          schema:
            $ref: '#/definitions/VirtualNetworkGateway'
        '202':
          description: Accepted and the operation will complete asynchronously.
      tags:
        - VirtualNetworkGateways
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/supportedvpndevices':
    post:
      description: Gets a xml format representation for supported vpn devices.
      operationId: VirtualNetworkGateways_SupportedVpnDevices
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual network gateway.
          in: path
          name: virtualNetworkGatewayName
          required: true
          type: string
        - $ref: '#/parameters/ApiVersionParameter'
        - $ref: '#/parameters/SubscriptionIdParameter'
      responses:
        '200':
          description: Xml format representation for supported vpn devices.
          schema:
            type: string
      tags:
        - VirtualNetworkGateways
definitions:
  BgpPeerStatus:
    description: BGP peer status details
    properties:
      asn:
        description: The autonomous system number of the remote BGP peer
        format: int32
        readOnly: true
        type: integer
      connectedDuration:
        description: For how long the peering has been up
        readOnly: true
        type: string
      localAddress:
        description: The virtual network gateway's local address
        readOnly: true
        type: string
      messagesReceived:
        description: The number of BGP messages received
        format: int64
        readOnly: true
        type: integer
      messagesSent:
        description: The number of BGP messages sent
        format: int64
        readOnly: true
        type: integer
      neighbor:
        description: The remote BGP peer
        readOnly: true
        type: string
      routesReceived:
        description: The number of routes learned from this peer
        format: int64
        readOnly: true
        type: integer
      state:
        description: The BGP peer state
        enum:
          - Unknown
          - Stopped
          - Idle
          - Connecting
          - Connected
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: BgpPeerState
  BgpPeerStatusListResult:
    description: Response for list BGP peer status API service call
    properties:
      value:
        description: List of BGP peers
        items:
          $ref: '#/definitions/BgpPeerStatus'
        type: array
  BgpSettings:
    description: BGP settings details
    properties:
      asn:
        description: The BGP speaker's ASN.
        format: int64
        type: integer
      bgpPeeringAddress:
        description: The BGP peering address and BGP identifier of this BGP speaker.
        type: string
      peerWeight:
        description: The weight added to routes learned from this BGP speaker.
        format: int32
        type: integer
  ConnectionResetSharedKey:
    description: The virtual network connection reset shared key
    properties:
      keyLength:
        description: 'The virtual network connection reset shared key length, should between 1 and 128.'
        format: int32
        maximum: 128
        minimum: 1
        type: integer
    required:
      - keyLength
  ConnectionSharedKey:
    description: Response for GetConnectionSharedKey API service call
    properties:
      value:
        description: The virtual network connection shared key value.
        type: string
    required:
      - value
  GatewayRoute:
    description: Gateway routing details
    properties:
      asPath:
        description: The route's AS path sequence
        readOnly: true
        type: string
      localAddress:
        description: The gateway's local address
        readOnly: true
        type: string
      network:
        description: The route's network prefix
        readOnly: true
        type: string
      nextHop:
        description: The route's next hop
        readOnly: true
        type: string
      origin:
        description: The source this route was learned from
        readOnly: true
        type: string
      sourcePeer:
        description: The peer this route was learned from
        readOnly: true
        type: string
      weight:
        description: The route's weight
        format: int32
        readOnly: true
        type: integer
  GatewayRouteListResult:
    description: List of virtual network gateway routes
    properties:
      value:
        description: List of gateway routes
        items:
          $ref: '#/definitions/GatewayRoute'
        type: array
  IpsecPolicy:
    description: An IPSec Policy configuration for a virtual network gateway connection
    properties:
      dhGroup:
        description: The DH Groups used in IKE Phase 1 for initial SA.
        enum:
          - None
          - DHGroup1
          - DHGroup2
          - DHGroup14
          - DHGroup2048
          - ECP256
          - ECP384
          - DHGroup24
        type: string
        x-ms-enum:
          modelAsString: true
          name: DhGroup
      ikeEncryption:
        description: The IKE encryption algorithm (IKE phase 2).
        enum:
          - DES
          - DES3
          - AES128
          - AES192
          - AES256
        type: string
        x-ms-enum:
          modelAsString: true
          name: IkeEncryption
      ikeIntegrity:
        description: The IKE integrity algorithm (IKE phase 2).
        enum:
          - MD5
          - SHA1
          - SHA256
          - SHA384
        type: string
        x-ms-enum:
          modelAsString: true
          name: IkeIntegrity
      ipsecEncryption:
        description: The IPSec encryption algorithm (IKE phase 1).
        enum:
          - None
          - DES
          - DES3
          - AES128
          - AES192
          - AES256
          - GCMAES128
          - GCMAES192
          - GCMAES256
        type: string
        x-ms-enum:
          modelAsString: true
          name: IpsecEncryption
      ipsecIntegrity:
        description: The IPSec integrity algorithm (IKE phase 1).
        enum:
          - MD5
          - SHA1
          - SHA256
          - GCMAES128
          - GCMAES192
          - GCMAES256
        type: string
        x-ms-enum:
          modelAsString: true
          name: IpsecIntegrity
      pfsGroup:
        description: The DH Groups used in IKE Phase 2 for new child SA.
        enum:
          - None
          - PFS1
          - PFS2
          - PFS2048
          - ECP256
          - ECP384
          - PFS24
        type: string
        x-ms-enum:
          modelAsString: true
          name: PfsGroup
      saDataSizeKilobytes:
        description: The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel.
        format: int32
        type: integer
      saLifeTimeSeconds:
        description: The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel.
        format: int32
        type: integer
    required:
      - saLifeTimeSeconds
      - saDataSizeKilobytes
      - ipsecEncryption
      - ipsecIntegrity
      - ikeEncryption
      - ikeIntegrity
      - dhGroup
      - pfsGroup
  LocalNetworkGateway:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: A common class for general resource information
    properties:
      etag:
        description: A unique read-only string that changes whenever the resource is updated.
        type: string
      properties:
        $ref: '#/definitions/LocalNetworkGatewayPropertiesFormat'
        description: Properties of the local network gateway.
        x-ms-client-flatten: true
    required:
      - properties
  LocalNetworkGatewayListResult:
    description: Response for ListLocalNetworkGateways API service call.
    properties:
      nextLink:
        description: The URL to get the next set of results.
        readOnly: true
        type: string
      value:
        description: A list of local network gateways that exists in a resource group.
        items:
          $ref: '#/definitions/LocalNetworkGateway'
        type: array
  LocalNetworkGatewayPropertiesFormat:
    description: LocalNetworkGateway properties
    properties:
      bgpSettings:
        $ref: '#/definitions/BgpSettings'
        description: Local network gateway's BGP speaker settings.
      gatewayIpAddress:
        description: IP address of local network gateway.
        type: string
      localNetworkAddressSpace:
        description: AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual network.
        properties:
          addressPrefixes:
            description: A list of address blocks reserved for this virtual network in CIDR notation.
            items:
              type: string
            type: array
      provisioningState:
        description: 'The provisioning state of the LocalNetworkGateway resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      resourceGuid:
        description: The resource GUID property of the LocalNetworkGateway resource.
        type: string
  TunnelConnectionHealth:
    description: VirtualNetworkGatewayConnection properties
    properties:
      connectionStatus:
        description: Virtual network Gateway connection status
        enum:
          - Unknown
          - Connecting
          - Connected
          - NotConnected
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayConnectionStatus
      egressBytesTransferred:
        description: The Egress Bytes Transferred in this connection
        format: int64
        readOnly: true
        type: integer
      ingressBytesTransferred:
        description: The Ingress Bytes Transferred in this connection
        format: int64
        readOnly: true
        type: integer
      lastConnectionEstablishedUtcTime:
        description: The time at which connection was established in Utc format.
        readOnly: true
        type: string
      tunnel:
        description: Tunnel name.
        readOnly: true
        type: string
  VirtualNetworkGateway:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: A common class for general resource information
    properties:
      etag:
        description: Gets a unique read-only string that changes whenever the resource is updated.
        type: string
      properties:
        $ref: '#/definitions/VirtualNetworkGatewayPropertiesFormat'
        description: Properties of the virtual network gateway.
        x-ms-client-flatten: true
    required:
      - properties
  VirtualNetworkGatewayConnection:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: A common class for general resource information
    properties:
      etag:
        description: Gets a unique read-only string that changes whenever the resource is updated.
        type: string
      properties:
        $ref: '#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat'
        description: Properties of the virtual network gateway connection.
        x-ms-client-flatten: true
    required:
      - properties
  VirtualNetworkGatewayConnectionListEntity:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: A common class for general resource information
    properties:
      etag:
        description: Gets a unique read-only string that changes whenever the resource is updated.
        type: string
      properties:
        $ref: '#/definitions/VirtualNetworkGatewayConnectionListEntityPropertiesFormat'
        description: Properties of the virtual network gateway connection.
        x-ms-client-flatten: true
    required:
      - properties
  VirtualNetworkGatewayConnectionListEntityPropertiesFormat:
    description: VirtualNetworkGatewayConnection properties
    properties:
      authorizationKey:
        description: The authorizationKey.
        type: string
      connectionStatus:
        description: 'Virtual network Gateway connection status. Possible values are ''Unknown'', ''Connecting'', ''Connected'' and ''NotConnected''.'
        enum:
          - Unknown
          - Connecting
          - Connected
          - NotConnected
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayConnectionStatus
      connectionType:
        description: 'Gateway connection type. Possible values are: ''IPsec'',''Vnet2Vnet'',''ExpressRoute'', and ''VPNClient.'
        enum:
          - IPsec
          - Vnet2Vnet
          - ExpressRoute
          - VPNClient
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayConnectionType
      egressBytesTransferred:
        description: The egress bytes transferred in this connection.
        format: int64
        readOnly: true
        type: integer
      enableBgp:
        description: EnableBgp flag
        type: boolean
      ingressBytesTransferred:
        description: The ingress bytes transferred in this connection.
        format: int64
        readOnly: true
        type: integer
      ipsecPolicies:
        description: The IPSec Policies to be considered by this connection.
        items:
          $ref: '#/definitions/IpsecPolicy'
        type: array
      localNetworkGateway2:
        $ref: '#/definitions/virtualNetworkConnectionGatewayReference'
        description: The reference to local network gateway resource.
      peer:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      provisioningState:
        description: 'The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      resourceGuid:
        description: The resource GUID property of the VirtualNetworkGatewayConnection resource.
        type: string
      routingWeight:
        description: The routing weight.
        format: int32
        type: integer
      sharedKey:
        description: The IPSec shared key.
        type: string
      tunnelConnectionStatus:
        description: Collection of all tunnels' connection health status.
        items:
          $ref: '#/definitions/TunnelConnectionHealth'
        readOnly: true
        type: array
      usePolicyBasedTrafficSelectors:
        description: Enable policy-based traffic selectors.
        type: boolean
      virtualNetworkGateway1:
        $ref: '#/definitions/virtualNetworkConnectionGatewayReference'
        description: The reference to virtual network gateway resource.
      virtualNetworkGateway2:
        $ref: '#/definitions/virtualNetworkConnectionGatewayReference'
        description: The reference to virtual network gateway resource.
    required:
      - virtualNetworkGateway1
      - connectionType
  VirtualNetworkGatewayConnectionListResult:
    description: Response for the ListVirtualNetworkGatewayConnections API service call
    properties:
      nextLink:
        description: The URL to get the next set of results.
        readOnly: true
        type: string
      value:
        description: Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group.
        items:
          $ref: '#/definitions/VirtualNetworkGatewayConnection'
        type: array
  VirtualNetworkGatewayConnectionPropertiesFormat:
    description: VirtualNetworkGatewayConnection properties
    properties:
      authorizationKey:
        description: The authorizationKey.
        type: string
      connectionStatus:
        description: 'Virtual network Gateway connection status. Possible values are ''Unknown'', ''Connecting'', ''Connected'' and ''NotConnected''.'
        enum:
          - Unknown
          - Connecting
          - Connected
          - NotConnected
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayConnectionStatus
      connectionType:
        description: 'Gateway connection type. Possible values are: ''IPsec'',''Vnet2Vnet'',''ExpressRoute'', and ''VPNClient.'
        enum:
          - IPsec
          - Vnet2Vnet
          - ExpressRoute
          - VPNClient
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayConnectionType
      egressBytesTransferred:
        description: The egress bytes transferred in this connection.
        format: int64
        readOnly: true
        type: integer
      enableBgp:
        description: EnableBgp flag
        type: boolean
      ingressBytesTransferred:
        description: The ingress bytes transferred in this connection.
        format: int64
        readOnly: true
        type: integer
      ipsecPolicies:
        description: The IPSec Policies to be considered by this connection.
        items:
          $ref: '#/definitions/IpsecPolicy'
        type: array
      localNetworkGateway2:
        $ref: '#/definitions/LocalNetworkGateway'
        description: The reference to local network gateway resource.
      peer:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      provisioningState:
        description: 'The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      resourceGuid:
        description: The resource GUID property of the VirtualNetworkGatewayConnection resource.
        type: string
      routingWeight:
        description: The routing weight.
        format: int32
        type: integer
      sharedKey:
        description: The IPSec shared key.
        type: string
      tunnelConnectionStatus:
        description: Collection of all tunnels' connection health status.
        items:
          $ref: '#/definitions/TunnelConnectionHealth'
        readOnly: true
        type: array
      usePolicyBasedTrafficSelectors:
        description: Enable policy-based traffic selectors.
        type: boolean
      virtualNetworkGateway1:
        $ref: '#/definitions/VirtualNetworkGateway'
        description: The reference to virtual network gateway resource.
      virtualNetworkGateway2:
        $ref: '#/definitions/VirtualNetworkGateway'
        description: The reference to virtual network gateway resource.
    required:
      - virtualNetworkGateway1
      - connectionType
  VirtualNetworkGatewayIPConfiguration:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: IP configuration for virtual network gateway
    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:
        $ref: '#/definitions/VirtualNetworkGatewayIPConfigurationPropertiesFormat'
        description: Properties of the virtual network gateway ip configuration.
        x-ms-client-flatten: true
  VirtualNetworkGatewayIPConfigurationPropertiesFormat:
    description: Properties of VirtualNetworkGatewayIPConfiguration
    properties:
      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: 'The provisioning state of the public IP resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      publicIPAddress:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      subnet:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
  VirtualNetworkGatewayListConnectionsResult:
    description: Response for the VirtualNetworkGatewayListConnections API service call
    properties:
      nextLink:
        description: The URL to get the next set of results.
        readOnly: true
        type: string
      value:
        description: Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group.
        items:
          $ref: '#/definitions/VirtualNetworkGatewayConnectionListEntity'
        type: array
  VirtualNetworkGatewayListResult:
    description: Response for the ListVirtualNetworkGateways API service call.
    properties:
      nextLink:
        description: The URL to get the next set of results.
        readOnly: true
        type: string
      value:
        description: Gets a list of VirtualNetworkGateway resources that exists in a resource group.
        items:
          $ref: '#/definitions/VirtualNetworkGateway'
        type: array
  VirtualNetworkGatewayPropertiesFormat:
    description: VirtualNetworkGateway properties
    properties:
      activeActive:
        description: ActiveActive flag
        type: boolean
      bgpSettings:
        $ref: '#/definitions/BgpSettings'
        description: Virtual network gateway's BGP speaker settings.
      enableBgp:
        description: Whether BGP is enabled for this virtual network gateway or not.
        type: boolean
      gatewayDefaultSite:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      gatewayType:
        description: 'The type of this virtual network gateway. Possible values are: ''Vpn'' and ''ExpressRoute''.'
        enum:
          - Vpn
          - ExpressRoute
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewayType
      ipConfigurations:
        description: IP configurations for virtual network gateway.
        items:
          $ref: '#/definitions/VirtualNetworkGatewayIPConfiguration'
        type: array
      provisioningState:
        description: 'The provisioning state of the VirtualNetworkGateway resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      resourceGuid:
        description: The resource GUID property of the VirtualNetworkGateway resource.
        type: string
      sku:
        $ref: '#/definitions/VirtualNetworkGatewaySku'
        description: The reference of the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway.
      vpnClientConfiguration:
        $ref: '#/definitions/VpnClientConfiguration'
        description: The reference of the VpnClientConfiguration resource which represents the P2S VpnClient configurations.
      vpnType:
        description: 'The type of this virtual network gateway. Possible values are: ''PolicyBased'' and ''RouteBased''.'
        enum:
          - PolicyBased
          - RouteBased
        type: string
        x-ms-enum:
          modelAsString: true
          name: VpnType
  VirtualNetworkGatewaySku:
    description: VirtualNetworkGatewaySku details
    properties:
      capacity:
        description: The capacity.
        format: int32
        type: integer
      name:
        description: Gateway SKU name.
        enum:
          - Basic
          - HighPerformance
          - Standard
          - UltraPerformance
          - VpnGw1
          - VpnGw2
          - VpnGw3
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewaySkuName
      tier:
        description: Gateway SKU tier.
        enum:
          - Basic
          - HighPerformance
          - Standard
          - UltraPerformance
          - VpnGw1
          - VpnGw2
          - VpnGw3
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkGatewaySkuTier
  VpnClientConfiguration:
    description: VpnClientConfiguration for P2S client.
    properties:
      radiusServerAddress:
        description: The radius server address property of the VirtualNetworkGateway resource for vpn client connection.
        type: string
      radiusServerSecret:
        description: The radius secret property of the VirtualNetworkGateway resource for vpn client connection.
        type: string
      vpnClientAddressPool:
        description: AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual network.
        properties:
          addressPrefixes:
            description: A list of address blocks reserved for this virtual network in CIDR notation.
            items:
              type: string
            type: array
      vpnClientProtocols:
        description: VpnClientProtocols for Virtual network gateway.
        items:
          description: VPN client protocol enabled for the virtual network gateway.
          enum:
            - IkeV2
            - SSTP
          type: string
          x-ms-enum:
            modelAsString: true
            name: VpnClientProtocol
        type: array
      vpnClientRevokedCertificates:
        description: VpnClientRevokedCertificate for Virtual network gateway.
        items:
          $ref: '#/definitions/VpnClientRevokedCertificate'
        type: array
      vpnClientRootCertificates:
        description: VpnClientRootCertificate for virtual network gateway.
        items:
          $ref: '#/definitions/VpnClientRootCertificate'
        type: array
  VpnClientParameters:
    description: Vpn Client Parameters for package generation
    properties:
      authenticationMethod:
        description: 'VPN client Authentication Method. Possible values are: ''EAPTLS'' and ''EAPMSCHAPv2''.'
        enum:
          - EAPTLS
          - EAPMSCHAPv2
        type: string
        x-ms-enum:
          modelAsString: true
          name: AuthenticationMethod
      clientRootCertificates:
        description: A list of client root certificates public certificate data encoded as Base-64 strings. Optional parameter for external radius based authentication with EAPTLS.
        items:
          type: string
        type: array
      processorArchitecture:
        description: 'VPN client Processor Architecture. Possible values are: ''AMD64'' and ''X86''.'
        enum:
          - Amd64
          - X86
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProcessorArchitecture
      radiusServerAuthCertificate:
        description: The public certificate data for the radius server authentication certificate as a Base-64 encoded string. Required only if external radius authentication has been configured with EAPTLS authentication.
        type: string
  VpnClientRevokedCertificate:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: VPN client revoked certificate of virtual network gateway.
    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:
        $ref: '#/definitions/VpnClientRevokedCertificatePropertiesFormat'
        description: Properties of the vpn client revoked certificate.
        x-ms-client-flatten: true
  VpnClientRevokedCertificatePropertiesFormat:
    description: Properties of the revoked VPN client certificate of virtual network gateway.
    properties:
      provisioningState:
        description: 'The provisioning state of the VPN client revoked certificate resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      thumbprint:
        description: The revoked VPN client certificate thumbprint.
        type: string
  VpnClientRootCertificate:
    allOf:
      - description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
    description: VPN client root certificate of virtual network gateway
    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:
        $ref: '#/definitions/VpnClientRootCertificatePropertiesFormat'
        description: Properties of the vpn client root certificate.
        x-ms-client-flatten: true
    required:
      - properties
  VpnClientRootCertificatePropertiesFormat:
    description: Properties of SSL certificates of application gateway
    properties:
      provisioningState:
        description: 'The provisioning state of the VPN client root certificate resource. Possible values are: ''Updating'', ''Deleting'', and ''Failed''.'
        readOnly: true
        type: string
      publicCertData:
        description: The certificate public data.
        type: string
    required:
      - publicCertData
  VpnDeviceScriptParameters:
    description: Vpn device configuration script generation parameters
    properties:
      deviceFamily:
        description: The device family for the vpn device.
        type: string
      firmwareVersion:
        description: The firmware version for the vpn device.
        type: string
      vendor:
        description: The vendor for the vpn device.
        type: string
  virtualNetworkConnectionGatewayReference:
    description: A reference to VirtualNetworkGateway or LocalNetworkGateway resource.
    properties:
      id:
        description: The ID of VirtualNetworkGateway or LocalNetworkGateway resource.
        type: string
    required:
      - id
