{
  "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/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"
        ]
      },
      "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": "",
            "schema": {
              "$ref": "#/definitions/ConnectionSharedKeyResult"
            }
          }
        },
        "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": "",
            "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/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",
            "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",
            "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"
        ]
      },
      "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",
            "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"
        ]
      },
      "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}/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": {
          "202": {
            "description": "VPN client package URL.",
            "schema": {
              "type": "string"
            }
          }
        },
        "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": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/VirtualNetworkGateway"
            }
          },
          {
            "$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"
        }
      }
    }
  },
  "definitions": {
    "BgpSettings": {
      "properties": {
        "asn": {
          "description": "Gets or sets this BGP speaker's ASN",
          "format": "int64",
          "type": "integer"
        },
        "bgpPeeringAddress": {
          "description": "Gets or sets the BGP peering address and BGP identifier of this BGP speaker",
          "type": "string"
        },
        "peerWeight": {
          "description": "Gets or sets the weight added to routes learned from this BGP speaker",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "ConnectionResetSharedKey": {
      "properties": {
        "keyLength": {
          "description": "The virtual network connection reset shared key length",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "ConnectionSharedKey": {
      "description": "Response for GetConnectionSharedKey API service call",
      "properties": {
        "value": {
          "description": "The virtual network connection shared key value",
          "type": "string"
        }
      }
    },
    "ConnectionSharedKeyResult": {
      "description": "Response for CheckConnectionSharedKey API service call",
      "properties": {
        "value": {
          "description": "The virtual network connection shared key value",
          "type": "string"
        }
      }
    },
    "LocalNetworkGateway": {
      "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": "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/LocalNetworkGatewayPropertiesFormat",
          "x-ms-client-flatten": true
        }
      }
    },
    "LocalNetworkGatewayListResult": {
      "description": "Response for ListLocalNetworkGateways API service call.",
      "properties": {
        "nextLink": {
          "description": "The URL to get the next set of results.",
          "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": "Gets or sets Provisioning state of the LocalNetworkGateway resource Updating/Deleting/Failed",
          "type": "string"
        },
        "resourceGuid": {
          "description": "The resource GUID property of the LocalNetworkGateway resource.",
          "type": "string"
        }
      }
    },
    "VirtualNetworkGateway": {
      "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": "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",
          "x-ms-client-flatten": true
        }
      }
    },
    "VirtualNetworkGatewayConnection": {
      "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": "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",
          "x-ms-client-flatten": true
        }
      }
    },
    "VirtualNetworkGatewayConnectionListResult": {
      "description": "Response for the ListVirtualNetworkGatewayConnections API service call",
      "properties": {
        "nextLink": {
          "description": "The URL to get the next set of results.",
          "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"
          ],
          "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",
          "type": "integer"
        },
        "enableBgp": {
          "description": "EnableBgp flag",
          "type": "boolean"
        },
        "ingressBytesTransferred": {
          "description": "The ingress bytes transferred in this connection.",
          "format": "int64",
          "type": "integer"
        },
        "localNetworkGateway2": {
          "$ref": "#/definitions/LocalNetworkGateway"
        },
        "peer": {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        },
        "provisioningState": {
          "description": "The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
          "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"
        },
        "virtualNetworkGateway1": {
          "$ref": "#/definitions/VirtualNetworkGateway"
        },
        "virtualNetworkGateway2": {
          "$ref": "#/definitions/VirtualNetworkGateway"
        }
      }
    },
    "VirtualNetworkGatewayIPConfiguration": {
      "allOf": [
        {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "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",
          "x-ms-client-flatten": true
        }
      }
    },
    "VirtualNetworkGatewayIPConfigurationPropertiesFormat": {
      "description": "Properties of VirtualNetworkGatewayIPConfiguration",
      "properties": {
        "privateIPAddress": {
          "description": "Gets or sets the privateIPAddress 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": "The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.",
          "type": "string"
        },
        "publicIPAddress": {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        },
        "subnet": {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      }
    },
    "VirtualNetworkGatewayListResult": {
      "description": "Response for the ListVirtualNetworkGateways API service call.",
      "properties": {
        "nextLink": {
          "description": "The URL to get the next set of results.",
          "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": {
        "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": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "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'.",
          "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 -Basic/HighPerformance/Standard",
          "enum": [
            "Basic",
            "HighPerformance",
            "Standard"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "VirtualNetworkGatewaySkuName"
          }
        },
        "tier": {
          "description": "Gateway sku tier -Basic/HighPerformance/Standard",
          "enum": [
            "Basic",
            "HighPerformance",
            "Standard"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "VirtualNetworkGatewaySkuTier"
          }
        }
      }
    },
    "VpnClientConfiguration": {
      "description": "VpnClientConfiguration for P2S client",
      "properties": {
        "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"
            }
          }
        },
        "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": "VpnClientParameters",
      "properties": {
        "ProcessorArchitecture": {
          "description": "VPN client Processor Architecture. Possible values are: 'AMD64' and 'X86'.",
          "enum": [
            "Amd64",
            "X86"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProcessorArchitecture"
          }
        }
      }
    },
    "VpnClientRevokedCertificate": {
      "allOf": [
        {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "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",
          "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'.",
          "type": "string"
        },
        "thumbprint": {
          "description": "The revoked VPN client certificate thumbprint.",
          "type": "string"
        }
      }
    },
    "VpnClientRootCertificate": {
      "allOf": [
        {
          "description": "Azure resource manager sub resource properties.",
          "properties": {
            "id": {
              "description": "Resource Identifier.",
              "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",
          "x-ms-client-flatten": true
        }
      }
    },
    "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'.",
          "type": "string"
        },
        "publicCertData": {
          "description": "Gets or sets the certificate public data",
          "type": "string"
        }
      }
    }
  }
}