{
  "id": "https://schema.management.azure.com/schemas/2015-08-01/Microsoft.Compute.json#",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Microsoft.Compute",
  "description": "Microsoft Compute Resource Types",
  "resourceDefinitions": {
    "availabilitySets": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "Microsoft.Compute/availabilitySets"
          ]
        },
        "apiVersion": {
          "enum": [
            "2015-05-01-preview",
            "2015-06-15"
          ]
        },
        "properties": {
          "type": "object",
          "properties": {
            "platformUpdateDomainCount": {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/numberOrExpression",
              "description": "Microsoft.Compute/availabilitySets - Platform update domain count"
            },
            "platformFaultDomainCount": {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/numberOrExpression",
              "description": "Microsoft.Compute/availabilitySets - Platform fault domain count"
            }
          }
        }
      },
      "required": [
        "type",
        "apiVersion",
        "properties",
        "location"
      ],
      "description": "Microsoft.Compute/availabilitySets"
    },
    "virtualMachines": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "Microsoft.Compute/virtualMachines"
          ]
        },
        "apiVersion": {
          "enum": [
            "2015-05-01-preview",
            "2015-06-15"
          ]
        },
        "properties": {
          "properties": {
            "availabilitySet": {
              "oneOf": [
                { "$ref": "#/definitions/id" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachines - Availability set"
            },
            "hardwareProfile": {
              "oneOf": [
                { "$ref": "#/definitions/hardwareProfile" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachines - Hardware profile"
            },
            "storageProfile": {
              "oneOf": [
                { "$ref": "#/definitions/storageProfile" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachines - Storage profile"
            },
            "osProfile": {
              "oneOf": [
                { "$ref": "#/definitions/osProfile" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Mirosoft.Compute/virtualMachines - Operating system profile"
            },
            "networkProfile": {
              "oneOf": [
                { "$ref": "#/definitions/networkProfile" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachines - Network profile"
            }
          },
          "type": "object",
          "required": [
            "hardwareProfile",
            "storageProfile",
            "networkProfile"
          ]
        },
        "resources": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/resourceBase"
              },
              {
                "$ref": "#/definitions/extensionsChild"
              }
            ]
          },
          "description": "Microsoft.Compute/virtualMachines: Resource Definition for Virtual Machines."
        }
      },
      "required": [
        "type",
        "apiVersion",
        "properties",
        "location"
      ],
      "description": "Microsoft.Compute/virtualMachines"
    },
    "virtualMachineScaleSets": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "Microsoft.Compute/virtualMachineScaleSets"
          ]
        },
        "apiVersion": {
          "enum": [
            "2015-05-01-preview",
            "2015-06-15"
          ]
        },
        "sku": {
          "$ref": "#/definitions/sku"
        },
        "properties": {
          "properties": {
            "upgradePolicy": {
              "oneOf": [
                { "$ref": "#/definitions/upgradePolicy" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachineScaleSets - Upgrade policy"
            },
            "virtualMachineProfile": {
              "oneOf": [
                { "$ref": "#/definitions/virtualMachineProfile" },
                { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
              ],
              "description": "Microsoft.Compute/virtualMachineScaleSets - Virtual machine policy"
            }
          },
          "type": "object",
          "required": [
            "upgradePolicy",
            "virtualMachineProfile"
          ]
        }
      },
      "required": [
        "name",
        "apiVersion",
        "type",
        "sku",
        "properties",
        "location"
      ],
      "description": "Microsoft.Compute/virtualMachineScaleSets"
    },
    "extensions": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "Microsoft.Compute/virtualMachines/extensions"
          ]
        },
        "apiVersion": {
          "enum": [
            "2015-05-01-preview",
            "2015-06-15",
            "2016-03-30"
          ]
        },
        "properties": {
          "anyOf": [
            { "$ref": "#/definitions/genericExtension" },
            { "$ref": "#/definitions/iaaSDiagnostics" },
            { "$ref": "#/definitions/iaaSAntimalware" },
            { "$ref": "#/definitions/customScriptExtension" },
            { "$ref": "#/definitions/customScriptForLinux"},
            { "$ref": "#/definitions/linuxDiagnostic"},
            { "$ref": "#/definitions/vmAccessForLinux"},
            { "$ref": "#/definitions/bgInfo"},
            { "$ref": "#/definitions/vmAccessAgent"},
            { "$ref": "#/definitions/dscExtension"},
            { "$ref": "#/definitions/acronisBackupLinux"},
            { "$ref": "#/definitions/acronisBackup"},
            { "$ref": "#/definitions/linuxChefClient"},
            { "$ref": "#/definitions/chefClient"},
            { "$ref": "#/definitions/datadogLinuxAgent"},
            { "$ref": "#/definitions/datadogWindowsAgent"},
            { "$ref": "#/definitions/dockerExtension"},
            { "$ref": "#/definitions/dynatraceLinux"},
            { "$ref": "#/definitions/dynatraceWindows"},
            { "$ref": "#/definitions/eset"},
            { "$ref": "#/definitions/hpeSecurityApplicationDefender"},
            { "$ref": "#/definitions/puppetAgent"},
            { "$ref": "#/definitions/site24x7LinuxServerExtn"},
            { "$ref": "#/definitions/site24x7WindowsServerExtn"},
            { "$ref": "#/definitions/site24x7ApmInsightExtn"},
            { "$ref": "#/definitions/trendMicroDSALinux"},
            { "$ref": "#/definitions/trendMicroDSA"},
            { "$ref": "#/definitions/bmcCtmAgentLinux"},
            { "$ref": "#/definitions/bmcCtmAgentWindows"},
            { "$ref": "#/definitions/OSPatchingForLinux"},
            { "$ref": "#/definitions/VMSnapshot"},
            { "$ref": "#/definitions/VMSnapshotLinux"},
            { "$ref": "#/definitions/customScript"},
            { "$ref": "#/definitions/networkWatcherAgentWindows"},
            { "$ref": "#/definitions/networkWatcherAgentLinux"}
          ]
        }
      },
      "required": [
        "type",
        "properties",
        "apiVersion",
        "location"
      ],
      "description": "Microsoft.Compute/virtualMachines/extensions"
    }
  },
  "definitions": {
    "extensionsChild": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "extensions"
          ]
        },
        "apiVersion": {
          "enum": [
            "2015-05-01-preview",
            "2015-06-15",
            "2016-03-30"
          ]
        },
        "properties": {
          "anyOf": [
            { "$ref": "#/definitions/genericExtension" },
            { "$ref": "#/definitions/iaaSDiagnostics" },
            { "$ref": "#/definitions/iaaSAntimalware" },
            { "$ref": "#/definitions/customScriptExtension" },
            { "$ref": "#/definitions/customScriptForLinux"},
            { "$ref": "#/definitions/linuxDiagnostic"},
            { "$ref": "#/definitions/vmAccessForLinux"},
            { "$ref": "#/definitions/bgInfo"},
            { "$ref": "#/definitions/vmAccessAgent"},
            { "$ref": "#/definitions/dscExtension"},
            { "$ref": "#/definitions/acronisBackupLinux"},
            { "$ref": "#/definitions/acronisBackup"},
            { "$ref": "#/definitions/linuxChefClient"},
            { "$ref": "#/definitions/chefClient"},
            { "$ref": "#/definitions/datadogLinuxAgent"},
            { "$ref": "#/definitions/datadogWindowsAgent"},
            { "$ref": "#/definitions/dockerExtension"},
            { "$ref": "#/definitions/dynatraceLinux"},
            { "$ref": "#/definitions/dynatraceWindows"},
            { "$ref": "#/definitions/eset"},
            { "$ref": "#/definitions/hpeSecurityApplicationDefender"},
            { "$ref": "#/definitions/puppetAgent"},
            { "$ref": "#/definitions/site24x7LinuxServerExtn"},
            { "$ref": "#/definitions/site24x7WindowsServerExtn"},
            { "$ref": "#/definitions/site24x7ApmInsightExtn"},
            { "$ref": "#/definitions/trendMicroDSALinux"},
            { "$ref": "#/definitions/trendMicroDSA"},
            { "$ref": "#/definitions/bmcCtmAgentLinux"},
            { "$ref": "#/definitions/bmcCtmAgentWindows"},
            { "$ref": "#/definitions/OSPatchingForLinux"},
            { "$ref": "#/definitions/VMSnapshot"},
            { "$ref": "#/definitions/VMSnapshotLinux"},
            { "$ref": "#/definitions/acronisBackupLinux"},
            { "$ref": "#/definitions/acronisBackup"},
            { "$ref": "#/definitions/linuxChefClient"},
            { "$ref": "#/definitions/chefClient"},
            { "$ref": "#/definitions/datadogLinuxAgent"},
            { "$ref": "#/definitions/datadogWindowsAgent"},
            { "$ref": "#/definitions/dockerExtension"},
            { "$ref": "#/definitions/customScript"},
            { "$ref": "#/definitions/networkWatcherAgentWindows"},
            { "$ref": "#/definitions/networkWatcherAgentLinux"}
          ]
        }
      },
      "required": [
        "type",
        "apiVersion",
        "properties",
        "location"
      ],
      "description": "Microsoft.Compute/extensionsChild"
    },
    "id": {
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "networkInterfaces": {
      "properties": {
        "id": {
          "type": "string"
        },
        "properties": {
          "properties": {
            "primary": {
              "type": "boolean"
            }
          },
          "type": "object",
          "required": [
            "primary"
          ]
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "hardwareProfile": {
      "properties": {
        "vmSize": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "vmSize"
      ]
    },
    "imageReference": {
      "properties": {
        "publisher": {
          "type": "string"
        },
        "offer": {
          "type": "string"
        },
        "sku": {
          "type": "string"
        },
        "version": {
          "type": "string",
          "default": "latest"
        }
      },
      "type": "object",
      "required": [
        "publisher",
        "offer",
        "sku",
        "version"
      ]
    },
    "vhd": {
      "properties": {
        "uri": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "uri"
      ]
    },
    "osDisk": {
      "properties": {
        "name": {
          "type": "string"
        },
        "vhd": {
          "$ref": "#/definitions/vhd"
        },
        "image": {
          "$ref": "#/definitions/vhd"
        },
        "caching": {
          "type": "string"
        },
        "createOption": {
          "oneOf": [
            {
              "enum": [
                "FromImage",
                "Empty",
                "Attach"
              ]
            },
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "name",
        "vhd",
        "createOption"
      ]
    },
    "vhdUri": {
      "properties": {
        "uri": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "uri"
      ]
    },
    "dataDisk": {
      "properties": {
        "name": {
          "type": "string"
        },
        "diskSizeGB": {
          "type": "string"
        },
        "lun": {
          "type": "number"
        },
        "vhd": {
          "$ref": "#/definitions/vhdUri"
        },
        "caching": {
          "type": "string"
        },
        "createOption": {
          "oneOf": [
            {
              "enum": [
                "FromImage",
                "Empty",
                "Attach"
              ]
            },
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "name",
        "lun",
        "vhd",
        "createOption"
      ]
    },
    "storageProfile": {
      "properties": {
        "imageReference": {
          "oneOf": [
            {"$ref": "#/definitions/imageReference"},
            {"$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"}
          ]
        },
        "osDisk": {
          "$ref": "#/definitions/osDisk"
        },
        "dataDisks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dataDisk"
          }
        }
      },
      "type": "object",
      "required": [
        "osDisk"
      ]
    },
    "winRMListener": {
      "properties": {
        "protocol": {
          "oneOf": [
            {
              "enum": [
                "Http",
                "Https"
              ]
            },
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            }
          ]
        },
        "certificateUrl": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "protocol",
        "certificateUrl"
      ]
    },
    "winRM": {
      "properties": {
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/winRMListener"
          }
        }
      },
      "type": "object",
      "required": [
        "listeners"
      ]
    },
    "additionalUnattendContent": {
      "properties": {
        "pass": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "settingName": {
          "type": "string"
        },
        "content": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "pass",
        "component",
        "settingName",
        "content"
      ]
    },
    "windowsConfiguration": {
      "properties": {
        "provisionVMAgent": {
          "type": "boolean"
        },
        "winRM": {
          "$ref": "#/definitions/winRM"
        },
        "additionalUnattendContent": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/additionalUnattendContent"
          }
        },
        "enableAutomaticUpdates": {
          "type": "boolean"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "publicKey": {
      "properties": {
        "path": {
          "type": "string"
        },
        "keyData": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ssh": {
      "properties": {
        "publicKeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/publicKey"
          }
        }
      },
      "type": "object"
    },
    "linuxConfiguration": {
      "properties": {
        "disablePasswordAuthentication": {
          "oneOf": [
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            },
            {
              "type": "boolean"
            }
          ]
        },
        "ssh": {
          "$ref": "#/definitions/ssh"
        }
      },
      "type": "object"
    },
    "vaultCertificateUrl": {
      "properties": {
        "certificateUrl": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "certificateUrl"
      ]
    },
    "secret": {
      "properties": {
        "sourceVault": {
          "$ref": "#/definitions/id"
        },
        "vaultCertificates": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/vaultCertificateUrl"
          }
        }
      },
      "type": "object",
      "required": [
        "sourceVault",
        "vaultCertificates"
      ]
    },
    "osProfile": {
      "properties": {
        "computerName": {
          "type": "string"
        },
        "adminUsername": {
          "type": "string"
        },
        "adminPassword": {
          "type": "string"
        },
        "customData": {
          "type": "string"
        },
        "windowsConfiguration": {
          "$ref": "#/definitions/windowsConfiguration"
        },
        "linuxConfiguration": {
          "$ref": "#/definitions/linuxConfiguration"
        },
        "secrets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/secret"
          }
        }
      },
      "type": "object",
      "required": [
        "computerName",
        "adminUsername",
        "adminPassword"
      ]
    },
    "networkProfile": {
      "properties": {
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/networkInterfaces"
          }
        }
      },
      "type": "object",
      "required": [
        "networkInterfaces"
      ]
    },
    "sku": {
      "properties": {
        "name": {
          "type": "string"
        },
        "tier": {
          "type": "string"
        },
        "capacity": {
          "oneOf": [
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            },
            {
              "type": "integer"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "name",
        "capacity"
      ]
    },
    "upgradePolicy": {
      "properties": {
        "mode": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "mode"
      ]
    },
    "virtualMachineScaleSetOsProfile": {
      "properties": {
        "computerNamePrefix": {
          "type": "string"
        },
        "adminUsername": {
          "type": "string"
        },
        "adminPassword": {
          "type": "string"
        },
        "customData": {
          "type": "string"
        },
        "windowsConfiguration": {
          "$ref": "#/definitions/windowsConfiguration"
        },
        "linuxConfiguration": {
          "$ref": "#/definitions/linuxConfiguration"
        },
        "secrets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/secret"
          }
        }
      },
      "type": "object",
      "required": [
        "computerNamePrefix",
        "adminUsername",
        "adminPassword"
      ]
    },
    "virtualMachineScaleSetOSDisk": {
      "properties": {
        "osType": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "vhdContainers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "caching": {
          "type": "string"
        },
        "createOption": {
          "oneOf": [
            {
              "enum": [
                "FromImage",
                "Empty",
                "Attach"
              ]
            },
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "name",
        "createOption"
      ]
    },
    "virtualMachineScaleSetStorageProfile": {
      "properties": {
        "imageReference": {
          "oneOf": [
            {
              "$ref": "#/definitions/imageReference"
            },
            {
              "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression"
            }
          ]
        },
        "osDisk": {
          "$ref": "#/definitions/virtualMachineScaleSetOSDisk"
        }
      },
      "type": "object",
      "required": [
        "osDisk"
      ]
    },
    "virtualMachineScaleSetExtension": {
      "properties": {
        "name": {
          "type": "string"
        },
        "properties": {
          "properties": {
            "publisher": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "typeHandlerVersion": {
              "type": "string"
            },
            "settings": {
              "type": "object"
            }
          },
          "type": "object",
          "required": [
            "publisher",
            "type",
            "typeHandlerVersion"
          ]
        }
      }
    },
    "virtualMachineScaleSetExtensionProfile": {
      "properties": {
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/virtualMachineScaleSetExtension"
          }
        }
      },
      "type": "object"
    },
    "ipConfiguration": {
      "properties": {
        "name": {
          "type": "string"
        },
		"properties": {
		  "type": "object",
		  "properties" : {
            "subnet": {
              "$ref": "#/definitions/id"
            },
            "loadBalancerBackendAddressPools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/id"
              }
            },
            "loadBalancerInboundNatPools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/id"
              }
            }
          }
		}
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "networkInterfaceConfiguration": {
      "properties": {
        "name": {
          "type": "string"
        },
        "properties": {
          "type": "object",
          "properties": {
            "primary": {
              "type": "boolean"
            },
            "ipConfigurations": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ipConfiguration"
              }
            }
          },
          "required": [
            "primary",
            "ipConfigurations"
          ]
        }
      },
      "type": "object",
      "required": [
        "name",
        "properties"
      ]
    },
    "virtualMachineScaleSetNetworkProfile": {
      "properties": {
        "networkInterfaceConfigurations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/networkInterfaceConfiguration"
          }
        }
      },
      "type": "object",
      "required": [
        "networkInterfaceConfigurations"
      ]
    },
    "virtualMachineProfile": {
      "properties": {
        "osProfile": {
          "$ref": "#/definitions/virtualMachineScaleSetOsProfile"
        },
        "storageProfile": {
          "$ref": "#/definitions/virtualMachineScaleSetStorageProfile"
        },
        "extensionProfile": {
          "$ref": "#/definitions/virtualMachineScaleSetExtensionProfile"
        },
        "networkProfile": {
          "$ref": "#/definitions/virtualMachineScaleSetNetworkProfile"
        }
      },
      "type": "object",
      "required": [
        "osProfile",
        "storageProfile",
        "networkProfile"
      ]
    },
    "genericExtension": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string",
          "minLength": 1,
          "description": "Microsoft.Compute/extensions - Publisher"
        },
        "type": {
          "type": "string",
          "minLength": 1,
          "description": "Microsoft.Compute/extensions - Type"
        },
        "typeHandlerVersion": {
          "type": "string",
          "minLength": 1,
          "description": "Microsoft.Compute/extensions - Type handler version"
        },
        "settings": {
          "oneOf": [
            { "type": "object" },
            { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" }
          ],
          "description": "Microsoft.Compute/extensions - Settings"
        }
      },
      "required": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "settings"
      ]
    },
    "iaaSDiagnostics": {
      "type": "object",
      "properties": {
        "publisher": {
          "enum": [
            "Microsoft.Azure.Diagnostics"
          ]
        },
        "type": {
          "enum": [
            "IaaSDiagnostics"
          ]
        },
        "typeHandlerVersion": {
          "type": "string",
          "minLength": 1
        },
        "autoUpgradeMinorVersion": {
          "type": "boolean"
        },
        "settings": {
          "type": "object",
          "properties": {
            "xmlCfg": {
              "type": "string"
            },
            "StorageAccount": {
              "type": "string"
            }
          },
          "required": [
            "xmlCfg",
            "StorageAccount"
          ]
        },
        "protectedSettings": {
          "type": "object",
          "properties": {
            "storageAccountName": {
              "type": "string"
            },
            "storageAccountKey": {
              "type": "string"
            },
            "storageAccountEndPoint": {
              "type": "string"
            }
          },
          "required": [
            "storageAccountName",
            "storageAccountKey",
            "storageAccountEndPoint"
          ]
        }
      },
      "required": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "iaaSAntimalware": {
      "type": "object",
      "properties": {
        "publisher": {
          "enum": [
            "Microsoft.Azure.Security"
          ]
        },
        "type": {
          "enum": [
            "IaaSAntimalware"
          ]
        },
        "typeHandlerVersion": {
          "type": "string",
          "minLength": 1
        },
        "autoUpgradeMinorVersion": {
          "type": "boolean"
        },
        "settings": {
          "type": "object",
          "properties": {
            "AntimalwareEnabled": {
              "type": "boolean"
            },
            "Exclusions": {
              "type": "object",
              "properties": {
                "Paths": {
                  "type": "string"
                },
                "Extensions": {
                  "type": "string"
                },
                "Processes": {
                  "type": "string"
                }
              },
              "required": [
                "Paths",
                "Extensions",
                "Processes"
              ]
            },
            "RealtimeProtectionEnabled": {
              "enum": [
                "true",
                "false"
              ]
            },
            "ScheduledScanSettings": {
              "type": "object",
              "properties": {
                "isEnabled": {
                  "enum": [
                    "true",
                    "false"
                  ]
                },
                "scanType": {
                  "type": "string"
                },
                "day": {
                  "type": "string"
                },
                "time": {
                  "type": "string"
                }
              },
              "required": [
                "isEnabled",
                "scanType",
                "day",
                "time"
              ]
            }
          },
          "required": [
            "AntimalwareEnabled",
            "Exclusions",
            "RealtimeProtectionEnabled",
            "ScheduledScanSettings"
          ]
        }
      },
      "required": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "customScriptExtension": {
      "type": "object",
      "properties": {
        "publisher": {
          "enum": [
            "Microsoft.Compute"
          ]
        },
        "type": {
          "enum": [
            "CustomScriptExtension"
          ]
        },
        "typeHandlerVersion": {
          "type": "string",
          "minLength": 1
        },
        "autoUpgradeMinorVersion": {
          "type": "boolean"
        },
        "settings": {
          "type": "object",
          "properties": {
            "fileUris": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "commandToExecute": {
              "type": "string"
            }
          },
          "required": [
            "commandToExecute"
          ]
      },
      "protectedSettings": {
          "type": "object",
          "properties": {
            "storageAccountName": {
              "type": "string"
            },
            "storageAccountKey": {
              "type": "string"
            }
          }
        }
      },
      "required": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "customScriptForLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.OSTCExtensions"
          ]
        },
        "type":{
          "enum":[
            "CustomScriptForLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "fileUris":{
              "type":"array",
              "items":{
                "type":"string"
              }
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "commandToExecute":{
              "type":"string"
            },
            "storageAccountName":{
              "type":"string"
            },
            "storageAccountKey":{
              "type":"string"
            }
          },
          "required":[
            "commandToExecute"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "linuxDiagnostic":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.OSTCExtensions"
          ]
        },
        "type":{
          "enum":[
            "LinuxDiagnostic"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "enableSyslog":{
              "type":"string"
            },
            "mdsdHttpProxy":{
              "type":"string"
            },
            "perCfg":{
              "type":"array"
            },
            "fileCfg":{
              "type":"array"
            },
            "xmlCfg":{
              "type":"string"
            },
            "ladCfg":{
              "type":"object"
            },
            "syslogCfg":{
              "type":"string"
            },
            "eventVolume":{
              "type":"string"
            },
            "mdsdCfg":{
              "type":"string"
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "mdsdHttpProxy":{
              "type":"string"
            },
            "storageAccountName":{
              "type":"string"
            },
            "storageAccountKey":{
              "type":"string"
            },
            "storageAccountEndPoint":{
              "type":"string"
            }
          },
          "required":[
            "storageAccountName",
            "storageAccountKey"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "vmAccessForLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.OSTCExtensions"
          ]
        },
        "type":{
          "enum":[
            "VMAccessForLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "check_disk":{
              "type":"boolean"
            },
            "repair_disk":{
              "type":"boolean"
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "username":{
              "type":"string"
            },
            "password":{
              "type":"string"
            },
            "ssh_key":{
              "type":"string"
            },
            "reset_ssh":{
              "type":"string"
            },
            "remove_user":{
              "type":"string"
            },
            "expiration":{
              "type":"string"
            }
          },
          "required":[
            "username",
            "password",
            "ssh_key",
            "reset_ssh",
            "remove_user",
            "expiration"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "bgInfo":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Compute"
          ]
        },
        "type":{
          "enum":[
            "bginfo"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion"
      ]
    },
    "vmAccessAgent":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Compute"
          ]
        },
        "type":{
          "enum":[
            "VMAccessAgent"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "username":{
              "type":"string"
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "password":{
              "type":"string"
            }
          }
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "dscExtension":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Powershell"
          ]
        },
        "type":{
          "enum":[
            "DSC"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "modulesUrl":{
              "type":"string"
            },
            "configurationFunction":{
              "type":"string"
            },
            "properties":{
              "type":"string"
            },
            "wmfVersion":{
              "type":"string"
            },
            "privacy":{
              "type":"object",
              "properties":{
                "dataCollection":{
                  "type":"string"
                }
              }
            }
          },
          "required":[
            "modulesUrl",
            "configurationFunction"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "dataBlobUri":{
              "type":"string"
            }
          }
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "acronisBackupLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Acronis.Backup"
          ]
        },
        "type":{
          "enum":[
            "AcronisBackupLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "absURL":{
              "type":"string"
            }
          },
          "required": [
            "absURL"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "userLogin":{
              "type":"string"
            },
            "userPassword":{
              "type":"string"
            }
          },
          "required": [
            "userLogin",
            "userPassword"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "acronisBackup":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Acronis.Backup"
          ]
        },
        "type":{
          "enum":[
            "AcronisBackup"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "absURL":{
              "type":"string"
            }
          },
          "required": [
            "absURL"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "userLogin":{
              "type":"string"
            },
            "userPassword":{
              "type":"string"
            }
          },
          "required": [
            "userLogin",
            "userPassword"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "linuxChefClient":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Chef.Bootstrap.WindowsAzure"
          ]
        },
        "type":{
          "enum":[
            "LinuxChefClient"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "bootstrap_version":{
              "type":"string"
            },
            "bootstrap_options":{
              "type":"object",
              "properties":{
                "chef_node_name":{
                  "type": "string"
                },
                "chef_server_url":{
                  "type": "string"
                },
                "validation_client_name":{
                  "type": "string"
                },
                "node_ssl_verify_mode":{
                  "type": "string"
                },
                "environment":{
                  "type": "string"
                }
              },
              "required": [
                "chef_node_name",
                "chef_server_url",
                "validation_client_name",
                "node_ssl_verify_mode",
                "environment"
              ]
            },
            "runlist":{
              "type": "string"
            },
            "client_rb":{
              "type": "string"
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "validation_key":{
              "type":"string"
            },
            "chef_server_crt":{
              "type":"string"
            },
            "secret":{
              "type":"string"
            }
          },
          "required": [
            "validation_key",
            "chef_server_crt",
            "secret"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "chefClient":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Chef.Bootstrap.WindowsAzure"
          ]
        },
        "type":{
          "enum":[
            "ChefClient"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "bootstrap_options":{
              "type":"object",
              "properties":{
                "chef_node_name":{
                  "type": "string"
                },
                "chef_server_url":{
                  "type": "string"
                },
                "validation_client_name":{
                  "type": "string"
                },
                "node_ssl_verify_mode":{
                  "type": "string"
                },
                "environment":{
                  "type": "string"
                }
              },
              "required": [
                "chef_node_name",
                "chef_server_url",
                "validation_client_name",
                "node_ssl_verify_mode",
                "environment"
              ]
            },
            "runlist":{
              "type": "string"
            },
            "client_rb":{
              "type": "string"
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "validation_key":{
              "type":"string"
            },
            "chef_server_crt":{
              "type":"string"
            },
            "secret":{
              "type":"string"
            }
          },
          "required": [
            "validation_key",
            "chef_server_crt",
            "secret"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "datadogLinuxAgent":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Datadog.Agent"
          ]
        },
        "type":{
          "enum":[
            "DatadogLinuxAgent"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "api_key":{
              "type": "string"
            }
          },
          "required": [
            "api_key"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "datadogWindowsAgent":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Datadog.Agent"
          ]
        },
        "type":{
          "enum":[
            "DatadogWindowsAgent"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "api_key":{
              "type": "string"
            }
          },
          "required": [
            "api_key"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "dockerExtension":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Azure.Extensions"
          ]
        },
        "type":{
          "enum":[
            "DockerExtension"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "docker":{
              "type": "object",
              "properties": {
                "port":{
                  "type":"string"
                }
              },
              "required": [
                "port"
              ]
            }
          },
          "required": [
            "docker"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "certs":{
              "type": "object",
              "properties": {
                "ca": {
                  "type": "string"
                },
                "cert": {
                  "type": "string"
                },
                "key": {
                  "type": "string"
                }
              },
              "required": [
                "ca",
                "cert",
                "key"
              ]
            }
          },
          "required": [
            "certs"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "dynatraceLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "dynatrace.ruxit"
          ]
        },
        "type":{
          "enum":[
            "ruxitAgentLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "tenantId":{
              "type": "string"
            },
            "token": {
              "type": "string"
            }
          },
          "required": [
            "tenantId",
            "token"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "dynatraceWindows":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "dynatrace.ruxit"
          ]
        },
        "type":{
          "enum":[
            "ruxitAgentWindows"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "tenantId":{
              "type": "string"
            },
            "token": {
              "type": "string"
            }
          },
          "required": [
            "tenantId",
            "token"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "eset":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "ESET"
          ]
        },
        "type":{
          "enum":[
            "FileSecurity"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "LicenseKey":{
              "type": "string"
            },
            "Install-RealtimeProtection": {
              "type": "boolean"
            },
            "Install-ProtocolFiltering": {
              "type": "boolean"
            },
            "Install-DeviceControl": {
              "type": "boolean"
            },
            "Enable-Cloud": {
              "type": "boolean"
            },
            "Enable-PUA": {
              "type": "boolean"
            },
            "ERAAgentCfgUrl": {
              "type": "string"
            }
          },
          "required": [
            "LicenseKey",
            "Install-RealtimeProtection",
            "Install-ProtocolFiltering",
            "Install-DeviceControl",
            "Enable-Cloud",
            "Enable-PUA",
            "ERAAgentCfgUrl"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "hpeSecurityApplicationDefender":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "HPE.Security.ApplicationDefender"
          ]
        },
        "type":{
          "enum":[
            "DotnetAgent"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "key": {
              "type": "string"
            },
            "serverURL": {
              "type": "string"
            }
          },
          "required": [
            "key",
            "serverURL"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "protectedSettings"
      ]
    },
    "puppetAgent":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Puppet"
          ]
        },
        "type":{
          "enum":[
            "PuppetAgent"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "PUPPET_MASTER_SERVER": {
              "type": "string"
            }
          },
          "required": [
            "PUPPET_MASTER_SERVER"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "protectedSettings"
      ]
    },
    "site24x7LinuxServerExtn":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Site24x7"
          ]
        },
        "type":{
          "enum":[
            "Site24x7LinuxServerExtn"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties":{
            "site24x7AgentType":{
              "enum":[
                "azurevmextnlinuxserver"
              ]
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "site24x7LicenseKey":{
              "type": "string"
            }
          },
          "required":[
            "site24x7LicenseKey"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "site24x7WindowsServerExtn":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Site24x7"
          ]
        },
        "type":{
          "enum":[
            "Site24x7WindowsServerExtn"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties":{
            "site24x7AgentType":{
              "enum":[
                "azurevmextnwindowsserver"
              ]
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "site24x7LicenseKey":{
              "type": "string"
            }
          },
          "required":[
            "site24x7LicenseKey"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "site24x7ApmInsightExtn":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Site24x7"
          ]
        },
        "type":{
          "enum":[
            "Site24x7ApmInsightExtn"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties":{
            "site24x7AgentType":{
              "enum":[
                "azurevmextnapminsightclassic"
              ]
            }
          }
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "site24x7LicenseKey":{
              "type": "string"
            }
          },
          "required":[
            "site24x7LicenseKey"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "trendMicroDSALinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "TrendMicro.DeepSecurity"
          ]
        },
        "type":{
          "enum":[
            "TrendMicroDSALinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties": {
            "DSMname": {
              "type": "string"
            },
            "DSMport": {
              "type": "string"
            },
            "policyNameorID": {
              "type": "string"
            }
          },
          "required": [
            "DSMname",
            "DSMport"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "tenantID": {
              "type": "string"
            },
            "tenantPassword": {
              "type": "string"
            }
          },
          "required": [
            "tenantID",
            "tenantPassword"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "trendMicroDSA":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "TrendMicro.DeepSecurity"
          ]
        },
        "type":{
          "enum":[
            "TrendMicroDSA"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties": {
            "DSMname": {
              "type": "string"
            },
            "DSMport": {
              "type": "string"
            },
            "policyNameorID": {
              "type": "string"
            }
          },
          "required": [
            "DSMname",
            "DSMport"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "tenantID": {
              "type": "string"
            },
            "tenantPassword": {
              "type": "string"
            }
          },
          "required": [
            "tenantID",
            "tenantPassword"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "bmcCtmAgentLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "ctm.bmc.com"
          ]
        },
        "type":{
          "enum":[
            "BmcCtmAgentLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties":{
            "Control-M Server Name":{
              "type": "string"
            },
            "Agent Port":{
              "type": "string"
            },
            "Host Group":{
              "type": "string"
            },
            "User Account":{
              "type": "string"
            }
          },
          "required":[
            "Control-M Server Name",
            "Agent Port",
            "Host Group",
            "User Account"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "bmcCtmAgentWindows":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "bmc.ctm"
          ]
        },
        "type":{
          "enum":[
            "AgentWinExt"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type": "object",
          "properties":{
            "Control-M Server Name":{
              "type": "string"
            },
            "Agent Port":{
              "type": "string"
            },
            "Host Group":{
              "type": "string"
            }
          },
          "required":[
            "Control-M Server Name",
            "Agent Port",
            "Host Group"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "OSPatchingForLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.OSTCExtensions"
          ]
        },
        "type":{
          "enum":[
            "OSPatchingForLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "disabled":{
              "type":"boolean"
            },
            "stop":{
              "type":"boolean"
            },
            "installDuration":{
              "type":"string"
            },
            "intervalOfWeeks":{
              "type":"number"
            },
            "dayOfWeek":{
              "type":"string"
            },
            "startTime":{
              "type":"string"
            },
            "rebootAfterPatch":{
              "type":"string"
            },
            "category":{
              "type":"string"
            },
            "oneoff":{
              "type":"boolean"
            },
            "local":{
              "type":"boolean"
            },
            "idleTestScript":{
              "type":"string"
            },
            "healthyTestScript":{
              "type":"string"
            },
            "distUpgradeList":{
              "type":"string"
            },
            "distUpgradeAll":{
              "type":"boolean"
            },
            "vmStatusTest":{
              "type":"object"
            }
          },
          "required":[
            "disabled",
            "stop"
          ]
        },
        "protectedSettings":{
          "type":"object",
          "properties":{
            "storageAccountName":{
              "type":"string"
            },
            "storageAccountKey":{
              "type":"string"
            }
          }
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "VMSnapshot":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Azure.RecoveryServices"
          ]
        },
        "type":{
          "enum":[
            "VMSnapshot"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "locale":{
              "type":"string"
            },
            "taskId":{
              "type":"string"
            },
            "commandToExecute":{
              "type":"string"
            },
            "objectStr":{
              "type":"string"
            },
            "logsBlobUri":{
              "type":"string"
            },
            "statusBlobUri":{
              "type":"string"
            },
            "commandStartTimeUTCTicks":{
              "type":"string"
            },
            "vmType":{
              "type":"string"
            }
          },
          "required":[
            "locale",
            "taskId",
            "commandToExecute",
            "objectStr",
            "logsBlobUri",
            "statusBlobUri",
            "commandStartTimeUTCTicks",
            "vmType"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "VMSnapshotLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Azure.RecoveryServices"
          ]
        },
        "type":{
          "enum":[
            "VMSnapshotLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        },
        "settings":{
          "type":"object",
          "properties":{
            "locale":{
              "type":"string"
            },
            "taskId":{
              "type":"string"
            },
            "commandToExecute":{
              "type":"string"
            },
            "objectStr":{
              "type":"string"
            },
            "logsBlobUri":{
              "type":"string"
            },
            "statusBlobUri":{
              "type":"string"
            },
            "commandStartTimeUTCTicks":{
              "type":"string"
            },
            "vmType":{
              "type":"string"
            }
          },
          "required":[
            "locale",
            "taskId",
            "commandToExecute",
            "objectStr",
            "logsBlobUri",
            "statusBlobUri",
            "commandStartTimeUTCTicks",
            "vmType"
          ]
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings"
      ]
    },
    "customScript": {
      "type": "object",
      "properties": {
        "publisher": {
          "enum": [
            "Microsoft.Azure.Extensions"
          ]
        },
        "type": {
          "enum": [
            "CustomScript"
          ]
        },
        "typeHandlerVersion": {
          "type": "string",
          "minLength": 1
        },
        "autoUpgradeMinorVersion": {
          "type": "boolean"
        },
        "settings": {
          "type": "object",
          "properties": {
            "fileUris": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "fileUris"
          ]
      },
      "protectedSettings": {
          "type": "object",
          "properties": {
            "storageAccountName": {
              "type": "string"
            },
            "storageAccountKey": {
              "type": "string"
            },
            "commandToExecute": {
              "type": "string"
            }
          },
          "required": [
            "storageAccountName",
            "storageAccountKey",
            "commandToExecute"
          ]
        }
      },
      "required": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion",
        "settings",
        "protectedSettings"
      ]
    },
    "networkWatcherAgentWindows":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Azure.NetworkWatcher"
          ]
        },
        "type":{
          "enum":[
            "NetworkWatcherAgentWindows"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion"
      ]
    },
    "networkWatcherAgentLinux":{
      "type":"object",
      "properties":{
        "publisher":{
          "enum":[
            "Microsoft.Azure.NetworkWatcher"
          ]
        },
        "type":{
          "enum":[
            "NetworkWatcherAgentLinux"
          ]
        },
        "typeHandlerVersion":{
          "type":"string",
          "minLength":1
        },
        "autoUpgradeMinorVersion":{
          "type":"boolean"
        }
      },
      "required":[
        "publisher",
        "type",
        "typeHandlerVersion",
        "autoUpgradeMinorVersion"
      ]
    }
  }
}