{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "GET JSON Schema for VirtualGateways",
"definitions": {
"GUID": {
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"resourceMetadata": {
"properties": {
"client": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"groupId": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"originalHref": {
"type": "string"
}
}
},
"provisioningState": {
"enum": [ "Succeeded", "Updating", "Deleting", "Failed" ]
}
},
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"etag": {
"type": "string"
},
"instanceId": {
"$ref": "#/definitions/GUID"
},
"properties": {
"type": "object",
"properties": {
"provisioningState": {
"$ref": "#/definitions/provisioningState"
},
"networkConnections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"etag": {
"type": "string"
},
"instanceId": {
"$ref": "#/definitions/GUID"
},
"properties": {
"type": "object",
"properties": {
"provisioningState": {
"$ref": "#/definitions/provisioningState"
},
"connectionType": {
"enum": [ "IPSec", "GRE", "L3" ]
},
"outboundKiloBitsPerSecond": {
"type": "integer"
},
"inboundKiloBitsPerSecond": {
"type": "integer"
},
"ipSecConfiguration": {
"type": "object",
"properties": {
"authenticationMethod": {
"enum": [ "Certificates", "PSK" ]
},
"quickMode": {
"type": "object",
"properties": {
"perfectForwardSecrecy": {
"enum": [ "None", "PFS1", "PFS2", "PFS2048", "ECP256", "ECP384", "PFSMM", "PFS24" ]
},
"cipherTransformationConstant": {
"enum": [ "DES", "DES3", "AES128", "AES192", "AES256", "GCMAES128", "GCMAES192", "GCMAES256" ]
},
"authenticationTransformationConstant": {
"enum": [ "MD596", "SHA196", "SHA256128", "GCMAES128", "GCMAES192", "GCMAES256", "None" ]
},
"idleDisconnectSeconds": {
"type": "integer"
},
"saLifeTimeSeconds": {
"type": "integer"
},
"saLifeTimeKiloBytes": {
"type": "integer"
}
},
"required": [
"perfectForwardSecrecy",
"cipherTransformationConstant",
"authenticationTransformationConstant",
"idleDisconnectSeconds",
"saLifeTimeSeconds",
"saLifeTimeKiloBytes"
]
},
"mainMode": {
"type": "object",
"properties": {
"diffieHellmanGroup": {
"enum": [ "Group1", "Group2", "Group14", "ECP258", "ECP384" ]
},
"encryptionAlgorithm": {
"enum": [ "DES", "DES3", "AES128", "AES192", "AES256" ]
},
"integrityAlgorithm": {
"enum": [ "MD5", "SHA1", "SHA256", "SHA384" ]
},
"saLifeTimeSeconds": {
"type": "integer"
},
"saLifeTimeKiloBytes": {
"type": "integer"
}
},
"required": [
"diffieHellmanGroup",
"encryptionAlgorithm",
"integrityAlgorithm",
"saLifeTimeSeconds",
"saLifeTimeKiloBytes"
]
},
"localVpnTrafficSelector": {
"type": "array",
"items":
{
"type": "string"
}
},
"remoteVpnTrafficSelector": {
"type": "array",
"items":
{
"type": "string"
}
}
}
},
"greConfiguration": {
"type": "object",
"properties": {
"greKey": {
"type": "string"
}
}
},
"l3Configuration": {
"type": "object",
"properties": {
"vlanSubnet": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
}
}
}
}
},
"ipAddresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ipAddress": {
"type": "string"
},
"prefixLength": {
"type": "integer"
}
},
"required": [
"ipAddress",
"prefixLength"
]
}
},
"peerIPAddresses": {
"type": "array",
"items": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationPrefix": {
"type": "string"
},
"nextHop": {
"type": "string"
},
"metric": {
"type": "integer"
},
"protocol": {
"type": "string"
}
},
"required": [
"destinationPrefix",
"nextHop",
"metric",
"protocol"
]
}
},
"connectionStatus": {
"type": "string"
},
"connectionState": {
"type": "string"
},
"connectionUpTime": {
"type": "string"
},
"connectionErrorReason": {
"type": "string"
},
"unreachabilityReason": {
"type": "string"
},
"statistics": {
"type": "object",
"properties": {
"outboundBytes": {
"type": "integer"
},
"inboundBytes": {
"type": "integer"
},
"rxTotalPacketsDropped": {
"type": "integer"
},
"txTotalPacketsDropped": {
"type": "integer"
},
"txRateKbps": {
"type": "integer"
},
"rxRateKbps": {
"type": "integer"
},
"txRateLimitedPacketsDropped": {
"type": "integer"
},
"rxRateLimitedPacketsDropped": {
"type": "integer"
},
"lastUpdated": {
"type": "string"
}
},
"required": [
"outboundBytes",
"inboundBytes",
"rxTotalPacketsDropped",
"txTotalPacketsDropped",
"txRateKbps",
"rxRateKbps",
"txRateLimitedPacketsDropped",
"rxRateLimitedPacketsDropped",
"lastUpdated"
]
},
"configurationState": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"lastUpdatedTime": {
"type": "string"
}
},
"required": [
"status",
"lastUpdatedTime"
]
},
"gateway": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
}
},
"required": [
"resourceRef"
]
}
},
"required": [
"provisioningState",
"connectionType",
"outboundKiloBitsPerSecond",
"inboundKiloBitsPerSecond",
"ipAddresses",
"routes",
"connectionStatus",
"connectionState",
"connectionUpTime",
"statistics",
"configurationState",
"gateway"
]
}
},
"required": [
"resourceRef",
"resourceId",
"etag",
"instanceId",
"properties"
]
}
},
"bgpRouters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"etag": {
"type": "string"
},
"instanceId": {
"$ref": "#/definitions/GUID"
},
"properties": {
"type": "object",
"properties": {
"provisioningState": {
"$ref": "#/definitions/provisioningState"
},
"isEnabled": {
"type": "boolean"
},
"requireIgpSync": {
"type": "boolean"
},
"extAsNumber": {
"type": "string"
},
"routerId": {
"type": "string"
},
"routerIP": {
"type": "array",
"items": {
"type": "string"
}
},
"isGenerated": {
"type": "boolean"
},
"bgpPeers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"etag": {
"type": "string"
},
"instanceId": {
"$ref": "#/definitions/GUID"
},
"properties": {
"type": "object",
"properties": {
"provisioningState": {
"$ref": "#/definitions/provisioningState"
},
"asNumber": {
"type": "string"
},
"extAsNumber": {
"type": "string"
},
"peerIpAddress": {
"type": "string"
},
"connectionState": {
"type": "string"
},
"statistics": {
"type": "object",
"properties": {
"tcpConnectionClosed": {
"type": "string"
},
"openMessageStats": {
"type": "object",
"properties": {
"sentCount": {
"type": "integer"
},
"receivedCount": {
"type": "integer"
}
},
"required": [
"sentCount",
"receivedCount"
]
},
"notificationMessageStats": {
"type": "object",
"properties": {
"sentCount": {
"type": "integer"
},
"receivedCount": {
"type": "integer"
}
},
"required": [
"sentCount",
"receivedCount"
]
},
"keepAliveMessageStats": {
"type": "object",
"properties": {
"sentCount": {
"type": "integer"
},
"receivedCount": {
"type": "integer"
}
},
"required": [
"sentCount",
"receivedCount"
]
},
"routeRefreshMessageStats": {
"type": "object",
"properties": {
"sentCount": {
"type": "integer"
},
"receivedCount": {
"type": "integer"
}
},
"required": [
"sentCount",
"receivedCount"
]
},
"updateMessageStats": {
"type": "object",
"properties": {
"sentCount": {
"type": "integer"
},
"receivedCount": {
"type": "integer"
}
},
"required": [
"sentCount",
"receivedCount"
]
},
"ipv4Route": {
"type": "object",
"properties": {
"updateSentCount": {
"type": "integer"
},
"updateReceivedCount": {
"type": "integer"
},
"withdrawlSentCount": {
"type": "integer"
},
"withdrawlReceivedCount": {
"type": "integer"
}
},
"required": [
"updateSentCount",
"updateReceivedCount",
"withdrawlSentCount",
"withdrawlReceivedCount"
]
},
"ipv6Route": {
"type": "object",
"properties": {
"updateSentCount": {
"type": "integer"
},
"updateReceivedCount": {
"type": "integer"
},
"withdrawlSentCount": {
"type": "integer"
},
"withdrawlReceivedCount": {
"type": "integer"
}
},
"required": [
"updateSentCount",
"updateReceivedCount",
"withdrawlSentCount",
"withdrawlReceivedCount"
]
},
"lastUpdated": {
"type": "string"
}
},
"required": [
"tcpConnectionClosed",
"openMessageStats",
"notificationMessageStats",
"keepAliveMessageStats",
"routeRefreshMessageStats",
"updateMessageStats",
"ipv4Route",
"ipv6Route",
"lastUpdated"
]
},
"isGenerated": {
"type": "boolean"
}
},
"required": [
"provisioningState",
"asNumber",
"extAsNumber",
"peerIpAddress",
"connectionState",
"statistics",
"isGenerated"
]
}
},
"required": [
"resourceRef",
"resourceId",
"etag",
"instanceId",
"properties"
]
}
},
"configurationState": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"lastUpdatedTime": {
"type": "string"
}
},
"required": [
"status",
"lastUpdatedTime"
]
}
},
"required": [
"provisioningState",
"configurationState"
]
}
},
"required": [
"resourceRef",
"resourceId",
"etag",
"instanceId",
"properties"
]
}
},
"policyMaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"etag": {
"type": "string"
},
"instanceId": {
"$ref": "#/definitions/GUID"
},
"properties": {
"type": "object",
"properties": {
"provisioningState": {
"$ref": "#/definitions/provisioningState"
},
"bgpPeersWithPolicyMapIn": {
"type": "array",
"items": {}
},
"bgpPeersWithPolicyMapOut": {
"type": "array",
"items": {}
},
"policyMapEntryList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"matchCriteria": {
"type": "array",
"items": {
"type": "object",
"properties": {
"property": {
"type": "string"
},
"value": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"property",
"value"
]
}
},
"setActions": {
"type": "array",
"items": {}
}
},
"required": [
"action",
"matchCriteria",
"setActions"
]
}
}
},
"required": [
"provisioningState",
"bgpPeersWithPolicyMapIn",
"bgpPeersWithPolicyMapOut",
"policyMapEntryList"
]
}
},
"required": [
"resourceRef",
"resourceId",
"etag",
"instanceId",
"properties"
]
}
},
"routingType": {
"type": "string"
},
"GatewayPools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
}
},
"required": [
"resourceRef"
]
}
},
"configurationState": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"lastUpdatedTime": {
"type": "string"
}
},
"required": [
"status",
"lastUpdatedTime"
]
},
"gatewaySubnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceRef": {
"type": "string"
}
},
"required": [
"resourceRef"
]
}
}
},
"required": [
"provisioningState",
"networkConnections",
"bgpRouters",
"routingType",
"GatewayPools",
"configurationState",
"gatewaySubnets"
]
}
},
"required": [
"resourceRef",
"resourceId",
"etag",
"instanceId",
"properties"
]
}