6.5.1 PUT schema

 {
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "PUT JSON Schema for loadBalancers",
   "type": "object",
   "definitions": {
     "resourceRef": {
       "type": "object",
       "additionalProperties": false,
       "properties": {
         "resourceRef": {
           "type": "string"
         }
       },
       "required": [
         "resourceRef"
       ]
     },
     "protocol": {
       "enum": [ "Tcp", "Udp", "Http", "Https", "GRE", "ESP", "All" ]
     },
     "loadDistribution": {
       "enum": [ "Default", "SourceIP", "SourceIPProtocol" ]
     },
     "ipAllocationMethod": {
       "enum": [ "Dynamic", "Static", "Unmanaged" ]
     },
     "provisioningState": {
       "enum": [ "Succeeded", "Updating", "Deleting", "Failed" ]
     }
   },
   "properties": {
     "resourceRef": {
       "type": "string"
     },
     "resourceId": {
       "type": "string"
     },
     "instanceId": {
       "type": "string"
     },
     "properties": {
       "type": "object",
       "properties": {
         "provisioningState": {
           "$ref": "#/definitions/provisioningState"
         },
         "frontendIPConfigurations": {
           "type": "array",
           "items": {
             "type": "object",
             "properties": {
               "resourceRef": {
                 "type": "string"
               },
               "resourceId": {
                 "type": "string"
               },
               "instanceId": {
                 "type": "string"
               },
               "properties": {
                 "type": "object",
                 "properties": {
                   "provisioningState": {
                     "$ref": "#/definitions/provisioningState"
                   },
                   "privateIPAddress": {
                     "type": "string",
                     "format": "ipv4"
                   },
                   "privateIPAllocationMethod": {
                     "$ref": "#/definitions/ipAllocationMethod"
                   },
                   "subnet": {
                     "$ref": "#/definitions/resourceRef"
                   },
                   "loadBalancingRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "inboundNatRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "outboundNatRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   }
                 }
               }
             },
             "required": [
               "properties"
             ]
           }
         },
         "backendAddressPools": {
           "type": "array",
           "items": {
             "type": "object",
             "properties": {
               "resourceRef": {
                 "type": "string"
               },
               "resourceId": {
                 "type": "string"
               },
               "instanceId": {
                 "type": "string"
               },
               "properties": {
                 "type": "object",
                 "properties": {
                   "provisioningState": {
                     "$ref": "#/definitions/provisioningState"
                   },
                   "backendIPConfigurations": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "outboundNatRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "loadBalancingRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   }
                 },
                 "required": [
                   "backendIPConfigurations"
                 ]
               }
             },
             "required": [
               "properties"
             ]
           }
         },
         "loadBalancingRules": {
           "type": "array",
           "items": {
             "type": "object",
             "properties": {
               "resourceRef": {
                 "type": "string"
               },
               "resourceId": {
                 "type": "string"
               },
               "instanceId": {
                 "type": "string"
               },
               "properties": {
                 "type": "object",
                 "properties": {
                   "provisioningState": {
                     "$ref": "#/definitions/provisioningState"
                   },
                   "frontendIPConfigurations": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "protocol": {
                     "$ref": "#/definitions/protocol"
                   },
                   "frontendPort": {
                     "type": "integer"
                   },
                   "backendPort": {
                     "type": "integer"
                   },
                   "enableFloatingIP": {
                     "type": "boolean"
                   },
                   "idleTimeoutInMinutes": {
                     "type": "integer"
                   },
                   "backendAddressPool": {
                     "$ref": "#/definitions/resourceRef"
                   },
                   "loadDistribution": {
                     "$ref": "#/definitions/loadDistribution"
                   }
                 },
                 "required": [
                   "frontendIPConfigurations",
                   "protocol",
                   "frontendPort"
                 ]
               }
             },
             "required": [
               "properties"
             ]
           }
         },
         "probes": {
           "type": "array",
           "items": {
             "type": "object",
             "properties": {
               "resourceRef": {
                 "type": "string"
               },
               "resourceId": {
                 "type": "string"
               },
               "instanceId": {
                 "type": "string"
               },
               "properties": {
                 "type": "object",
                 "properties": {
                   "provisioningState": {
                     "$ref": "#/definitions/provisioningState"
                   },
                   "protocol": {
                     "$ref": "#/definitions/protocol"
                   },
                   "port": {
                     "type": "integer"
                   },
                   "intervalInSeconds": {
                     "type": "integer"
                   },
                   "numberOfProbes": {
                     "type": "integer"
                   },
                   "loadBalancingRules": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   }
                 },
                 "required": [
                   "protocol",
                   "port"
                 ]
               }
             },
             "required": [
               "properties"
             ]
           }
         },
         "outboundNatRules": {
           "type": "array",
           "items": {
             "type": "object",
             "properties": {
               "resourceRef": {
                 "type": "string"
               },
               "resourceId": {
                 "type": "string"
               },
               "instanceId": {
                 "type": "string"
               },
               "properties": {
                 "type": "object",
                 "properties": {
                   "provisioningState": {
                     "$ref": "#/definitions/provisioningState"
                   },
                   "frontendIPConfigurations": {
                     "type": "array",
                     "items": {
                       "$ref": "#/definitions/resourceRef"
                     }
                   },
                   "protocol": {
                     "$ref": "#/definitions/protocol"
                   },
                   "backendAddressPool": {
                     "$ref": "#/definitions/resourceRef"
                   }
                 },
                 "required": [
                   "frontendIPConfigurations",
                   "protocol",
                   "backendAddressPool"
                 ]
               }
             },
             "required": [
               "properties"
             ]
           }
         }
       },
       "required": [
         "frontendIPConfigurations"
       ]
     }
   },
   "required": [
     "properties"
   ]
 }