6.4.1 PUT schema

 {
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "PUT JSON Schema for gateways",
   "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": {
     "resourceId": {
       "type": "string"
     },
     "properties": {
       "type": "object",
       "properties": {
         "pool": {
           "type": "object",
           "properties": {
             "resourceRef": {
               "type": "string"
             }
           },
           "required": [
             "resourceRef"
           ]
         },
         "types": {
           "type": "array",
           "items": {
             "enum": [ "s2sipsec", "s2sgre", "forwarding", "vpn" ]
           }
         },
         "virtualServer": {
           "type": "object",
           "properties": {
             "resourceRef": {
               "type": "string"
             }
           },
           "required": [
             "resourceRef"
           ]
         },
         "networkInterfaces": {
           "type": "object",
           "properties": {
             "externalNetworkInterface": {
               "type": "object",
               "properties": {
                 "resourceRef": {
                   "type": "string"
                 }
               },
               "required": [
                 "resourceRef"
               ]
             },
             "internalNetworkInterface": {
               "type": "object",
               "properties": {
                 "resourceRef": {
                   "type": "string"
                 }
               },
               "required": [
                 "resourceRef"
               ]
             }
           },
           "required": [
             "externalNetworkInterface",
             "internalNetworkInterface"
           ]
         },
         "bgpConfig": {
           "type": "object",
           "properties": {
             "extASNumber": {
               "type": "string"
             },
             "bgpPeer": {
               "type": "array",
               "items": {
                 "type": "object",
                 "properties": {
                   "peerIP": {
                     "type": "string"
                   },
                   "peerExtAsNumber": {
                     "type": "string"
                   }
                 },
                 "required": [
                   "peerIP",
                   "peerExtAsNumber"
                 ]
               }
             }
           },
           "required": [
             "extASNumber",
             "bgpPeer"
           ]
         }
       },
       "required": [
         "pool",
         "types",
         "virtualServer",
         "networkInterfaces"
       ]
     }
   },
   "required": [
     "resourceId",
     "properties"
   ]
 }